Skip to main content

nimbuspulse_client/types/
mods.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
4pub struct ChangeModsRequest {
5    pub install_mods: Vec<ModConfigType>,
6    pub uninstall_mods: Vec<ModConfigType>,
7}
8
9#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)]
10pub enum ModConfigType {
11    #[serde(rename = "srs")]
12    Srs,
13    #[serde(rename = "tacview")]
14    TacView,
15    #[serde(rename = "olympus")]
16    Olympus,
17    #[serde(rename = "lotatc")]
18    LotAtc,
19    #[serde(rename = "webconsole")]
20    WebConsole,
21    #[serde(rename = "enhanced_metrics")]
22    EnhancedMetrics,
23    #[serde(rename = "a_4e_c")]
24    A4Ec,
25    #[serde(rename = "bronco_ov_10a")]
26    BroncoOv10a,
27    #[serde(rename = "real_weather")]
28    RealWeather,
29    #[serde(rename = "sr_ea_proxy")]
30    SrEaProxy,
31    #[serde(rename = "aerosimics")]
32    Aerosimics,
33    #[serde(rename = "aerosimics_atc_abm")]
34    AerosimicsAtcAbm,
35}
36
37impl ModConfigType {
38    pub fn as_str(&self) -> &'static str {
39        match self {
40            Self::Srs => "srs",
41            Self::TacView => "tacview",
42            Self::Olympus => "olympus",
43            Self::LotAtc => "lotatc",
44            Self::WebConsole => "webconsole",
45            Self::EnhancedMetrics => "enhanced_metrics",
46            Self::A4Ec => "a_4e_c",
47            Self::BroncoOv10a => "bronco_ov_10a",
48            Self::RealWeather => "real_weather",
49            Self::SrEaProxy => "sr_ea_proxy",
50            Self::Aerosimics => "aerosimics",
51            Self::AerosimicsAtcAbm => "aerosimics_atc_abm",
52        }
53    }
54}
55
56impl std::fmt::Display for ModConfigType {
57    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
58        f.write_str(self.as_str())
59    }
60}