1use std::collections::HashMap;
4
5use serde::{Serialize, Deserialize};
6
7#[derive(Clone, Debug, Deserialize, Serialize)]
9#[serde(deny_unknown_fields)]
10pub struct Map {
11 pub current_spectators: u64,
13 pub mode: Mode,
15 pub name: String,
17 pub num_matches_to_win_series: u64,
19 pub phase: Phase,
21 pub round: u64,
23 #[serde(default)]
25 pub round_wins: HashMap<u64, RoundWin>,
26 pub souvenirs_total: u64,
28 pub team_ct: Team,
30 pub team_t: Team,
32}
33
34#[derive(Clone, Debug, Deserialize, Serialize)]
36#[serde(rename_all = "lowercase")]
37pub enum Mode {
38 Competitive,
40 Casual,
42 Deathmatch,
44 Training,
46 #[serde(rename = "gungametrbomb")]
48 Demolition,
49 #[serde(rename = "gungameprogressive")]
51 ArmsRace,
52 #[serde(rename = "scrimcomp2v2")]
54 Wingman,
55}
56
57#[derive(Clone, Debug, Deserialize, Serialize)]
59#[serde(rename_all = "lowercase")]
60pub enum Phase {
61 Warmup,
63 Live,
65 Intermission,
67 GameOver,
69}
70
71pub type RoundWin = String;
75
76#[derive(Clone, Debug, Deserialize, Serialize)]
78#[serde(deny_unknown_fields)]
79pub struct Team {
80 pub score: u64,
82 pub consecutive_round_losses: u64,
84 pub timeouts_remaining: u64,
86 pub matches_won_this_series: u64,
88 pub name: Option<String>,
90 pub flag: Option<String>,
92}