use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ShipReactor {
#[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 = "powerOutput")]
pub power_output: u32,
#[serde(rename = "requirements")]
pub requirements: crate::models::ShipRequirements,
}
impl ShipReactor {
#[allow(clippy::too_many_arguments)]
pub fn new(
symbol: Symbol,
name: String,
description: String,
power_output: u32,
requirements: crate::models::ShipRequirements,
) -> ShipReactor {
ShipReactor {
symbol,
name,
description,
condition: None,
power_output,
requirements,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Symbol {
#[serde(rename = "REACTOR_SOLAR_I")]
SolarI,
#[serde(rename = "REACTOR_FUSION_I")]
FusionI,
#[serde(rename = "REACTOR_FISSION_I")]
FissionI,
#[serde(rename = "REACTOR_CHEMICAL_I")]
ChemicalI,
#[serde(rename = "REACTOR_ANTIMATTER_I")]
AntimatterI,
}
impl Default for Symbol {
fn default() -> Symbol {
Self::SolarI
}
}