space_traders_api/models/
ship.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Ship {
17 #[serde(rename = "symbol")]
19 pub symbol: String,
20 #[serde(rename = "registration")]
21 pub registration: Box<models::ShipRegistration>,
22 #[serde(rename = "nav")]
23 pub nav: Box<models::ShipNav>,
24 #[serde(rename = "crew")]
25 pub crew: Box<models::ShipCrew>,
26 #[serde(rename = "frame")]
27 pub frame: Box<models::ShipFrame>,
28 #[serde(rename = "reactor")]
29 pub reactor: Box<models::ShipReactor>,
30 #[serde(rename = "engine")]
31 pub engine: Box<models::ShipEngine>,
32 #[serde(rename = "cooldown")]
33 pub cooldown: Box<models::Cooldown>,
34 #[serde(rename = "modules")]
36 pub modules: Vec<models::ShipModule>,
37 #[serde(rename = "mounts")]
39 pub mounts: Vec<models::ShipMount>,
40 #[serde(rename = "cargo")]
41 pub cargo: Box<models::ShipCargo>,
42 #[serde(rename = "fuel")]
43 pub fuel: Box<models::ShipFuel>,
44}
45
46impl Ship {
47 pub fn new(symbol: String, registration: models::ShipRegistration, nav: models::ShipNav, crew: models::ShipCrew, frame: models::ShipFrame, reactor: models::ShipReactor, engine: models::ShipEngine, cooldown: models::Cooldown, modules: Vec<models::ShipModule>, mounts: Vec<models::ShipMount>, cargo: models::ShipCargo, fuel: models::ShipFuel) -> Ship {
49 Ship {
50 symbol,
51 registration: Box::new(registration),
52 nav: Box::new(nav),
53 crew: Box::new(crew),
54 frame: Box::new(frame),
55 reactor: Box::new(reactor),
56 engine: Box::new(engine),
57 cooldown: Box::new(cooldown),
58 modules,
59 mounts,
60 cargo: Box::new(cargo),
61 fuel: Box::new(fuel),
62 }
63 }
64}
65