Skip to main content

ddapi_rs/scheme/ddnet/
latest_finishes.rs

1use crate::scheme::DDNET_BASE_URL;
2use crate::scheme::{deserialize_datetime_timestamp, serialize_datetime_timestamp};
3use chrono::NaiveDateTime;
4use serde::{Deserialize, Serialize};
5
6#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
7pub struct LatestFinishes {
8    #[serde(
9        serialize_with = "serialize_datetime_timestamp",
10        deserialize_with = "deserialize_datetime_timestamp"
11    )]
12    pub timestamp: NaiveDateTime,
13    pub map: String,
14    pub name: String,
15    pub time: f64,
16    pub server: String,
17}
18
19impl LatestFinishes {
20    #[must_use]
21    pub fn url() -> String {
22        format!("https://{DDNET_BASE_URL}/ranks")
23    }
24
25    #[must_use]
26    pub fn api(latest: usize) -> String {
27        format!("https://{DDNET_BASE_URL}/maps/?latest={latest}")
28    }
29}