use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct FactionTrait {
#[serde(rename = "symbol")]
pub symbol: Symbol,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description")]
pub description: String,
}
impl FactionTrait {
#[allow(clippy::too_many_arguments)]
pub fn new(symbol: Symbol, name: String, description: String) -> FactionTrait {
FactionTrait {
symbol,
name,
description,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Symbol {
#[serde(rename = "BUREAUCRATIC")]
Bureaucratic,
#[serde(rename = "SECRETIVE")]
Secretive,
#[serde(rename = "CAPITALISTIC")]
Capitalistic,
#[serde(rename = "INDUSTRIOUS")]
Industrious,
#[serde(rename = "PEACEFUL")]
Peaceful,
#[serde(rename = "DISTRUSTFUL")]
Distrustful,
#[serde(rename = "WELCOMING")]
Welcoming,
#[serde(rename = "SMUGGLERS")]
Smugglers,
#[serde(rename = "SCAVENGERS")]
Scavengers,
#[serde(rename = "REBELLIOUS")]
Rebellious,
#[serde(rename = "EXILES")]
Exiles,
#[serde(rename = "PIRATES")]
Pirates,
#[serde(rename = "RAIDERS")]
Raiders,
#[serde(rename = "CLAN")]
Clan,
#[serde(rename = "GUILD")]
Guild,
#[serde(rename = "DOMINION")]
Dominion,
#[serde(rename = "FRINGE")]
Fringe,
#[serde(rename = "FORSAKEN")]
Forsaken,
#[serde(rename = "ISOLATED")]
Isolated,
#[serde(rename = "LOCALIZED")]
Localized,
#[serde(rename = "ESTABLISHED")]
Established,
#[serde(rename = "NOTABLE")]
Notable,
#[serde(rename = "DOMINANT")]
Dominant,
#[serde(rename = "INESCAPABLE")]
Inescapable,
#[serde(rename = "INNOVATIVE")]
Innovative,
#[serde(rename = "BOLD")]
Bold,
#[serde(rename = "VISIONARY")]
Visionary,
#[serde(rename = "CURIOUS")]
Curious,
#[serde(rename = "DARING")]
Daring,
#[serde(rename = "EXPLORATORY")]
Exploratory,
#[serde(rename = "RESOURCEFUL")]
Resourceful,
#[serde(rename = "FLEXIBLE")]
Flexible,
#[serde(rename = "COOPERATIVE")]
Cooperative,
#[serde(rename = "UNITED")]
United,
#[serde(rename = "STRATEGIC")]
Strategic,
#[serde(rename = "INTELLIGENT")]
Intelligent,
#[serde(rename = "RESEARCH_FOCUSED")]
ResearchFocused,
#[serde(rename = "COLLABORATIVE")]
Collaborative,
#[serde(rename = "PROGRESSIVE")]
Progressive,
#[serde(rename = "MILITARISTIC")]
Militaristic,
#[serde(rename = "TECHNOLOGICALLY_ADVANCED")]
TechnologicallyAdvanced,
#[serde(rename = "AGGRESSIVE")]
Aggressive,
#[serde(rename = "IMPERIALISTIC")]
Imperialistic,
#[serde(rename = "TREASURE_HUNTERS")]
TreasureHunters,
#[serde(rename = "DEXTEROUS")]
Dexterous,
#[serde(rename = "UNPREDICTABLE")]
Unpredictable,
#[serde(rename = "BRUTAL")]
Brutal,
#[serde(rename = "FLEETING")]
Fleeting,
#[serde(rename = "ADAPTABLE")]
Adaptable,
#[serde(rename = "SELF_SUFFICIENT")]
SelfSufficient,
#[serde(rename = "DEFENSIVE")]
Defensive,
#[serde(rename = "PROUD")]
Proud,
#[serde(rename = "DIVERSE")]
Diverse,
#[serde(rename = "INDEPENDENT")]
Independent,
#[serde(rename = "SELF_INTERESTED")]
SelfInterested,
#[serde(rename = "FRAGMENTED")]
Fragmented,
#[serde(rename = "COMMERCIAL")]
Commercial,
#[serde(rename = "FREE_MARKETS")]
FreeMarkets,
#[serde(rename = "ENTREPRENEURIAL")]
Entrepreneurial,
}
impl Default for Symbol {
fn default() -> Symbol {
Self::Bureaucratic
}
}