Skip to main content

ddapi_rs/scheme/ddnet/
status.rs

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