bw_web_api_rs/models/
common.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize, Clone)]
4pub struct Avatar {
5    pub level: u32,
6    pub stat: String,
7    pub url: String,
8}
9
10#[derive(Debug, Serialize, Deserialize, Clone)]
11pub struct AvatarsStats {
12    pub mm_protoss_wins: WinStats,
13    pub mm_terran_wins: WinStats,
14    pub mm_zerg_wins: WinStats,
15}
16
17#[derive(Debug, Serialize, Deserialize, Clone)]
18pub struct GameResult {
19    pub attributes: GameResultAttributes,
20    pub benefactor_id: String,
21    pub create_time: String,
22    pub game_id: String,
23    pub gateway_id: u32,
24    pub match_guid: String,
25    pub players: Vec<Player>,
26}
27
28#[derive(Debug, Serialize, Deserialize, Clone)]
29pub struct GameResultAttributes {
30    pub client_version: String,
31    #[serde(rename = "mapName")]
32    pub map_name: String,
33    pub tileset: String,
34}
35
36#[derive(Debug, Serialize, Deserialize, Clone)]
37pub struct MatchmakedStats {
38    pub benefactor_id: String,
39    pub bucket: u32,
40    pub disconnects: u32,
41    pub game_mode_id: u32,
42    pub highest_points: u32,
43    pub highest_rating: u32,
44    pub loss_streak: u32,
45    pub losses: u32,
46    pub points: u32,
47    pub rating: u32,
48    pub season_id: u32,
49    pub toon: String,
50    pub toon_guid: u32,
51    pub win_streak: u32,
52    pub wins: u32,
53}
54
55#[derive(Debug, Serialize, Deserialize, Clone)]
56pub struct Player {
57    pub attributes: PlayerAttributes,
58    pub result: String,
59    pub stats: PlayerStats,
60    pub toon: String,
61}
62
63#[derive(Debug, Serialize, Deserialize, Clone)]
64pub struct PlayerAttributes {
65    #[serde(rename = "gPlayerData_idx")]
66    pub g_player_data_idx: String,
67    pub left: String,
68    pub race: Option<String>,
69    pub team: Option<String>,
70    pub r#type: String,
71}
72
73#[derive(Debug, Serialize, Deserialize, Clone)]
74pub struct PlayerStats {
75    pub zerg_apm: Option<String>,
76    pub zerg_games_played: Option<String>,
77    pub zerg_play_time: Option<String>,
78    pub zerg_resources_gas: Option<String>,
79    pub zerg_resources_minerals: Option<String>,
80    pub zerg_resources_score: Option<String>,
81    pub zerg_resources_spent: Option<String>,
82    pub zerg_score_overall: Option<String>,
83    pub zerg_structures_razed: Option<String>,
84    pub zerg_structures_lost: Option<String>,
85    pub zerg_structures_constructed: Option<String>,
86    pub zerg_structures_score: Option<String>,
87    pub zerg_units_killed: Option<String>,
88    pub zerg_units_lost: Option<String>,
89    pub zerg_units_produced: Option<String>,
90    pub zerg_units_score: Option<String>,
91    pub zerg_draws: Option<String>,
92    pub zerg_losses: Option<String>,
93    pub zerg_wins: Option<String>,
94    pub terran_apm: Option<String>,
95    pub terran_games_played: Option<String>,
96    pub terran_play_time: Option<String>,
97    pub terran_resources_gas: Option<String>,
98    pub terran_resources_minerals: Option<String>,
99    pub terran_resources_score: Option<String>,
100    pub terran_resources_spent: Option<String>,
101    pub terran_score_overall: Option<String>,
102    pub terran_structures_constructed: Option<String>,
103    pub terran_structures_lost: Option<String>,
104    pub terran_structures_razed: Option<String>,
105    pub terran_structures_score: Option<String>,
106    pub terran_units_killed: Option<String>,
107    pub terran_units_lost: Option<String>,
108    pub terran_units_produced: Option<String>,
109    pub terran_units_score: Option<String>,
110    pub terran_draws: Option<String>,
111    pub terran_losses: Option<String>,
112    pub terran_wins: Option<String>,
113    pub protoss_apm: Option<String>,
114    pub protoss_games_played: Option<String>,
115    pub protoss_play_time: Option<String>,
116    pub protoss_resources_gas: Option<String>,
117    pub protoss_resources_minerals: Option<String>,
118    pub protoss_resources_score: Option<String>,
119    pub protoss_resources_spent: Option<String>,
120    pub protoss_score_overall: Option<String>,
121    pub protoss_structures_constructed: Option<String>,
122    pub protoss_structures_lost: Option<String>,
123    pub protoss_structures_razed: Option<String>,
124    pub protoss_structures_score: Option<String>,
125    pub protoss_units_killed: Option<String>,
126    pub protoss_units_lost: Option<String>,
127    pub protoss_units_produced: Option<String>,
128    pub protoss_units_score: Option<String>,
129    pub protoss_draws: Option<String>,
130    pub protoss_losses: Option<String>,
131    pub protoss_wins: Option<String>,
132}
133
134#[derive(Debug, Serialize, Deserialize, Clone)]
135pub struct Profile {
136    pub avatar_id: String,
137    pub description: String,
138    pub private: bool,
139    pub show_avatar_frame: bool,
140    pub title: String,
141    pub toon: String,
142    pub toon_guid: u32,
143}
144
145#[derive(Debug, Serialize, Deserialize, Clone)]
146pub struct RawStats {
147    pub legacy_disconnects: u32,
148    pub legacy_losses: u32,
149    pub legacy_toon_creation_time: u32,
150    pub legacy_wins: u32,
151    pub protoss_apm_max: u32,
152    pub protoss_apm_min: u32,
153    pub protoss_apm_sum: u32,
154    pub protoss_disconnects_max: u32,
155    pub protoss_disconnects_min: u32,
156    pub protoss_disconnects_sum: u32,
157    pub protoss_draws_max: u32,
158    pub protoss_draws_min: u32,
159    pub protoss_draws_sum: u32,
160    pub protoss_losses_max: u32,
161    pub protoss_losses_min: u32,
162    pub protoss_losses_sum: u32,
163    pub protoss_play_time_max: u32,
164    pub protoss_play_time_min: u32,
165    pub protoss_play_time_sum: u32,
166    pub protoss_resources_gas_max: u32,
167    pub protoss_resources_gas_min: u32,
168    pub protoss_resources_gas_sum: u32,
169    pub protoss_resources_minerals_max: u32,
170    pub protoss_resources_minerals_min: u32,
171    pub protoss_resources_minerals_sum: u32,
172    pub protoss_resources_score_max: u32,
173    pub protoss_resources_score_min: u32,
174    pub protoss_resources_score_sum: u32,
175    pub protoss_resources_spent_max: u32,
176    pub protoss_resources_spent_min: u32,
177    pub protoss_resources_spent_sum: u32,
178    pub protoss_structures_constructed_max: u32,
179    pub protoss_structures_constructed_min: u32,
180    pub protoss_structures_constructed_sum: u32,
181    pub protoss_structures_lost_max: u32,
182    pub protoss_structures_lost_min: u32,
183    pub protoss_structures_lost_sum: u32,
184    pub protoss_structures_razed_max: u32,
185    pub protoss_structures_razed_min: u32,
186    pub protoss_structures_razed_sum: u32,
187    pub protoss_structures_score_max: u32,
188    pub protoss_structures_score_min: u32,
189    pub protoss_structures_score_sum: u32,
190    pub protoss_units_killed_max: u32,
191    pub protoss_units_killed_min: u32,
192    pub protoss_units_killed_sum: u32,
193    pub protoss_units_lost_max: u32,
194    pub protoss_units_lost_min: u32,
195    pub protoss_units_lost_sum: u32,
196    pub protoss_units_produced_max: u32,
197    pub protoss_units_produced_min: u32,
198    pub protoss_units_produced_sum: u32,
199    pub protoss_units_score_max: u32,
200    pub protoss_units_score_min: u32,
201    pub protoss_units_score_sum: u32,
202    pub protoss_wins_max: u32,
203    pub protoss_wins_min: u32,
204    pub protoss_wins_sum: u32,
205    pub terran_apm_max: u32,
206    pub terran_apm_min: u32,
207    pub terran_apm_sum: u32,
208    pub terran_disconnects_max: u32,
209    pub terran_disconnects_min: u32,
210    pub terran_disconnects_sum: u32,
211    pub terran_draws_max: u32,
212    pub terran_draws_min: u32,
213    pub terran_draws_sum: u32,
214    pub terran_losses_max: u32,
215    pub terran_losses_min: u32,
216    pub terran_losses_sum: u32,
217    pub terran_play_time_max: u32,
218    pub terran_play_time_min: u32,
219    pub terran_play_time_sum: u32,
220    pub terran_resources_gas_max: u32,
221    pub terran_resources_gas_min: u32,
222    pub terran_resources_gas_sum: u32,
223    pub terran_resources_minerals_max: u32,
224    pub terran_resources_minerals_min: u32,
225    pub terran_resources_minerals_sum: u32,
226    pub terran_resources_score_max: u32,
227    pub terran_resources_score_min: u32,
228    pub terran_resources_score_sum: u32,
229    pub terran_resources_spent_max: u32,
230    pub terran_resources_spent_min: u32,
231    pub terran_resources_spent_sum: u32,
232    pub terran_structures_constructed_max: u32,
233    pub terran_structures_constructed_min: u32,
234    pub terran_structures_constructed_sum: u32,
235    pub terran_structures_lost_max: u32,
236    pub terran_structures_lost_min: u32,
237    pub terran_structures_lost_sum: u32,
238    pub terran_structures_razed_max: u32,
239    pub terran_structures_razed_min: u32,
240    pub terran_structures_razed_sum: u32,
241    pub terran_structures_score_max: u32,
242    pub terran_structures_score_min: u32,
243    pub terran_structures_score_sum: u32,
244    pub terran_units_killed_max: u32,
245    pub terran_units_killed_min: u32,
246    pub terran_units_killed_sum: u32,
247    pub terran_units_lost_max: u32,
248    pub terran_units_lost_min: u32,
249    pub terran_units_lost_sum: u32,
250    pub terran_units_produced_max: u32,
251    pub terran_units_produced_min: u32,
252    pub terran_units_produced_sum: u32,
253    pub terran_units_score_max: u32,
254    pub terran_units_score_min: u32,
255    pub terran_units_score_sum: u32,
256    pub terran_wins_max: u32,
257    pub terran_wins_min: u32,
258    pub terran_wins_sum: u32,
259    pub zerg_apm_max: u32,
260    pub zerg_apm_min: u32,
261    pub zerg_apm_sum: u32,
262    pub zerg_disconnects_max: u32,
263    pub zerg_disconnects_min: u32,
264    pub zerg_disconnects_sum: u32,
265    pub zerg_draws_max: u32,
266    pub zerg_draws_min: u32,
267    pub zerg_draws_sum: u32,
268    pub zerg_losses_max: u32,
269    pub zerg_losses_min: u32,
270    pub zerg_losses_sum: u32,
271    pub zerg_play_time_max: u32,
272    pub zerg_play_time_min: u32,
273    pub zerg_play_time_sum: u32,
274    pub zerg_resources_gas_max: u32,
275    pub zerg_resources_gas_min: u32,
276    pub zerg_resources_gas_sum: u32,
277    pub zerg_resources_minerals_max: u32,
278    pub zerg_resources_minerals_min: u32,
279    pub zerg_resources_minerals_sum: u32,
280    pub zerg_resources_score_max: u32,
281    pub zerg_resources_score_min: u32,
282    pub zerg_resources_score_sum: u32,
283    pub zerg_resources_spent_max: u32,
284    pub zerg_resources_spent_min: u32,
285    pub zerg_resources_spent_sum: u32,
286    pub zerg_structures_constructed_max: u32,
287    pub zerg_structures_constructed_min: u32,
288    pub zerg_structures_constructed_sum: u32,
289    pub zerg_structures_lost_max: u32,
290    pub zerg_structures_lost_min: u32,
291    pub zerg_structures_lost_sum: u32,
292    pub zerg_structures_razed_max: u32,
293    pub zerg_structures_razed_min: u32,
294    pub zerg_structures_razed_sum: u32,
295    pub zerg_structures_score_max: u32,
296    pub zerg_structures_score_min: u32,
297    pub zerg_structures_score_sum: u32,
298    pub zerg_units_killed_max: u32,
299    pub zerg_units_killed_min: u32,
300    pub zerg_units_killed_sum: u32,
301    pub zerg_units_lost_max: u32,
302    pub zerg_units_lost_min: u32,
303    pub zerg_units_lost_sum: u32,
304    pub zerg_units_produced_max: u32,
305    pub zerg_units_produced_min: u32,
306    pub zerg_units_produced_sum: u32,
307    pub zerg_units_score_max: u32,
308    pub zerg_units_score_min: u32,
309    pub zerg_units_score_sum: u32,
310    pub zerg_wins_max: u32,
311    pub zerg_wins_min: u32,
312    pub zerg_wins_sum: u32,
313}
314
315#[derive(Debug, Serialize, Deserialize, Clone)]
316pub struct Replay {
317    pub attributes: ReplayAttributes,
318    pub create_time: u32,
319    pub link: String,
320}
321
322#[derive(Debug, Serialize, Deserialize, Clone)]
323pub struct ReplayAttributes {
324    pub game_creator: String,
325    pub game_id: String,
326    pub game_name: String,
327    pub game_save_id: String,
328    pub game_speed: String,
329    pub game_sub_type: String,
330    pub game_type: String,
331    pub map_era: String,
332    pub map_height: String,
333    pub map_title: String,
334    pub map_width: String,
335    pub replay_description: String,
336    pub replay_humans: String,
337    pub replay_map_number: String,
338    pub replay_max_players: String,
339    pub replay_min_players: String,
340    pub replay_opponents: String,
341    pub replay_player_names: String,
342    pub replay_player_races: String,
343    pub replay_player_types: String,
344    pub replay_result: String,
345}
346
347#[derive(Debug, Serialize, Deserialize, Clone)]
348pub struct Stat {
349    pub benefactor_id: String,
350    pub gateway_id: u32,
351    pub raw: RawStats,
352    pub season_id: u32,
353    pub toon: String,
354}
355
356#[derive(Debug, Serialize, Deserialize, Clone)]
357pub struct Toon {
358    pub games_last_week: u32,
359    pub gateway_id: u32,
360    pub guid: u32,
361    pub toon: String,
362}
363
364#[derive(Debug, Serialize, Deserialize, Clone)]
365pub struct WinStats {
366    pub bonus: f64,
367    pub normal: f64,
368    pub total: f64,
369}