use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ShipMount {
#[serde(rename = "symbol")]
pub symbol: Symbol,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "strength", skip_serializing_if = "Option::is_none")]
pub strength: Option<u32>,
#[serde(rename = "deposits", skip_serializing_if = "Option::is_none")]
pub deposits: Option<Vec<Deposits>>,
#[serde(rename = "requirements")]
pub requirements: crate::models::ShipRequirements,
}
impl ShipMount {
#[allow(clippy::too_many_arguments)]
pub fn new(
symbol: Symbol,
name: String,
requirements: crate::models::ShipRequirements,
) -> ShipMount {
ShipMount {
symbol,
name,
description: None,
strength: None,
deposits: None,
requirements,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Symbol {
#[serde(rename = "MOUNT_GAS_SIPHON_I")]
GasSiphonI,
#[serde(rename = "MOUNT_GAS_SIPHON_II")]
GasSiphonIi,
#[serde(rename = "MOUNT_GAS_SIPHON_III")]
GasSiphonIii,
#[serde(rename = "MOUNT_SURVEYOR_I")]
SurveyorI,
#[serde(rename = "MOUNT_SURVEYOR_II")]
SurveyorIi,
#[serde(rename = "MOUNT_SURVEYOR_III")]
SurveyorIii,
#[serde(rename = "MOUNT_SENSOR_ARRAY_I")]
SensorArrayI,
#[serde(rename = "MOUNT_SENSOR_ARRAY_II")]
SensorArrayIi,
#[serde(rename = "MOUNT_SENSOR_ARRAY_III")]
SensorArrayIii,
#[serde(rename = "MOUNT_MINING_LASER_I")]
MiningLaserI,
#[serde(rename = "MOUNT_MINING_LASER_II")]
MiningLaserIi,
#[serde(rename = "MOUNT_MINING_LASER_III")]
MiningLaserIii,
#[serde(rename = "MOUNT_LASER_CANNON_I")]
LaserCannonI,
#[serde(rename = "MOUNT_MISSILE_LAUNCHER_I")]
MissileLauncherI,
#[serde(rename = "MOUNT_TURRET_I")]
TurretI,
}
impl Default for Symbol {
fn default() -> Symbol {
Self::GasSiphonI
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Deposits {
#[serde(rename = "QUARTZ_SAND")]
QuartzSand,
#[serde(rename = "SILICON_CRYSTALS")]
SiliconCrystals,
#[serde(rename = "PRECIOUS_STONES")]
PreciousStones,
#[serde(rename = "ICE_WATER")]
IceWater,
#[serde(rename = "AMMONIA_ICE")]
AmmoniaIce,
#[serde(rename = "IRON_ORE")]
IronOre,
#[serde(rename = "COPPER_ORE")]
CopperOre,
#[serde(rename = "SILVER_ORE")]
SilverOre,
#[serde(rename = "ALUMINUM_ORE")]
AluminumOre,
#[serde(rename = "GOLD_ORE")]
GoldOre,
#[serde(rename = "PLATINUM_ORE")]
PlatinumOre,
#[serde(rename = "DIAMONDS")]
Diamonds,
#[serde(rename = "URANITE_ORE")]
UraniteOre,
#[serde(rename = "MERITIUM_ORE")]
MeritiumOre,
}
impl Default for Deposits {
fn default() -> Deposits {
Self::QuartzSand
}
}