space_traders/models/
waypoint_trait.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
9pub struct WaypointTrait {
10 #[serde(rename = "symbol")]
12 pub symbol: Symbol,
13 #[serde(rename = "name")]
15 pub name: String,
16 #[serde(rename = "description")]
18 pub description: String,
19}
20
21impl WaypointTrait {
22 #[allow(clippy::too_many_arguments)]
24 pub fn new(symbol: Symbol, name: String, description: String) -> WaypointTrait {
25 WaypointTrait {
26 symbol,
27 name,
28 description,
29 }
30 }
31}
32
33#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
35pub enum Symbol {
36 #[serde(rename = "UNCHARTED")]
37 Uncharted,
38 #[serde(rename = "MARKETPLACE")]
39 Marketplace,
40 #[serde(rename = "SHIPYARD")]
41 Shipyard,
42 #[serde(rename = "OUTPOST")]
43 Outpost,
44 #[serde(rename = "SCATTERED_SETTLEMENTS")]
45 ScatteredSettlements,
46 #[serde(rename = "SPRAWLING_CITIES")]
47 SprawlingCities,
48 #[serde(rename = "MEGA_STRUCTURES")]
49 MegaStructures,
50 #[serde(rename = "OVERCROWDED")]
51 Overcrowded,
52 #[serde(rename = "HIGH_TECH")]
53 HighTech,
54 #[serde(rename = "CORRUPT")]
55 Corrupt,
56 #[serde(rename = "BUREAUCRATIC")]
57 Bureaucratic,
58 #[serde(rename = "TRADING_HUB")]
59 TradingHub,
60 #[serde(rename = "INDUSTRIAL")]
61 Industrial,
62 #[serde(rename = "BLACK_MARKET")]
63 BlackMarket,
64 #[serde(rename = "RESEARCH_FACILITY")]
65 ResearchFacility,
66 #[serde(rename = "MILITARY_BASE")]
67 MilitaryBase,
68 #[serde(rename = "SURVEILLANCE_OUTPOST")]
69 SurveillanceOutpost,
70 #[serde(rename = "EXPLORATION_OUTPOST")]
71 ExplorationOutpost,
72 #[serde(rename = "MINERAL_DEPOSITS")]
73 MineralDeposits,
74 #[serde(rename = "COMMON_METAL_DEPOSITS")]
75 CommonMetalDeposits,
76 #[serde(rename = "PRECIOUS_METAL_DEPOSITS")]
77 PreciousMetalDeposits,
78 #[serde(rename = "RARE_METAL_DEPOSITS")]
79 RareMetalDeposits,
80 #[serde(rename = "METHANE_POOLS")]
81 MethanePools,
82 #[serde(rename = "ICE_CRYSTALS")]
83 IceCrystals,
84 #[serde(rename = "EXPLOSIVE_GASES")]
85 ExplosiveGases,
86 #[serde(rename = "STRONG_MAGNETOSPHERE")]
87 StrongMagnetosphere,
88 #[serde(rename = "VIBRANT_AURORAS")]
89 VibrantAuroras,
90 #[serde(rename = "SALT_FLATS")]
91 SaltFlats,
92 #[serde(rename = "CANYONS")]
93 Canyons,
94 #[serde(rename = "PERPETUAL_DAYLIGHT")]
95 PerpetualDaylight,
96 #[serde(rename = "PERPETUAL_OVERCAST")]
97 PerpetualOvercast,
98 #[serde(rename = "DRY_SEABEDS")]
99 DrySeabeds,
100 #[serde(rename = "MAGMA_SEAS")]
101 MagmaSeas,
102 #[serde(rename = "SUPERVOLCANOES")]
103 Supervolcanoes,
104 #[serde(rename = "ASH_CLOUDS")]
105 AshClouds,
106 #[serde(rename = "VAST_RUINS")]
107 VastRuins,
108 #[serde(rename = "MUTATED_FLORA")]
109 MutatedFlora,
110 #[serde(rename = "TERRAFORMED")]
111 Terraformed,
112 #[serde(rename = "EXTREME_TEMPERATURES")]
113 ExtremeTemperatures,
114 #[serde(rename = "EXTREME_PRESSURE")]
115 ExtremePressure,
116 #[serde(rename = "DIVERSE_LIFE")]
117 DiverseLife,
118 #[serde(rename = "SCARCE_LIFE")]
119 ScarceLife,
120 #[serde(rename = "FOSSILS")]
121 Fossils,
122 #[serde(rename = "WEAK_GRAVITY")]
123 WeakGravity,
124 #[serde(rename = "STRONG_GRAVITY")]
125 StrongGravity,
126 #[serde(rename = "CRUSHING_GRAVITY")]
127 CrushingGravity,
128 #[serde(rename = "TOXIC_ATMOSPHERE")]
129 ToxicAtmosphere,
130 #[serde(rename = "CORROSIVE_ATMOSPHERE")]
131 CorrosiveAtmosphere,
132 #[serde(rename = "BREATHABLE_ATMOSPHERE")]
133 BreathableAtmosphere,
134 #[serde(rename = "JOVIAN")]
135 Jovian,
136 #[serde(rename = "ROCKY")]
137 Rocky,
138 #[serde(rename = "VOLCANIC")]
139 Volcanic,
140 #[serde(rename = "FROZEN")]
141 Frozen,
142 #[serde(rename = "SWAMP")]
143 Swamp,
144 #[serde(rename = "BARREN")]
145 Barren,
146 #[serde(rename = "TEMPERATE")]
147 Temperate,
148 #[serde(rename = "JUNGLE")]
149 Jungle,
150 #[serde(rename = "OCEAN")]
151 Ocean,
152 #[serde(rename = "STRIPPED")]
153 Stripped,
154}
155
156impl Default for Symbol {
157 fn default() -> Symbol {
158 Self::Uncharted
159 }
160}