use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Country {
#[serde(rename = "AE")]
Ae,
#[serde(rename = "AU")]
Au,
#[serde(rename = "AT")]
At,
#[serde(rename = "BE")]
Be,
#[serde(rename = "BH")]
Bh,
#[serde(rename = "BR")]
Br,
#[serde(rename = "CA")]
Ca,
#[serde(rename = "CH")]
Ch,
#[serde(rename = "CZ")]
Cz,
#[serde(rename = "DE")]
De,
#[serde(rename = "EG")]
Eg,
#[serde(rename = "ES")]
Es,
#[serde(rename = "FI")]
Fi,
#[serde(rename = "FR")]
Fr,
#[serde(rename = "GB")]
Gb,
#[serde(rename = "GG")]
Gg,
#[serde(rename = "HK")]
Hk,
#[serde(rename = "IE")]
Ie,
#[serde(rename = "IM")]
Im,
#[serde(rename = "IT")]
It,
#[serde(rename = "JE")]
Je,
#[serde(rename = "JO")]
Jo,
#[serde(rename = "JP")]
Jp,
#[serde(rename = "KR")]
Kr,
#[serde(rename = "LU")]
Lu,
#[serde(rename = "NL")]
Nl,
#[serde(rename = "NO")]
No,
#[serde(rename = "NZ")]
Nz,
#[serde(rename = "PL")]
Pl,
#[serde(rename = "PT")]
Pt,
#[serde(rename = "QA")]
Qa,
#[serde(rename = "SA")]
Sa,
#[serde(rename = "SE")]
Se,
#[serde(rename = "SI")]
Si,
#[serde(rename = "SG")]
Sg,
#[serde(rename = "TW")]
Tw,
#[serde(rename = "US")]
Us,
#[serde(rename = "UK")]
Uk,
#[serde(rename = "ZA")]
Za,
}
impl std::fmt::Display for Country {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Ae => write!(f, "AE"),
Self::Au => write!(f, "AU"),
Self::At => write!(f, "AT"),
Self::Be => write!(f, "BE"),
Self::Bh => write!(f, "BH"),
Self::Br => write!(f, "BR"),
Self::Ca => write!(f, "CA"),
Self::Ch => write!(f, "CH"),
Self::Cz => write!(f, "CZ"),
Self::De => write!(f, "DE"),
Self::Eg => write!(f, "EG"),
Self::Es => write!(f, "ES"),
Self::Fi => write!(f, "FI"),
Self::Fr => write!(f, "FR"),
Self::Gb => write!(f, "GB"),
Self::Gg => write!(f, "GG"),
Self::Hk => write!(f, "HK"),
Self::Ie => write!(f, "IE"),
Self::Im => write!(f, "IM"),
Self::It => write!(f, "IT"),
Self::Je => write!(f, "JE"),
Self::Jo => write!(f, "JO"),
Self::Jp => write!(f, "JP"),
Self::Kr => write!(f, "KR"),
Self::Lu => write!(f, "LU"),
Self::Nl => write!(f, "NL"),
Self::No => write!(f, "NO"),
Self::Nz => write!(f, "NZ"),
Self::Pl => write!(f, "PL"),
Self::Pt => write!(f, "PT"),
Self::Qa => write!(f, "QA"),
Self::Sa => write!(f, "SA"),
Self::Se => write!(f, "SE"),
Self::Si => write!(f, "SI"),
Self::Sg => write!(f, "SG"),
Self::Tw => write!(f, "TW"),
Self::Us => write!(f, "US"),
Self::Uk => write!(f, "UK"),
Self::Za => write!(f, "ZA"),
}
}
}
impl Default for Country {
fn default() -> Country {
Self::Ae
}
}