use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ShipFrame {
#[serde(rename = "symbol")]
pub symbol: Symbol,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
pub condition: Option<u32>,
#[serde(rename = "moduleSlots")]
pub module_slots: u32,
#[serde(rename = "mountingPoints")]
pub mounting_points: u32,
#[serde(rename = "fuelCapacity")]
pub fuel_capacity: u32,
#[serde(rename = "requirements")]
pub requirements: crate::models::ShipRequirements,
}
impl ShipFrame {
#[allow(clippy::too_many_arguments)]
pub fn new(
symbol: Symbol,
name: String,
description: String,
module_slots: u32,
mounting_points: u32,
fuel_capacity: u32,
requirements: crate::models::ShipRequirements,
) -> ShipFrame {
ShipFrame {
symbol,
name,
description,
condition: None,
module_slots,
mounting_points,
fuel_capacity,
requirements,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Symbol {
#[serde(rename = "FRAME_PROBE")]
Probe,
#[serde(rename = "FRAME_DRONE")]
Drone,
#[serde(rename = "FRAME_INTERCEPTOR")]
Interceptor,
#[serde(rename = "FRAME_RACER")]
Racer,
#[serde(rename = "FRAME_FIGHTER")]
Fighter,
#[serde(rename = "FRAME_FRIGATE")]
Frigate,
#[serde(rename = "FRAME_SHUTTLE")]
Shuttle,
#[serde(rename = "FRAME_EXPLORER")]
Explorer,
#[serde(rename = "FRAME_MINER")]
Miner,
#[serde(rename = "FRAME_LIGHT_FREIGHTER")]
LightFreighter,
#[serde(rename = "FRAME_HEAVY_FREIGHTER")]
HeavyFreighter,
#[serde(rename = "FRAME_TRANSPORT")]
Transport,
#[serde(rename = "FRAME_DESTROYER")]
Destroyer,
#[serde(rename = "FRAME_CRUISER")]
Cruiser,
#[serde(rename = "FRAME_CARRIER")]
Carrier,
}
impl Default for Symbol {
fn default() -> Symbol {
Self::Probe
}
}