ddapi_rs/api/
ddnet.rs

1use crate::api::DDApi;
2use crate::scheme::ddnet::*;
3use anyhow::Result;
4use std::future::Future;
5
6#[allow(dead_code)]
7pub trait DDnetApi {
8    fn master(&self) -> impl Future<Output = Result<Master>> + Send;
9    fn skins(&self) -> impl Future<Output = Result<DDSkins>> + Send;
10    fn custom_master(&self, master: MasterServer) -> impl Future<Output = Result<Master>> + Send;
11    fn player(&self, player: &str) -> impl Future<Output = Result<Player>> + Send;
12    fn query(&self, player: &str) -> impl Future<Output = Result<Vec<Query>>> + Send;
13    fn query_map(&self, player: &str) -> impl Future<Output = Result<Vec<QueryMap>>> + Send;
14    fn query_mapper(&self, player: &str) -> impl Future<Output = Result<Vec<QueryMapper>>> + Send;
15    fn map(&self, map: &str) -> impl Future<Output = Result<Map>> + Send;
16    fn releases_map(&self) -> impl Future<Output = Result<Vec<ReleasesMaps>>> + Send;
17    fn status(&self) -> impl Future<Output = Result<Status>> + Send;
18}
19
20impl DDnetApi for DDApi {
21    async fn master(&self) -> Result<Master> {
22        self.custom_master(MasterServer::One).await
23    }
24
25    async fn skins(&self) -> Result<DDSkins> {
26        self._generator(&DDSkins::api(), false).await
27    }
28
29    async fn custom_master(&self, master: MasterServer) -> Result<Master> {
30        self._generator(&Master::api(master), false).await
31    }
32
33    async fn player(&self, player: &str) -> Result<Player> {
34        self._generator(&Player::api(player), true).await
35    }
36    async fn query(&self, player: &str) -> Result<Vec<Query>> {
37        self._generator(&Query::api(player), true).await
38    }
39
40    async fn query_map(&self, player: &str) -> Result<Vec<QueryMap>> {
41        self._generator(&QueryMap::api(player), true).await
42    }
43
44    async fn query_mapper(&self, player: &str) -> Result<Vec<QueryMapper>> {
45        self._generator(&QueryMapper::api(player), true).await
46    }
47
48    async fn map(&self, map: &str) -> Result<Map> {
49        self._generator(&Map::api(map), true).await
50    }
51    async fn releases_map(&self) -> Result<Vec<ReleasesMaps>> {
52        self._generator(&ReleasesMaps::api(), false).await
53    }
54
55    async fn status(&self) -> Result<Status> {
56        self._generator(&Status::api(), false).await
57    }
58}