r6stats/types/search_data/
generic_stats.rs

1use std::collections::HashMap;
2use time::OffsetDateTime;
3
4#[derive(Debug, serde::Deserialize, serde::Serialize)]
5pub struct GenericStats {
6    pub gamemode: GameMode,
7    pub general: General,
8    pub queue: Queue,
9    pub timestamps: Timestamps,
10
11    #[serde(flatten)]
12    pub unknown: HashMap<String, serde_json::Value>,
13}
14
15#[derive(Debug, serde::Deserialize, serde::Serialize)]
16pub struct GameMode {
17    pub bomb: Bomb,
18    pub hostage: Hostage,
19    pub secure_area: SecureArea,
20
21    #[serde(flatten)]
22    pub unknown: HashMap<String, serde_json::Value>,
23}
24
25#[derive(Debug, serde::Deserialize, serde::Serialize)]
26pub struct Bomb {
27    pub best_score: u32,
28    pub games_played: i64,
29    pub losses: u32,
30    pub playtime: u64,
31    pub wins: u32,
32    pub wl: f64,
33
34    #[serde(flatten)]
35    pub unknown: HashMap<String, serde_json::Value>,
36}
37
38#[derive(Debug, serde::Deserialize, serde::Serialize)]
39pub struct Hostage {
40    pub best_score: u32,
41    pub extractions_denied: u32,
42    pub games_played: i64,
43    pub losses: u32,
44    pub playtime: u32,
45    pub wins: u32,
46    pub wl: f64,
47
48    #[serde(flatten)]
49    pub unknown: HashMap<String, serde_json::Value>,
50}
51
52#[derive(Debug, serde::Deserialize, serde::Serialize)]
53pub struct SecureArea {
54    pub best_score: u32,
55    pub games_played: i64,
56    pub kills_as_attacker_in_objective: u32,
57    pub kills_as_defender_in_objective: u32,
58    pub losses: u32,
59    pub playtime: u32,
60    pub times_objective_secured: u32,
61    pub wins: u32,
62    pub wl: f64,
63
64    #[serde(flatten)]
65    pub unknown: HashMap<String, serde_json::Value>,
66}
67
68#[derive(Debug, serde::Deserialize, serde::Serialize)]
69pub struct General {
70    pub assists: u32,
71    pub barricades_deployed: u32,
72    pub blind_kills: u32,
73    pub bullets_fired: u32,
74    pub bullets_hit: u32,
75    pub dbnos: u32,
76    pub deaths: u32,
77    pub distance_travelled: i64,
78    pub draws: u32,
79    pub gadgets_destroyed: u32,
80    pub games_played: u32,
81    pub headshots: u32,
82    pub kd: f64,
83    pub kills: u32,
84    pub losses: u32,
85    pub melee_kills: u32,
86    pub penetration_kills: u32,
87    pub playtime: u64,
88    pub rappel_breaches: u32,
89    pub reinforcements_deployed: u32,
90    pub revives: u32,
91    pub suicides: u32,
92    pub wins: u32,
93    pub wl: f64,
94
95    #[serde(flatten)]
96    pub unknown: HashMap<String, serde_json::Value>,
97}
98
99#[derive(Debug, serde::Deserialize, serde::Serialize)]
100pub struct Queue {
101    pub casual: QueueStat,
102    pub other: QueueStat,
103    pub ranked: QueueStat,
104
105    #[serde(flatten)]
106    pub unknown: HashMap<String, serde_json::Value>,
107}
108
109#[derive(Debug, serde::Deserialize, serde::Serialize)]
110pub struct QueueStat {
111    pub deaths: u32,
112    pub draws: u32,
113    pub games_played: i64,
114    pub kd: f64,
115    pub kills: u32,
116    pub losses: i64,
117    pub playtime: u64,
118    pub wins: i64,
119    pub wl: f64,
120
121    #[serde(flatten)]
122    pub unknown: HashMap<String, serde_json::Value>,
123}
124
125#[derive(Debug, serde::Deserialize, serde::Serialize)]
126pub struct Timestamps {
127    #[serde(
128        deserialize_with = "time::serde::rfc3339::deserialize",
129        serialize_with = "time::serde::rfc3339::serialize"
130    )]
131    pub created: OffsetDateTime,
132    #[serde(
133        deserialize_with = "time::serde::rfc3339::deserialize",
134        serialize_with = "time::serde::rfc3339::serialize"
135    )]
136    pub last_updated: OffsetDateTime,
137
138    #[serde(flatten)]
139    pub unknown: HashMap<String, serde_json::Value>,
140}