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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
use derive_more::Display;
use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize, Clone, Copy, Debug, Display, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum AntiCheat {
    #[serde(rename(deserialize = "EAC"))]
    EasyAntiCheat,
    #[serde(other)]
    Unknown
}

#[derive(Deserialize, Serialize, Clone, Copy, Debug, Display, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum DayNight {
    Day,
    Night,
}

#[derive(Deserialize, Serialize, Clone, Copy, Debug, Display, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum Gamemode {
    #[serde(rename(deserialize = "CONQ"))]
    Conquest,
    #[serde(rename(deserialize = "INFCONQ"))]
    InfanteryConquest,
    #[serde(rename(deserialize = "RUSH"))]
    Rush,
    #[serde(rename(deserialize = "FRONTLINE"))]
    Frontline,
    #[serde(rename(deserialize = "DOMI"))]
    Domination,
    #[serde(rename(deserialize = "ELI"))]
    Elimination,
    #[serde(rename(deserialize = "TDM"))]
    TeamDeathmatch,
    CaptureTheFlag,
    VoxelFortify,
    VoxelTrench,
    #[serde(rename(deserialize = "FFA"))]
    FreeForAll,
    #[serde(rename(deserialize = "19"))]
    /// Formely unknown gamemode, no idea what this exactly is atm.
    /// Maybe this is a custom gamemode?
    Gamemode19,
    #[serde(other)]
    Unknown
}

#[derive(Deserialize, Serialize, Clone, Copy, Debug, Display, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum MapSize {
    Ultra,
    Big,
    Medium,
    Small,
    Tiny,
    #[serde(other)]
    Unknown
}

#[derive(Deserialize, Serialize, Clone, Copy, Debug, Display, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub enum Region {
    #[serde(rename(deserialize = "Europe_Central"))]
    Europe,
    #[serde(rename(deserialize = "Japan_Central"))]
    Japan,
    #[serde(rename(deserialize = "Australia_Central"))]
    Australia,
    #[serde(rename(deserialize = "America_Central"))]
    America,
    #[serde(rename(deserialize = "Brazil_Central"))]
    Brazil,
    #[serde(rename(deserialize = "Asia_Central"))]
    Asia,
    #[serde(rename(deserialize = "Developer_Server"))]
    DeveloperServer,
    #[serde(other)]
    Unknown
}