space_traders/models/
ship_mount.rs

1//! Generated by: <https://openapi-generator.tech>
2//!
3//! Version of specification: `2.0.0`
4
5use serde::{Deserialize, Serialize};
6
7/// A mount is installed on the exterier of a ship.
8#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
9pub struct ShipMount {
10    /// Symbo of this mount.
11    #[serde(rename = "symbol")]
12    pub symbol: Symbol,
13    /// Name of this mount.
14    #[serde(rename = "name")]
15    pub name: String,
16    /// Description of this mount.
17    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
18    pub description: Option<String>,
19    /// Mounts that have this value, such as mining lasers, denote how powerful this mount's capabilities are.
20    #[serde(rename = "strength", skip_serializing_if = "Option::is_none")]
21    pub strength: Option<u32>,
22    /// Mounts that have this value denote what goods can be produced from using the mount.
23    #[serde(rename = "deposits", skip_serializing_if = "Option::is_none")]
24    pub deposits: Option<Vec<Deposits>>,
25    #[serde(rename = "requirements")]
26    pub requirements: crate::models::ShipRequirements,
27}
28
29impl ShipMount {
30    /// Create value with optional fields set to `None`.
31    #[allow(clippy::too_many_arguments)]
32    pub fn new(
33        symbol: Symbol,
34        name: String,
35        requirements: crate::models::ShipRequirements,
36    ) -> ShipMount {
37        ShipMount {
38            symbol,
39            name,
40            description: None,
41            strength: None,
42            deposits: None,
43            requirements,
44        }
45    }
46}
47
48/// Symbo of this mount.
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Symbol {
51    #[serde(rename = "MOUNT_GAS_SIPHON_I")]
52    GasSiphonI,
53    #[serde(rename = "MOUNT_GAS_SIPHON_II")]
54    GasSiphonIi,
55    #[serde(rename = "MOUNT_GAS_SIPHON_III")]
56    GasSiphonIii,
57    #[serde(rename = "MOUNT_SURVEYOR_I")]
58    SurveyorI,
59    #[serde(rename = "MOUNT_SURVEYOR_II")]
60    SurveyorIi,
61    #[serde(rename = "MOUNT_SURVEYOR_III")]
62    SurveyorIii,
63    #[serde(rename = "MOUNT_SENSOR_ARRAY_I")]
64    SensorArrayI,
65    #[serde(rename = "MOUNT_SENSOR_ARRAY_II")]
66    SensorArrayIi,
67    #[serde(rename = "MOUNT_SENSOR_ARRAY_III")]
68    SensorArrayIii,
69    #[serde(rename = "MOUNT_MINING_LASER_I")]
70    MiningLaserI,
71    #[serde(rename = "MOUNT_MINING_LASER_II")]
72    MiningLaserIi,
73    #[serde(rename = "MOUNT_MINING_LASER_III")]
74    MiningLaserIii,
75    #[serde(rename = "MOUNT_LASER_CANNON_I")]
76    LaserCannonI,
77    #[serde(rename = "MOUNT_MISSILE_LAUNCHER_I")]
78    MissileLauncherI,
79    #[serde(rename = "MOUNT_TURRET_I")]
80    TurretI,
81}
82
83impl Default for Symbol {
84    fn default() -> Symbol {
85        Self::GasSiphonI
86    }
87}
88/// Mounts that have this value denote what goods can be produced from using the mount.
89#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
90pub enum Deposits {
91    #[serde(rename = "QUARTZ_SAND")]
92    QuartzSand,
93    #[serde(rename = "SILICON_CRYSTALS")]
94    SiliconCrystals,
95    #[serde(rename = "PRECIOUS_STONES")]
96    PreciousStones,
97    #[serde(rename = "ICE_WATER")]
98    IceWater,
99    #[serde(rename = "AMMONIA_ICE")]
100    AmmoniaIce,
101    #[serde(rename = "IRON_ORE")]
102    IronOre,
103    #[serde(rename = "COPPER_ORE")]
104    CopperOre,
105    #[serde(rename = "SILVER_ORE")]
106    SilverOre,
107    #[serde(rename = "ALUMINUM_ORE")]
108    AluminumOre,
109    #[serde(rename = "GOLD_ORE")]
110    GoldOre,
111    #[serde(rename = "PLATINUM_ORE")]
112    PlatinumOre,
113    #[serde(rename = "DIAMONDS")]
114    Diamonds,
115    #[serde(rename = "URANITE_ORE")]
116    UraniteOre,
117    #[serde(rename = "MERITIUM_ORE")]
118    MeritiumOre,
119}
120
121impl Default for Deposits {
122    fn default() -> Deposits {
123        Self::QuartzSand
124    }
125}