ddapi_rs/scheme/ddnet/
status.rs

1use crate::scheme::DDNET_BASE_URL;
2use serde_derive::{Deserialize, Serialize};
3
4#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub struct StatusData {
6    pub name: String,
7    pub r#type: String,
8    pub host: String,
9    pub location: String,
10    pub online4: bool,
11    pub online6: bool,
12    pub uptime: String,
13    pub load: f32,
14    pub network_rx: u64,
15    pub network_tx: u64,
16    pub packets_rx: u64,
17    pub packets_tx: u64,
18    pub cpu: u32,
19    pub memory_total: u64,
20    pub memory_used: u64,
21    pub swap_total: u64,
22    pub swap_used: u64,
23    pub hdd_total: u64,
24    pub hdd_used: u64,
25}
26
27#[derive(Serialize, Deserialize, Debug)]
28pub struct Status {
29    pub servers: Vec<StatusData>,
30    pub updated: String,
31}
32
33impl Status {
34    pub fn url() -> String {
35        format!("https://{}/status", DDNET_BASE_URL)
36    }
37
38    pub fn api() -> String {
39        format!("https://{}/status/json/stats.json", DDNET_BASE_URL)
40    }
41}