r6tracker/types/overwolf/
lifetime_stats.rs

1use std::collections::HashMap;
2use url::Url;
3
4/// Player Lifetime Stats
5#[derive(Debug, serde::Deserialize, serde::Serialize)]
6pub struct LifetimeStats {
7    /// Best MMR Stats
8    #[serde(rename = "bestMmr")]
9    pub best_mmr: Option<BestMmr>,
10
11    /// Win Percent
12    #[serde(rename = "winPct")]
13    pub win_pct: f64,
14
15    /// Total # of wins
16    pub wins: u64,
17
18    /// Total K/D
19    pub kd: f64,
20
21    /// Total # of kills
22    pub kills: u64,
23
24    /// Total # of matches
25    pub matches: u64,
26
27    /// Total headshot %
28    #[serde(rename = "headshotPct")]
29    pub headshot_pct: f64,
30
31    /// Total # of headshots
32    pub headshots: u64,
33
34    /// Total # of melee kills
35    #[serde(rename = "meleeKills")]
36    pub melee_kills: u64,
37
38    /// Total # of blind kills
39    #[serde(rename = "blindKills")]
40    pub blind_kills: u64,
41
42    /// Total # of deaths
43    pub deaths: u64,
44
45    /// Total # of losses
46    pub losses: u64,
47
48    /// Total # of XP
49    pub xp: u64,
50
51    /// Unknown keys
52    #[serde(flatten)]
53    pub unknown: HashMap<String, serde_json::Value>,
54}
55
56/// Best Overwolf Lifetime MMR
57#[derive(Debug, serde::Deserialize, serde::Serialize)]
58pub struct BestMmr {
59    /// MMR
60    pub mmr: u64,
61
62    /// Rank Name
63    pub name: String,
64
65    /// Rank Image URL
66    pub img: Url,
67
68    /// Unknown Keys
69    #[serde(flatten)]
70    pub unknown: HashMap<String, serde_json::Value>,
71}