civ_map_generator 0.1.10

A civilization map generator
Documentation
// Auto-generated by build.rs, DO NOT EDIT
use super::EnumStr;
use enum_map::Enum;
use serde::{Deserialize, Serialize};

#[derive(Enum, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize, Debug)]
pub enum UnitPromotion {
    HealInstantly,
    AccuracyI,
    AccuracyII,
    AccuracyIII,
    BarrageI,
    BarrageII,
    BarrageIII,
    Volley,
    ExtendedRange,
    IndirectFire,
    ShockI,
    ShockII,
    ShockIII,
    DrillI,
    DrillII,
    DrillIII,
    Charge,
    Besiege,
    FormationI,
    FormationII,
    Blitz,
    Woodsman,
    Amphibious,
    Medic,
    MedicII,
    ScoutingI,
    ScoutingII,
    ScoutingIII,
    SurvivalismI,
    SurvivalismII,
    SurvivalismIII,
    BoardingPartyI,
    BoardingPartyII,
    BoardingPartyIII,
    CoastalRaiderI,
    CoastalRaiderII,
    CoastalRaiderIII,
    LandingParty,
    TargetingI,
    TargetingII,
    TargetingIII,
    WolfpackI,
    WolfpackII,
    WolfpackIII,
    ArmorPlatingI,
    ArmorPlatingII,
    ArmorPlatingIII,
    FlightDeckI,
    FlightDeckII,
    FlightDeckIII,
    Supply,
    SiegeI,
    SiegeII,
    SiegeIII,
    Evasion,
    InterceptionI,
    InterceptionII,
    InterceptionIII,
    AirTargetingI,
    AirTargetingII,
    Sortie,
    OperationalRange,
    AirRepair,
    MobilityI,
    MobilityII,
    AntiArmorI,
    AntiArmorII,
    CoverI,
    CoverII,
    March,
    Mobility,
    Sentry,
    Logistics,
    AmbushI,
    AmbushII,
    BombardmentI,
    BombardmentII,
    BombardmentIII,
    Morale,
    GreatGeneralsI,
    GreatGeneralsII,
    QuickStudy,
    HakaWarDance,
    Rejuvenation,
    SlingerWithdraw,
    IgnoreTerrainCost,
    PictishCourage,
    HomeSweetHome,
    MohawkWarriorAbility,
    JaguarAbility,
    PersianImmortalAbility,
    ConquistadorAbility,
    JanissaryAbility,
    SipahiAbility,
    CossackAbility,
    HussarAbility,
    NorwegianSkiInfantryAbility,
    HakkapeliittaAbility,
    ZeroAbility,
}

impl EnumStr for UnitPromotion {
    fn as_str(&self) -> &'static str {
        match self {
            UnitPromotion::HealInstantly => "Heal Instantly",
            UnitPromotion::AccuracyI => "Accuracy I",
            UnitPromotion::AccuracyII => "Accuracy II",
            UnitPromotion::AccuracyIII => "Accuracy III",
            UnitPromotion::BarrageI => "Barrage I",
            UnitPromotion::BarrageII => "Barrage II",
            UnitPromotion::BarrageIII => "Barrage III",
            UnitPromotion::Volley => "Volley",
            UnitPromotion::ExtendedRange => "Extended Range",
            UnitPromotion::IndirectFire => "Indirect Fire",
            UnitPromotion::ShockI => "Shock I",
            UnitPromotion::ShockII => "Shock II",
            UnitPromotion::ShockIII => "Shock III",
            UnitPromotion::DrillI => "Drill I",
            UnitPromotion::DrillII => "Drill II",
            UnitPromotion::DrillIII => "Drill III",
            UnitPromotion::Charge => "Charge",
            UnitPromotion::Besiege => "Besiege",
            UnitPromotion::FormationI => "Formation I",
            UnitPromotion::FormationII => "Formation II",
            UnitPromotion::Blitz => "Blitz",
            UnitPromotion::Woodsman => "Woodsman",
            UnitPromotion::Amphibious => "Amphibious",
            UnitPromotion::Medic => "Medic",
            UnitPromotion::MedicII => "Medic II",
            UnitPromotion::ScoutingI => "Scouting I",
            UnitPromotion::ScoutingII => "Scouting II",
            UnitPromotion::ScoutingIII => "Scouting III",
            UnitPromotion::SurvivalismI => "Survivalism I",
            UnitPromotion::SurvivalismII => "Survivalism II",
            UnitPromotion::SurvivalismIII => "Survivalism III",
            UnitPromotion::BoardingPartyI => "Boarding Party I",
            UnitPromotion::BoardingPartyII => "Boarding Party II",
            UnitPromotion::BoardingPartyIII => "Boarding Party III",
            UnitPromotion::CoastalRaiderI => "Coastal Raider I",
            UnitPromotion::CoastalRaiderII => "Coastal Raider II",
            UnitPromotion::CoastalRaiderIII => "Coastal Raider III",
            UnitPromotion::LandingParty => "Landing Party",
            UnitPromotion::TargetingI => "Targeting I",
            UnitPromotion::TargetingII => "Targeting II",
            UnitPromotion::TargetingIII => "Targeting III",
            UnitPromotion::WolfpackI => "Wolfpack I",
            UnitPromotion::WolfpackII => "Wolfpack II",
            UnitPromotion::WolfpackIII => "Wolfpack III",
            UnitPromotion::ArmorPlatingI => "Armor Plating I",
            UnitPromotion::ArmorPlatingII => "Armor Plating II",
            UnitPromotion::ArmorPlatingIII => "Armor Plating III",
            UnitPromotion::FlightDeckI => "Flight Deck I",
            UnitPromotion::FlightDeckII => "Flight Deck II",
            UnitPromotion::FlightDeckIII => "Flight Deck III",
            UnitPromotion::Supply => "Supply",
            UnitPromotion::SiegeI => "Siege I",
            UnitPromotion::SiegeII => "Siege II",
            UnitPromotion::SiegeIII => "Siege III",
            UnitPromotion::Evasion => "Evasion",
            UnitPromotion::InterceptionI => "Interception I",
            UnitPromotion::InterceptionII => "Interception II",
            UnitPromotion::InterceptionIII => "Interception III",
            UnitPromotion::AirTargetingI => "Air Targeting I",
            UnitPromotion::AirTargetingII => "Air Targeting II",
            UnitPromotion::Sortie => "Sortie",
            UnitPromotion::OperationalRange => "Operational Range",
            UnitPromotion::AirRepair => "Air Repair",
            UnitPromotion::MobilityI => "Mobility I",
            UnitPromotion::MobilityII => "Mobility II",
            UnitPromotion::AntiArmorI => "Anti-Armor I",
            UnitPromotion::AntiArmorII => "Anti-Armor II",
            UnitPromotion::CoverI => "Cover I",
            UnitPromotion::CoverII => "Cover II",
            UnitPromotion::March => "March",
            UnitPromotion::Mobility => "Mobility",
            UnitPromotion::Sentry => "Sentry",
            UnitPromotion::Logistics => "Logistics",
            UnitPromotion::AmbushI => "Ambush I",
            UnitPromotion::AmbushII => "Ambush II",
            UnitPromotion::BombardmentI => "Bombardment I",
            UnitPromotion::BombardmentII => "Bombardment II",
            UnitPromotion::BombardmentIII => "Bombardment III",
            UnitPromotion::Morale => "Morale",
            UnitPromotion::GreatGeneralsI => "Great Generals I",
            UnitPromotion::GreatGeneralsII => "Great Generals II",
            UnitPromotion::QuickStudy => "Quick Study",
            UnitPromotion::HakaWarDance => "Haka War Dance",
            UnitPromotion::Rejuvenation => "Rejuvenation",
            UnitPromotion::SlingerWithdraw => "Slinger Withdraw",
            UnitPromotion::IgnoreTerrainCost => "Ignore terrain cost",
            UnitPromotion::PictishCourage => "Pictish Courage",
            UnitPromotion::HomeSweetHome => "Home Sweet Home",
            UnitPromotion::MohawkWarriorAbility => "[Mohawk Warrior] ability",
            UnitPromotion::JaguarAbility => "[Jaguar] ability",
            UnitPromotion::PersianImmortalAbility => "[Persian Immortal] ability",
            UnitPromotion::ConquistadorAbility => "[Conquistador] ability",
            UnitPromotion::JanissaryAbility => "[Janissary] ability",
            UnitPromotion::SipahiAbility => "[Sipahi] ability",
            UnitPromotion::CossackAbility => "[Cossack] ability",
            UnitPromotion::HussarAbility => "[Hussar] ability",
            UnitPromotion::NorwegianSkiInfantryAbility => "[Norwegian Ski Infantry] ability",
            UnitPromotion::HakkapeliittaAbility => "[Hakkapeliitta] ability",
            UnitPromotion::ZeroAbility => "[Zero] ability",
        }
    }

    fn from_str(s: &str) -> Self {
        match s {
            "Heal Instantly" => UnitPromotion::HealInstantly,
            "Accuracy I" => UnitPromotion::AccuracyI,
            "Accuracy II" => UnitPromotion::AccuracyII,
            "Accuracy III" => UnitPromotion::AccuracyIII,
            "Barrage I" => UnitPromotion::BarrageI,
            "Barrage II" => UnitPromotion::BarrageII,
            "Barrage III" => UnitPromotion::BarrageIII,
            "Volley" => UnitPromotion::Volley,
            "Extended Range" => UnitPromotion::ExtendedRange,
            "Indirect Fire" => UnitPromotion::IndirectFire,
            "Shock I" => UnitPromotion::ShockI,
            "Shock II" => UnitPromotion::ShockII,
            "Shock III" => UnitPromotion::ShockIII,
            "Drill I" => UnitPromotion::DrillI,
            "Drill II" => UnitPromotion::DrillII,
            "Drill III" => UnitPromotion::DrillIII,
            "Charge" => UnitPromotion::Charge,
            "Besiege" => UnitPromotion::Besiege,
            "Formation I" => UnitPromotion::FormationI,
            "Formation II" => UnitPromotion::FormationII,
            "Blitz" => UnitPromotion::Blitz,
            "Woodsman" => UnitPromotion::Woodsman,
            "Amphibious" => UnitPromotion::Amphibious,
            "Medic" => UnitPromotion::Medic,
            "Medic II" => UnitPromotion::MedicII,
            "Scouting I" => UnitPromotion::ScoutingI,
            "Scouting II" => UnitPromotion::ScoutingII,
            "Scouting III" => UnitPromotion::ScoutingIII,
            "Survivalism I" => UnitPromotion::SurvivalismI,
            "Survivalism II" => UnitPromotion::SurvivalismII,
            "Survivalism III" => UnitPromotion::SurvivalismIII,
            "Boarding Party I" => UnitPromotion::BoardingPartyI,
            "Boarding Party II" => UnitPromotion::BoardingPartyII,
            "Boarding Party III" => UnitPromotion::BoardingPartyIII,
            "Coastal Raider I" => UnitPromotion::CoastalRaiderI,
            "Coastal Raider II" => UnitPromotion::CoastalRaiderII,
            "Coastal Raider III" => UnitPromotion::CoastalRaiderIII,
            "Landing Party" => UnitPromotion::LandingParty,
            "Targeting I" => UnitPromotion::TargetingI,
            "Targeting II" => UnitPromotion::TargetingII,
            "Targeting III" => UnitPromotion::TargetingIII,
            "Wolfpack I" => UnitPromotion::WolfpackI,
            "Wolfpack II" => UnitPromotion::WolfpackII,
            "Wolfpack III" => UnitPromotion::WolfpackIII,
            "Armor Plating I" => UnitPromotion::ArmorPlatingI,
            "Armor Plating II" => UnitPromotion::ArmorPlatingII,
            "Armor Plating III" => UnitPromotion::ArmorPlatingIII,
            "Flight Deck I" => UnitPromotion::FlightDeckI,
            "Flight Deck II" => UnitPromotion::FlightDeckII,
            "Flight Deck III" => UnitPromotion::FlightDeckIII,
            "Supply" => UnitPromotion::Supply,
            "Siege I" => UnitPromotion::SiegeI,
            "Siege II" => UnitPromotion::SiegeII,
            "Siege III" => UnitPromotion::SiegeIII,
            "Evasion" => UnitPromotion::Evasion,
            "Interception I" => UnitPromotion::InterceptionI,
            "Interception II" => UnitPromotion::InterceptionII,
            "Interception III" => UnitPromotion::InterceptionIII,
            "Air Targeting I" => UnitPromotion::AirTargetingI,
            "Air Targeting II" => UnitPromotion::AirTargetingII,
            "Sortie" => UnitPromotion::Sortie,
            "Operational Range" => UnitPromotion::OperationalRange,
            "Air Repair" => UnitPromotion::AirRepair,
            "Mobility I" => UnitPromotion::MobilityI,
            "Mobility II" => UnitPromotion::MobilityII,
            "Anti-Armor I" => UnitPromotion::AntiArmorI,
            "Anti-Armor II" => UnitPromotion::AntiArmorII,
            "Cover I" => UnitPromotion::CoverI,
            "Cover II" => UnitPromotion::CoverII,
            "March" => UnitPromotion::March,
            "Mobility" => UnitPromotion::Mobility,
            "Sentry" => UnitPromotion::Sentry,
            "Logistics" => UnitPromotion::Logistics,
            "Ambush I" => UnitPromotion::AmbushI,
            "Ambush II" => UnitPromotion::AmbushII,
            "Bombardment I" => UnitPromotion::BombardmentI,
            "Bombardment II" => UnitPromotion::BombardmentII,
            "Bombardment III" => UnitPromotion::BombardmentIII,
            "Morale" => UnitPromotion::Morale,
            "Great Generals I" => UnitPromotion::GreatGeneralsI,
            "Great Generals II" => UnitPromotion::GreatGeneralsII,
            "Quick Study" => UnitPromotion::QuickStudy,
            "Haka War Dance" => UnitPromotion::HakaWarDance,
            "Rejuvenation" => UnitPromotion::Rejuvenation,
            "Slinger Withdraw" => UnitPromotion::SlingerWithdraw,
            "Ignore terrain cost" => UnitPromotion::IgnoreTerrainCost,
            "Pictish Courage" => UnitPromotion::PictishCourage,
            "Home Sweet Home" => UnitPromotion::HomeSweetHome,
            "[Mohawk Warrior] ability" => UnitPromotion::MohawkWarriorAbility,
            "[Jaguar] ability" => UnitPromotion::JaguarAbility,
            "[Persian Immortal] ability" => UnitPromotion::PersianImmortalAbility,
            "[Conquistador] ability" => UnitPromotion::ConquistadorAbility,
            "[Janissary] ability" => UnitPromotion::JanissaryAbility,
            "[Sipahi] ability" => UnitPromotion::SipahiAbility,
            "[Cossack] ability" => UnitPromotion::CossackAbility,
            "[Hussar] ability" => UnitPromotion::HussarAbility,
            "[Norwegian Ski Infantry] ability" => UnitPromotion::NorwegianSkiInfantryAbility,
            "[Hakkapeliitta] ability" => UnitPromotion::HakkapeliittaAbility,
            "[Zero] ability" => UnitPromotion::ZeroAbility,
            _ => panic!("Invalid value for {}: {{}}", s),
        }
    }
}