use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ShipEngine {
#[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 = "speed")]
pub speed: u32,
#[serde(rename = "requirements")]
pub requirements: crate::models::ShipRequirements,
}
impl ShipEngine {
#[allow(clippy::too_many_arguments)]
pub fn new(
symbol: Symbol,
name: String,
description: String,
speed: u32,
requirements: crate::models::ShipRequirements,
) -> ShipEngine {
ShipEngine {
symbol,
name,
description,
condition: None,
speed,
requirements,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Symbol {
#[serde(rename = "ENGINE_IMPULSE_DRIVE_I")]
ImpulseDriveI,
#[serde(rename = "ENGINE_ION_DRIVE_I")]
IonDriveI,
#[serde(rename = "ENGINE_ION_DRIVE_II")]
IonDriveIi,
#[serde(rename = "ENGINE_HYPER_DRIVE_I")]
HyperDriveI,
}
impl Default for Symbol {
fn default() -> Symbol {
Self::ImpulseDriveI
}
}