space_traders/models/
faction_trait.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
9pub struct FactionTrait {
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 FactionTrait {
22 #[allow(clippy::too_many_arguments)]
24 pub fn new(symbol: Symbol, name: String, description: String) -> FactionTrait {
25 FactionTrait {
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 = "BUREAUCRATIC")]
37 Bureaucratic,
38 #[serde(rename = "SECRETIVE")]
39 Secretive,
40 #[serde(rename = "CAPITALISTIC")]
41 Capitalistic,
42 #[serde(rename = "INDUSTRIOUS")]
43 Industrious,
44 #[serde(rename = "PEACEFUL")]
45 Peaceful,
46 #[serde(rename = "DISTRUSTFUL")]
47 Distrustful,
48 #[serde(rename = "WELCOMING")]
49 Welcoming,
50 #[serde(rename = "SMUGGLERS")]
51 Smugglers,
52 #[serde(rename = "SCAVENGERS")]
53 Scavengers,
54 #[serde(rename = "REBELLIOUS")]
55 Rebellious,
56 #[serde(rename = "EXILES")]
57 Exiles,
58 #[serde(rename = "PIRATES")]
59 Pirates,
60 #[serde(rename = "RAIDERS")]
61 Raiders,
62 #[serde(rename = "CLAN")]
63 Clan,
64 #[serde(rename = "GUILD")]
65 Guild,
66 #[serde(rename = "DOMINION")]
67 Dominion,
68 #[serde(rename = "FRINGE")]
69 Fringe,
70 #[serde(rename = "FORSAKEN")]
71 Forsaken,
72 #[serde(rename = "ISOLATED")]
73 Isolated,
74 #[serde(rename = "LOCALIZED")]
75 Localized,
76 #[serde(rename = "ESTABLISHED")]
77 Established,
78 #[serde(rename = "NOTABLE")]
79 Notable,
80 #[serde(rename = "DOMINANT")]
81 Dominant,
82 #[serde(rename = "INESCAPABLE")]
83 Inescapable,
84 #[serde(rename = "INNOVATIVE")]
85 Innovative,
86 #[serde(rename = "BOLD")]
87 Bold,
88 #[serde(rename = "VISIONARY")]
89 Visionary,
90 #[serde(rename = "CURIOUS")]
91 Curious,
92 #[serde(rename = "DARING")]
93 Daring,
94 #[serde(rename = "EXPLORATORY")]
95 Exploratory,
96 #[serde(rename = "RESOURCEFUL")]
97 Resourceful,
98 #[serde(rename = "FLEXIBLE")]
99 Flexible,
100 #[serde(rename = "COOPERATIVE")]
101 Cooperative,
102 #[serde(rename = "UNITED")]
103 United,
104 #[serde(rename = "STRATEGIC")]
105 Strategic,
106 #[serde(rename = "INTELLIGENT")]
107 Intelligent,
108 #[serde(rename = "RESEARCH_FOCUSED")]
109 ResearchFocused,
110 #[serde(rename = "COLLABORATIVE")]
111 Collaborative,
112 #[serde(rename = "PROGRESSIVE")]
113 Progressive,
114 #[serde(rename = "MILITARISTIC")]
115 Militaristic,
116 #[serde(rename = "TECHNOLOGICALLY_ADVANCED")]
117 TechnologicallyAdvanced,
118 #[serde(rename = "AGGRESSIVE")]
119 Aggressive,
120 #[serde(rename = "IMPERIALISTIC")]
121 Imperialistic,
122 #[serde(rename = "TREASURE_HUNTERS")]
123 TreasureHunters,
124 #[serde(rename = "DEXTEROUS")]
125 Dexterous,
126 #[serde(rename = "UNPREDICTABLE")]
127 Unpredictable,
128 #[serde(rename = "BRUTAL")]
129 Brutal,
130 #[serde(rename = "FLEETING")]
131 Fleeting,
132 #[serde(rename = "ADAPTABLE")]
133 Adaptable,
134 #[serde(rename = "SELF_SUFFICIENT")]
135 SelfSufficient,
136 #[serde(rename = "DEFENSIVE")]
137 Defensive,
138 #[serde(rename = "PROUD")]
139 Proud,
140 #[serde(rename = "DIVERSE")]
141 Diverse,
142 #[serde(rename = "INDEPENDENT")]
143 Independent,
144 #[serde(rename = "SELF_INTERESTED")]
145 SelfInterested,
146 #[serde(rename = "FRAGMENTED")]
147 Fragmented,
148 #[serde(rename = "COMMERCIAL")]
149 Commercial,
150 #[serde(rename = "FREE_MARKETS")]
151 FreeMarkets,
152 #[serde(rename = "ENTREPRENEURIAL")]
153 Entrepreneurial,
154}
155
156impl Default for Symbol {
157 fn default() -> Symbol {
158 Self::Bureaucratic
159 }
160}