steamkit/steam/discovery/
i_server_list_provider.rs1use std::time::SystemTime;
4
5use async_trait::async_trait;
6
7use crate::error::SteamError;
8
9use super::server_record::ServerRecord;
10
11#[async_trait]
13pub trait IServerListProvider: Send + Sync {
14 async fn last_server_list_refresh(&self) -> Result<SystemTime, SteamError>;
18
19 async fn fetch_server_list(&self) -> Result<Vec<ServerRecord>, SteamError>;
21
22 async fn update_server_list(&self, endpoints: Vec<ServerRecord>) -> Result<(), SteamError>;
24
25 async fn load_servers(&self) -> Result<Vec<ServerRecord>, SteamError> {
27 self.fetch_server_list().await
28 }
29
30 async fn save_servers(&self, endpoints: Vec<ServerRecord>) -> Result<(), SteamError> {
32 self.update_server_list(endpoints).await
33 }
34
35 async fn resolve_servers(&self) -> Result<Vec<ServerRecord>, SteamError> {
37 self.fetch_server_list().await
38 }
39}