r6stats/types/search_data/
generic_stats.rs1use 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}