space_traders_api/models/
shipyard_ship.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ShipyardShip {
17 #[serde(rename = "type")]
18 pub r#type: models::ShipType,
19 #[serde(rename = "name")]
20 pub name: String,
21 #[serde(rename = "description")]
22 pub description: String,
23 #[serde(rename = "supply")]
24 pub supply: models::SupplyLevel,
25 #[serde(rename = "activity", skip_serializing_if = "Option::is_none")]
26 pub activity: Option<models::ActivityLevel>,
27 #[serde(rename = "purchasePrice")]
28 pub purchase_price: i32,
29 #[serde(rename = "frame")]
30 pub frame: Box<models::ShipFrame>,
31 #[serde(rename = "reactor")]
32 pub reactor: Box<models::ShipReactor>,
33 #[serde(rename = "engine")]
34 pub engine: Box<models::ShipEngine>,
35 #[serde(rename = "modules")]
36 pub modules: Vec<models::ShipModule>,
37 #[serde(rename = "mounts")]
38 pub mounts: Vec<models::ShipMount>,
39 #[serde(rename = "crew")]
40 pub crew: Box<models::ShipyardShipCrew>,
41}
42
43impl ShipyardShip {
44 pub fn new(r#type: models::ShipType, name: String, description: String, supply: models::SupplyLevel, purchase_price: i32, frame: models::ShipFrame, reactor: models::ShipReactor, engine: models::ShipEngine, modules: Vec<models::ShipModule>, mounts: Vec<models::ShipMount>, crew: models::ShipyardShipCrew) -> ShipyardShip {
46 ShipyardShip {
47 r#type,
48 name,
49 description,
50 supply,
51 activity: None,
52 purchase_price,
53 frame: Box::new(frame),
54 reactor: Box::new(reactor),
55 engine: Box::new(engine),
56 modules,
57 mounts,
58 crew: Box::new(crew),
59 }
60 }
61}
62