use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ShipModule {
#[serde(rename = "symbol")]
pub symbol: Symbol,
#[serde(rename = "capacity", skip_serializing_if = "Option::is_none")]
pub capacity: Option<u32>,
#[serde(rename = "range", skip_serializing_if = "Option::is_none")]
pub range: Option<u32>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "requirements")]
pub requirements: crate::models::ShipRequirements,
}
impl ShipModule {
#[allow(clippy::too_many_arguments)]
pub fn new(
symbol: Symbol,
name: String,
description: String,
requirements: crate::models::ShipRequirements,
) -> ShipModule {
ShipModule {
symbol,
capacity: None,
range: None,
name,
description,
requirements,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Symbol {
#[serde(rename = "MODULE_MINERAL_PROCESSOR_I")]
MineralProcessorI,
#[serde(rename = "MODULE_CARGO_HOLD_I")]
CargoHoldI,
#[serde(rename = "MODULE_CREW_QUARTERS_I")]
CrewQuartersI,
#[serde(rename = "MODULE_ENVOY_QUARTERS_I")]
EnvoyQuartersI,
#[serde(rename = "MODULE_PASSENGER_CABIN_I")]
PassengerCabinI,
#[serde(rename = "MODULE_MICRO_REFINERY_I")]
MicroRefineryI,
#[serde(rename = "MODULE_ORE_REFINERY_I")]
OreRefineryI,
#[serde(rename = "MODULE_FUEL_REFINERY_I")]
FuelRefineryI,
#[serde(rename = "MODULE_SCIENCE_LAB_I")]
ScienceLabI,
#[serde(rename = "MODULE_JUMP_DRIVE_I")]
JumpDriveI,
#[serde(rename = "MODULE_JUMP_DRIVE_II")]
JumpDriveIi,
#[serde(rename = "MODULE_JUMP_DRIVE_III")]
JumpDriveIii,
#[serde(rename = "MODULE_WARP_DRIVE_I")]
WarpDriveI,
#[serde(rename = "MODULE_WARP_DRIVE_II")]
WarpDriveIi,
#[serde(rename = "MODULE_WARP_DRIVE_III")]
WarpDriveIii,
#[serde(rename = "MODULE_SHIELD_GENERATOR_I")]
ShieldGeneratorI,
#[serde(rename = "MODULE_SHIELD_GENERATOR_II")]
ShieldGeneratorIi,
}
impl Default for Symbol {
fn default() -> Symbol {
Self::MineralProcessorI
}
}