space_traders/models/
market_trade_good.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
9pub struct MarketTradeGood {
10 #[serde(rename = "symbol")]
12 pub symbol: String,
13 #[serde(rename = "tradeVolume")]
15 pub trade_volume: u32,
16 #[serde(rename = "supply")]
18 pub supply: Supply,
19 #[serde(rename = "purchasePrice")]
21 pub purchase_price: u32,
22 #[serde(rename = "sellPrice")]
24 pub sell_price: u32,
25}
26
27impl MarketTradeGood {
28 #[allow(clippy::too_many_arguments)]
30 pub fn new(
31 symbol: String,
32 trade_volume: u32,
33 supply: Supply,
34 purchase_price: u32,
35 sell_price: u32,
36 ) -> MarketTradeGood {
37 MarketTradeGood {
38 symbol,
39 trade_volume,
40 supply,
41 purchase_price,
42 sell_price,
43 }
44 }
45}
46
47#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
49pub enum Supply {
50 #[serde(rename = "SCARCE")]
51 Scarce,
52 #[serde(rename = "LIMITED")]
53 Limited,
54 #[serde(rename = "MODERATE")]
55 Moderate,
56 #[serde(rename = "ABUNDANT")]
57 Abundant,
58}
59
60impl Default for Supply {
61 fn default() -> Supply {
62 Self::Scarce
63 }
64}