mod charts;
mod client;
mod common;
mod games;
mod owned_games;
mod player_summary;
mod recently_played;
use std::sync::Arc;
use crate::fetcher::Fetcher;
pub fn fetchers() -> Vec<Arc<dyn Fetcher>> {
vec![
Arc::new(player_summary::SteamPlayerSummary),
Arc::new(recently_played::SteamRecentlyPlayed),
Arc::new(owned_games::SteamOwnedGames),
Arc::new(charts::SteamCharts),
]
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn fetchers_entry_point_registers_the_batch_under_steam_prefix() {
let names: Vec<String> = fetchers().iter().map(|f| f.name().to_string()).collect();
for name in &names {
assert!(
name.starts_with("steam_"),
"{name} must use the `steam_` family prefix"
);
}
assert!(names.contains(&"steam_player_summary".to_string()));
assert!(names.contains(&"steam_recently_played".to_string()));
assert!(names.contains(&"steam_owned_games".to_string()));
assert!(names.contains(&"steam_charts".to_string()));
}
}