use super::images::ImageCache;
use super::models::{
infer_library_item_kind, GameCandidate, GameMetadata, GameSource, MetadataStatus,
};
use serde_json::Value;
pub mod providers {
pub mod igdb {
use crate::library::metadata::MetadataProvider;
#[allow(dead_code)]
pub trait IgdbMetadataProvider: MetadataProvider {}
}
pub mod rawg {
use crate::library::metadata::MetadataProvider;
#[allow(dead_code)]
pub trait RawgMetadataProvider: MetadataProvider {}
}
pub mod steam {
use crate::library::metadata::MetadataProvider;
#[allow(dead_code)]
pub trait SteamMetadataProvider: MetadataProvider {}
}
}
pub trait MetadataProvider: Send + Sync {
#[allow(dead_code)]
fn provider_id(&self) -> &'static str;
fn resolve(&self, candidate: &GameCandidate) -> Result