nimbuspulse_client/types/
mods.rs1use 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}