1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! round-related info

use serde::{Serialize, Deserialize};

/// round info
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct Round {
    /// phase of round
    pub phase: Phase,
    /// status of bomb
    pub bomb: Option<BombState>,
    /// which team won
    pub win_team: Option<super::Team>,
}

/// round phase
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum Phase {
    /// in progress
    Live,
    /// ended
    Over,
    /// hasn't yet started
    FreezeTime,
}

/// bomb state
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum BombState {
    /// planted
    Planted,
    /// defused
    Defused,
    /// exploded
    Exploded,
}