Fork channel

Create a new channel as a copy of main.

Rename channel

Rename main to:

Delete channel

Delete main? This cannot be undone.

lib.rs
use std::cmp::Ordering;
use std::fmt;
use std::str::FromStr;

use serde::{
    Serialize,
    Serializer,
};

#[derive(Debug)]
pub struct Error(String);

impl fmt::Display for Error {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}", self.0)
    }
}

/// Country
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum Country {
    China,
    India,
    UnitedStates,
    Indonesia,
    Pakistan,
    Brazil,
    Nigeria,
    Bangladesh,
    Russia,
    Mexico,
    Japan,
    Ethiopia,
    Philippines,
    Egypt,
    Vietnam,
    DRCongo,
    Iran,
    Turkey,
    Germany,
    France,
    UnitedKingdom,
    Thailand,
    SouthAfrica,
    Tanzania,
    Italy,
    Myanmar,
    SouthKorea,
    Colombia,
    Kenya,
    Spain,
    Argentina,
    Algeria,
    Sudan,
    Uganda,
    Ukraine,
    Iraq,
    Canada,
    Poland,
    Morocco,
    Uzbekistan,
    SaudiArabia,
    Peru,
    Afghanistan,
    Malaysia,
    Angola,
    Ghana,
    Mozambique,
    Yemen,
    Nepal,
    Venezuela,
    IvoryCoast,
    Madagascar,
    Australia,
    NorthKorea,
    Cameroon,
    Niger,
    Taiwan,
    SriLanka,
    BurkinaFaso,
    Mali,
    Chile,
    Romania,
    Kazakhstan,
    Malawi,
    Zambia,
    Syria,
    Ecuador,
    Netherlands,
    Senegal,
    Guatemala,
    Chad,
    Somalia,
    Zimbabwe,
    Cambodia,
    SouthSudan,
    Rwanda,
    Guinea,
    Burundi,
    Benin,
    Bolivia,
    Haiti,
    Tunisia,
    Belgium,
    Cuba,
    Jordan,
    Greece,
    CzechRepublic,
    DominicanRepublic,
    Sweden,
    Portugal,
    Azerbaijan,
    Hungary,
    UnitedArabEmirates,
    Honduras,
    Belarus,
    Israel,
    Tajikistan,
    PapuaNewGuinea,
    Austria,
    Switzerland,
    SierraLeone,
    Togo,
    HongKong,
    Paraguay,
    Laos,
    Libya,
    Bulgaria,
    Serbia,
    ElSalvador,
    Lebanon,
    Kyrgyzstan,
    Nicaragua,
    Turkmenistan,
    Denmark,
    Singapore,
    Congo,
    CentralAfricanRepublic,
    Finland,
    Slovakia,
    Norway,
    Palestine,
    CostaRica,
    NewZealand,
    Ireland,
    Liberia,
    Oman,
    Kuwait,
    Panama,
    Mauritania,
    Croatia,
    Georgia,
    Eritrea,
    Uruguay,
    Mongolia,
    BosniaAndHerzegovina,
    PuertoRico,
    Armenia,
    Albania,
    Lithuania,
    Jamaica,
    Qatar,
    Moldova,
    Namibia,
    Botswana,
    Gambia,
    Gabon,
    Slovenia,
    NorthMacedonia,
    Lesotho,
    Latvia,
    Kosovo,
    GuineaBissau,
    Bahrain,
    EquatorialGuinea,
    TrinidadAndTobago,
    Estonia,
    EastTimor,
    Mauritius,
    Eswatini,
    Djibouti,
    Fiji,
    Cyprus,
    Comoros,
    Bhutan,
    Guyana,
    SolomonIslands,
    Macau,
    Luxembourg,
    Montenegro,
    WesternSahara,
    Suriname,
    CapeVerde,
    Malta,
    Transnistria,
    Brunei,
    Belize,
    Bahamas,
    Maldives,
    NorthernCyprus,
    Iceland,
    Vanuatu,
    Barbados,
    FrenchPolynesia,
    NewCaledonia,
    Abkhazia,
    SaoTomeAndPrincipe,
    Samoa,
    SaintLucia,
    Guam,
    Curacao,
    RepublicOfArtsakh,
    Kiribati,
    Grenada,
    Aruba,
    SaintVincentAndTheGrenadines,
    Jersey,
    FSMicronesia,
    USVirginIslands,
    Tonga,
    AntiguaAndBarbuda,
    Seychelles,
    IsleOfMan,
    Andorra,
    Dominica,
    CaymanIslands,
    Bermuda,
    Guernsey,
    AmericanSamoa,
    NorthernMarianaIslands,
    Greenland,
    MarshallIslands,
    SaintKittsandNevis,
    SouthOssetia,
    FaroeIslands,
    TurksandCaicosIslands,
    SintMaarten,
    Liechtenstein,
    Monaco,
    SaintMartin,
    Gibraltar,
    SanMarino,
    AlandIslands,
    BritishVirginIslands,
    Palau,
    CookIslands,
    Anguilla,
    Nauru,
    WallisandFutuna,
    Tuvalu,
    SaintBarthelemy,
    SaintPierreAndMiquelon,
    SaintHelenaAndTristanDaCunha,
    Montserrat,
    FalklandIslands,
    ChristmasIsland,
    NorfolkIsland,
    Niue,
    Tokelau,
    VaticanCity,
    CocosKeelingIslands,
    PitcairnIslands,
}

impl Serialize for Country {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        serializer.serialize_str(&self.to_string())
    }
}

impl Country {
    /// Return the country name in lowercase with underscores replacing spaces.
    pub fn as_path(&self) -> String {
        self.to_string().to_lowercase().replace(' ', "_") 
    }
}

impl PartialOrd for Country {
    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
        Some(self.to_string().cmp(&other.to_string()))
    }
}

impl Ord for Country {
    fn cmp(&self, other: &Self) -> Ordering {
        self.to_string().cmp(&other.to_string())
    }
}
 
impl FromStr for Country {
    type Err = Error;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        let cleaned = s.to_lowercase().replace('_', " ");
        match cleaned.as_str() {
            "china"                                        => Ok(Country::China),
            "india"                                        => Ok(Country::India),
            "united states"                                => Ok(Country::UnitedStates),
            "indonesia"                                    => Ok(Country::Indonesia),
            "pakistan"                                     => Ok(Country::Pakistan),
            "brazil"                                       => Ok(Country::Brazil),
            "nigeria"                                      => Ok(Country::Nigeria),
            "bangladesh"                                   => Ok(Country::Bangladesh),
            "russia"                                       => Ok(Country::Russia),
            "mexico"                                       => Ok(Country::Mexico),
            "japan"                                        => Ok(Country::Japan),
            "ethiopia"                                     => Ok(Country::Ethiopia),
            "philippines"                                  => Ok(Country::Philippines),
            "egypt"                                        => Ok(Country::Egypt),
            "vietnam"                                      => Ok(Country::Vietnam),
            "dr congo"                                     => Ok(Country::DRCongo),
            "iran"                                         => Ok(Country::Iran),
            "turkey"                                       => Ok(Country::Turkey),
            "germany"                                      => Ok(Country::Germany),
            "france"                                       => Ok(Country::France),
            "united kingdom"                               => Ok(Country::UnitedKingdom),
            "thailand"                                     => Ok(Country::Thailand),
            "south africa"                                 => Ok(Country::SouthAfrica),
            "tanzania"                                     => Ok(Country::Tanzania),
            "italy"                                        => Ok(Country::Italy),
            "myanmar"                                      => Ok(Country::Myanmar),
            "south korea"                                  => Ok(Country::SouthKorea),
            "colombia"                                     => Ok(Country::Colombia),
            "kenya"                                        => Ok(Country::Kenya),
            "spain"                                        => Ok(Country::Spain),
            "argentina"                                    => Ok(Country::Argentina),
            "algeria"                                      => Ok(Country::Algeria),
            "sudan"                                        => Ok(Country::Sudan),
            "uganda"                                       => Ok(Country::Uganda),
            "ukraine"                                      => Ok(Country::Ukraine),
            "iraq"                                         => Ok(Country::Iraq),
            "canada"                                       => Ok(Country::Canada),
            "poland"                                       => Ok(Country::Poland),
            "morocco"                                      => Ok(Country::Morocco),
            "uzbekistan"                                   => Ok(Country::Uzbekistan),
            "saudi arabia"                                 => Ok(Country::SaudiArabia),
            "peru"                                         => Ok(Country::Peru),
            "afghanistan"                                  => Ok(Country::Afghanistan),
            "malaysia"                                     => Ok(Country::Malaysia),
            "angola"                                       => Ok(Country::Angola),
            "ghana"                                        => Ok(Country::Ghana),
            "mozambique"                                   => Ok(Country::Mozambique),
            "yemen"                                        => Ok(Country::Yemen),
            "nepal"                                        => Ok(Country::Nepal),
            "venezuela"                                    => Ok(Country::Venezuela),
            "ivory coast"                                  => Ok(Country::IvoryCoast),
            "madagascar"                                   => Ok(Country::Madagascar),
            "australia"                                    => Ok(Country::Australia),
            "north korea"                                  => Ok(Country::NorthKorea),
            "cameroon"                                     => Ok(Country::Cameroon),
            "niger"                                        => Ok(Country::Niger),
            "taiwan"                                       => Ok(Country::Taiwan),
            "srilanka"                                     => Ok(Country::SriLanka),
            "burkina faso"                                 => Ok(Country::BurkinaFaso),
            "mali"                                         => Ok(Country::Mali),
            "chile"                                        => Ok(Country::Chile),
            "romania"                                      => Ok(Country::Romania),
            "kazakhstan"                                   => Ok(Country::Kazakhstan),
            "malawi"                                       => Ok(Country::Malawi),
            "zambia"                                       => Ok(Country::Zambia),
            "syria"                                        => Ok(Country::Syria),
            "ecuador"                                      => Ok(Country::Ecuador),
            "netherlands"                                  => Ok(Country::Netherlands),
            "senegal"                                      => Ok(Country::Senegal),
            "guatemala"                                    => Ok(Country::Guatemala),
            "chad"                                         => Ok(Country::Chad),
            "somalia"                                      => Ok(Country::Somalia),
            "zimbabwe"                                     => Ok(Country::Zimbabwe),
            "cambodia"                                     => Ok(Country::Cambodia),
            "south sudan"                                  => Ok(Country::SouthSudan),
            "rwanda"                                       => Ok(Country::Rwanda),
            "guinea"                                       => Ok(Country::Guinea),
            "burundi"                                      => Ok(Country::Burundi),
            "benin"                                        => Ok(Country::Benin),
            "bolivia"                                      => Ok(Country::Bolivia),
            "haiti"                                        => Ok(Country::Haiti),
            "tunisia"                                      => Ok(Country::Tunisia),
            "belgium"                                      => Ok(Country::Belgium),
            "cuba"                                         => Ok(Country::Cuba),
            "jordan"                                       => Ok(Country::Jordan),
            "greece"                                       => Ok(Country::Greece),
            "czech republic"                               => Ok(Country::CzechRepublic),
            "dominican republic"                           => Ok(Country::DominicanRepublic),
            "sweden"                                       => Ok(Country::Sweden),
            "portugal"                                     => Ok(Country::Portugal),
            "azerbaijan"                                   => Ok(Country::Azerbaijan),
            "hungary"                                      => Ok(Country::Hungary),
            "united arab emirates"                         => Ok(Country::UnitedArabEmirates),
            "honduras"                                     => Ok(Country::Honduras),
            "belarus"                                      => Ok(Country::Belarus),
            "israel"                                       => Ok(Country::Israel),
            "tajikistan"                                   => Ok(Country::Tajikistan),
            "papua new guinea"                             => Ok(Country::PapuaNewGuinea),
            "austria"                                      => Ok(Country::Austria),
            "switzerland"                                  => Ok(Country::Switzerland),
            "sierraLeone"                                  => Ok(Country::SierraLeone),
            "togo"                                         => Ok(Country::Togo),
            "hongkong"                                     => Ok(Country::HongKong),
            "paraguay"                                     => Ok(Country::Paraguay),
            "laos"                                         => Ok(Country::Laos),
            "libya"                                        => Ok(Country::Libya),
            "bulgaria"                                     => Ok(Country::Bulgaria),
            "serbia"                                       => Ok(Country::Serbia),
            "el salvador"                                  => Ok(Country::ElSalvador),
            "lebanon"                                      => Ok(Country::Lebanon),
            "kyrgyzstan"                                   => Ok(Country::Kyrgyzstan),
            "nicaragua"                                    => Ok(Country::Nicaragua),
            "turkmenistan"                                 => Ok(Country::Turkmenistan),
            "denmark"                                      => Ok(Country::Denmark),
            "singapore"                                    => Ok(Country::Singapore),
            "congo"                                        => Ok(Country::Congo),
            "central african republic"                     => Ok(Country::CentralAfricanRepublic),
            "finland"                                      => Ok(Country::Finland),
            "slovakia"                                     => Ok(Country::Slovakia),
            "norway"                                       => Ok(Country::Norway),
            "palestine"                                    => Ok(Country::Palestine),
            "costa Rica"                                   => Ok(Country::CostaRica),
            "new zealand"                                  => Ok(Country::NewZealand),
            "ireland"                                      => Ok(Country::Ireland),
            "liberia"                                      => Ok(Country::Liberia),
            "oman"                                         => Ok(Country::Oman),
            "kuwait"                                       => Ok(Country::Kuwait),
            "panama"                                       => Ok(Country::Panama),
            "mauritania"                                   => Ok(Country::Mauritania),
            "croatia"                                      => Ok(Country::Croatia),
            "georgia"                                      => Ok(Country::Georgia),
            "eritrea"                                      => Ok(Country::Eritrea),
            "uruguay"                                      => Ok(Country::Uruguay),
            "mongolia"                                     => Ok(Country::Mongolia),
            "bosnia and herzegovina"                       => Ok(Country::BosniaAndHerzegovina),
            "puerto rico"                                  => Ok(Country::PuertoRico),
            "armenia"                                      => Ok(Country::Armenia),
            "albania"                                      => Ok(Country::Albania),
            "lithuania"                                    => Ok(Country::Lithuania),
            "jamaica"                                      => Ok(Country::Jamaica),
            "qatar"                                        => Ok(Country::Qatar),
            "moldova"                                      => Ok(Country::Moldova),
            "namibia"                                      => Ok(Country::Namibia),
            "botswana"                                     => Ok(Country::Botswana),
            "gambia"                                       => Ok(Country::Gambia),
            "gabon"                                        => Ok(Country::Gabon),
            "slovenia"                                     => Ok(Country::Slovenia),
            "north macedonia"                              => Ok(Country::NorthMacedonia),
            "lesotho"                                      => Ok(Country::Lesotho),
            "latvia"                                       => Ok(Country::Latvia),
            "kosovo"                                       => Ok(Country::Kosovo),
            "guinea bissau"                                => Ok(Country::GuineaBissau),
            "bahrain"                                      => Ok(Country::Bahrain),
            "equatorial guinea"                            => Ok(Country::EquatorialGuinea),
            "trinidad and tobago"                          => Ok(Country::TrinidadAndTobago),
            "estonia"                                      => Ok(Country::Estonia),
            "east timor"                                   => Ok(Country::EastTimor),
            "mauritius"                                    => Ok(Country::Mauritius),
            "eswatini"                                     => Ok(Country::Eswatini),
            "djibouti"                                     => Ok(Country::Djibouti),
            "fiji"                                         => Ok(Country::Fiji),
            "cyprus"                                       => Ok(Country::Cyprus),
            "comoros"                                      => Ok(Country::Comoros),
            "bhutan"                                       => Ok(Country::Bhutan),
            "guyana"                                       => Ok(Country::Guyana),
            "solomon islands"                              => Ok(Country::SolomonIslands),
            "macau"                                        => Ok(Country::Macau),
            "luxembourg"                                   => Ok(Country::Luxembourg),
            "montenegro"                                   => Ok(Country::Montenegro),
            "western sahara"                               => Ok(Country::WesternSahara),
            "suriname"                                     => Ok(Country::Suriname),
            "cape verde"                                   => Ok(Country::CapeVerde),
            "malta"                                        => Ok(Country::Malta),
            "transnistria"                                 => Ok(Country::Transnistria),
            "brunei"                                       => Ok(Country::Brunei),
            "belize"                                       => Ok(Country::Belize),
            "bahamas"                                      => Ok(Country::Bahamas),
            "maldives"                                     => Ok(Country::Maldives),
            "northern cyprus"                              => Ok(Country::NorthernCyprus),
            "iceland"                                      => Ok(Country::Iceland),
            "vanuatu"                                      => Ok(Country::Vanuatu),
            "barbados"                                     => Ok(Country::Barbados),
            "french polynesia"                             => Ok(Country::FrenchPolynesia),
            "new caledonia"                                => Ok(Country::NewCaledonia),
            "abkhazia"                                     => Ok(Country::Abkhazia),
            "são tomé and príncipe"                        => Ok(Country::SaoTomeAndPrincipe),
            "samoa"                                        => Ok(Country::Samoa),
            "saint lucia"                                  => Ok(Country::SaintLucia),
            "guam"                                         => Ok(Country::Guam),
            "curaçao"                                      => Ok(Country::Curacao),
            "republic Of artsakh"                          => Ok(Country::RepublicOfArtsakh),
            "kiribati"                                     => Ok(Country::Kiribati),
            "grenada"                                      => Ok(Country::Grenada),
            "aruba"                                        => Ok(Country::Aruba),
            "saint vincent and the grenadines"             => Ok(Country::SaintVincentAndTheGrenadines),
            "jersey"                                       => Ok(Country::Jersey),
            "fs micronesia"                                => Ok(Country::FSMicronesia),
            "us virgin islands"                            => Ok(Country::USVirginIslands),
            "tonga"                                        => Ok(Country::Tonga),
            "antigua and barbuda"                          => Ok(Country::AntiguaAndBarbuda),
            "seychelles"                                   => Ok(Country::Seychelles),
            "isle of man"                                  => Ok(Country::IsleOfMan),
            "andorra"                                      => Ok(Country::Andorra),
            "dominica"                                     => Ok(Country::Dominica),
            "cayman islands"                               => Ok(Country::CaymanIslands),
            "bermuda"                                      => Ok(Country::Bermuda),
            "guernsey"                                     => Ok(Country::Guernsey),
            "american samoa"                               => Ok(Country::AmericanSamoa),
            "northern mariana islands"                     => Ok(Country::NorthernMarianaIslands),
            "greenland"                                    => Ok(Country::Greenland),
            "marshall islands"                             => Ok(Country::MarshallIslands),
            "saint kitts and nevis"                        => Ok(Country::SaintKittsandNevis),
            "south ossetia"                                => Ok(Country::SouthOssetia),
            "faroe islands"                                => Ok(Country::FaroeIslands),
            "turks and caicos islands"                     => Ok(Country::TurksandCaicosIslands),
            "sint maarten"                                 => Ok(Country::SintMaarten),
            "liechtenstein"                                => Ok(Country::Liechtenstein),
            "monaco"                                       => Ok(Country::Monaco),
            "saint martin"                                 => Ok(Country::SaintMartin),
            "gibraltar"                                    => Ok(Country::Gibraltar),
            "san marino"                                   => Ok(Country::SanMarino),
            "åland islands"                                => Ok(Country::AlandIslands),
            "british virgin islands"                       => Ok(Country::BritishVirginIslands),
            "palau"                                        => Ok(Country::Palau),
            "cook islands"                                 => Ok(Country::CookIslands),
            "anguilla"                                     => Ok(Country::Anguilla),
            "nauru"                                        => Ok(Country::Nauru),
            "wallis and futuna"                            => Ok(Country::WallisandFutuna),
            "tuvalu"                                       => Ok(Country::Tuvalu),
            "saint barthélemy"                             => Ok(Country::SaintBarthelemy),
            "saint pierre and miquelon"                    => Ok(Country::SaintPierreAndMiquelon),
            "saint helena and tristan da cunha"            => Ok(Country::SaintHelenaAndTristanDaCunha),
            "montserrat"                                   => Ok(Country::Montserrat),
            "falkland Islands"                             => Ok(Country::FalklandIslands),
            "christmas island"                             => Ok(Country::ChristmasIsland),
            "norfolk island"                               => Ok(Country::NorfolkIsland),
            "niue"                                         => Ok(Country::Niue),
            "tokelau"                                      => Ok(Country::Tokelau),
            "vatican city"                                 => Ok(Country::VaticanCity),
            "cocos keeling islands"                        => Ok(Country::CocosKeelingIslands),
            "pitcairn islands"                             => Ok(Country::PitcairnIslands),
            err => {
                Err(Error(format!( "Failed to parse country from [{}].", err)))
            },
        }
    }
}

impl fmt::Display for Country {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let s = match self {
            Country::China                          => "China",
            Country::India                          => "India",
            Country::UnitedStates                   => "United States",
            Country::Indonesia                      => "Indonesia",
            Country::Pakistan                       => "Pakistan",
            Country::Brazil                         => "Brazil",
            Country::Nigeria                        => "Nigeria",
            Country::Bangladesh                     => "Bangladesh",
            Country::Russia                         => "Russia",
            Country::Mexico                         => "Mexico",
            Country::Japan                          => "Japan",
            Country::Ethiopia                       => "Ethiopia",
            Country::Philippines                    => "Philippines",
            Country::Egypt                          => "Egypt",
            Country::Vietnam                        => "Vietnam",
            Country::DRCongo                        => "DR Congo",
            Country::Iran                           => "Iran",
            Country::Turkey                         => "Turkey",
            Country::Germany                        => "Germany",
            Country::France                         => "France",
            Country::UnitedKingdom                  => "United Kingdom",
            Country::Thailand                       => "Thailand",
            Country::SouthAfrica                    => "South Africa",
            Country::Tanzania                       => "Tanzania",
            Country::Italy                          => "Italy",
            Country::Myanmar                        => "Myanmar",
            Country::SouthKorea                     => "South Korea",
            Country::Colombia                       => "Colombia",
            Country::Kenya                          => "Kenya",
            Country::Spain                          => "Spain",
            Country::Argentina                      => "Argentina",
            Country::Algeria                        => "Algeria",
            Country::Sudan                          => "Sudan",
            Country::Uganda                         => "Uganda",
            Country::Ukraine                        => "Ukraine",
            Country::Iraq                           => "Iraq",
            Country::Canada                         => "Canada",
            Country::Poland                         => "Poland",
            Country::Morocco                        => "Morocco",
            Country::Uzbekistan                     => "Uzbekistan",
            Country::SaudiArabia                    => "Saudi Arabia",
            Country::Peru                           => "Peru",
            Country::Afghanistan                    => "Afghanistan",
            Country::Malaysia                       => "Malaysia",
            Country::Angola                         => "Angola",
            Country::Ghana                          => "Ghana",
            Country::Mozambique                     => "Mozambique",
            Country::Yemen                          => "Yemen",
            Country::Nepal                          => "Nepal",
            Country::Venezuela                      => "Venezuela",
            Country::IvoryCoast                     => "Ivory Coast",
            Country::Madagascar                     => "Madagascar",
            Country::Australia                      => "Australia",
            Country::NorthKorea                     => "North Korea",
            Country::Cameroon                       => "Cameroon",
            Country::Niger                          => "Niger",
            Country::Taiwan                         => "Taiwan",
            Country::SriLanka                       => "SriLanka",
            Country::BurkinaFaso                    => "Burkina Faso",
            Country::Mali                           => "Mali",
            Country::Chile                          => "Chile",
            Country::Romania                        => "Romania",
            Country::Kazakhstan                     => "Kazakhstan",
            Country::Malawi                         => "Malawi",
            Country::Zambia                         => "Zambia",
            Country::Syria                          => "Syria",
            Country::Ecuador                        => "Ecuador",
            Country::Netherlands                    => "Netherlands",
            Country::Senegal                        => "Senegal",
            Country::Guatemala                      => "Guatemala",
            Country::Chad                           => "Chad",
            Country::Somalia                        => "Somalia",
            Country::Zimbabwe                       => "Zimbabwe",
            Country::Cambodia                       => "Cambodia",
            Country::SouthSudan                     => "South Sudan",
            Country::Rwanda                         => "Rwanda",
            Country::Guinea                         => "Guinea",
            Country::Burundi                        => "Burundi",
            Country::Benin                          => "Benin",
            Country::Bolivia                        => "Bolivia",
            Country::Haiti                          => "Haiti",
            Country::Tunisia                        => "Tunisia",
            Country::Belgium                        => "Belgium",
            Country::Cuba                           => "Cuba",
            Country::Jordan                         => "Jordan",
            Country::Greece                         => "Greece",
            Country::CzechRepublic                  => "Czech Republic",
            Country::DominicanRepublic              => "Dominican Republic",
            Country::Sweden                         => "Sweden",
            Country::Portugal                       => "Portugal",
            Country::Azerbaijan                     => "Azerbaijan",
            Country::Hungary                        => "Hungary",
            Country::UnitedArabEmirates             => "United Arab Emirates",
            Country::Honduras                       => "Honduras",
            Country::Belarus                        => "Belarus",
            Country::Israel                         => "Israel",
            Country::Tajikistan                     => "Tajikistan",
            Country::PapuaNewGuinea                 => "Papua New Guinea",
            Country::Austria                        => "Austria",
            Country::Switzerland                    => "Switzerland",
            Country::SierraLeone                    => "SierraLeone",
            Country::Togo                           => "Togo",
            Country::HongKong                       => "HongKong",
            Country::Paraguay                       => "Paraguay",
            Country::Laos                           => "Laos",
            Country::Libya                          => "Libya",
            Country::Bulgaria                       => "Bulgaria",
            Country::Serbia                         => "Serbia",
            Country::ElSalvador                     => "El Salvador",
            Country::Lebanon                        => "Lebanon",
            Country::Kyrgyzstan                     => "Kyrgyzstan",
            Country::Nicaragua                      => "Nicaragua",
            Country::Turkmenistan                   => "Turkmenistan",
            Country::Denmark                        => "Denmark",
            Country::Singapore                      => "Singapore",
            Country::Congo                          => "Congo",
            Country::CentralAfricanRepublic         => "Central African Republic",
            Country::Finland                        => "Finland",
            Country::Slovakia                       => "Slovakia",
            Country::Norway                         => "Norway",
            Country::Palestine                      => "Palestine",
            Country::CostaRica                      => "Costa Rica",
            Country::NewZealand                     => "New Zealand",
            Country::Ireland                        => "Ireland",
            Country::Liberia                        => "Liberia",
            Country::Oman                           => "Oman",
            Country::Kuwait                         => "Kuwait",
            Country::Panama                         => "Panama",
            Country::Mauritania                     => "Mauritania",
            Country::Croatia                        => "Croatia",
            Country::Georgia                        => "Georgia",
            Country::Eritrea                        => "Eritrea",
            Country::Uruguay                        => "Uruguay",
            Country::Mongolia                       => "Mongolia",
            Country::BosniaAndHerzegovina           => "Bosnia and Herzegovina",
            Country::PuertoRico                     => "Puerto Rico",
            Country::Armenia                        => "Armenia",
            Country::Albania                        => "Albania",
            Country::Lithuania                      => "Lithuania",
            Country::Jamaica                        => "Jamaica",
            Country::Qatar                          => "Qatar",
            Country::Moldova                        => "Moldova",
            Country::Namibia                        => "Namibia",
            Country::Botswana                       => "Botswana",
            Country::Gambia                         => "Gambia",
            Country::Gabon                          => "Gabon",
            Country::Slovenia                       => "Slovenia",
            Country::NorthMacedonia                 => "North Macedonia",
            Country::Lesotho                        => "Lesotho",
            Country::Latvia                         => "Latvia",
            Country::Kosovo                         => "Kosovo",
            Country::GuineaBissau                   => "Guinea Bissau",
            Country::Bahrain                        => "Bahrain",
            Country::EquatorialGuinea               => "Equatorial Guinea",
            Country::TrinidadAndTobago              => "Trinidad and Tobago",
            Country::Estonia                        => "Estonia",
            Country::EastTimor                      => "East Timor",
            Country::Mauritius                      => "Mauritius",
            Country::Eswatini                       => "Eswatini",
            Country::Djibouti                       => "Djibouti",
            Country::Fiji                           => "Fiji",
            Country::Cyprus                         => "Cyprus",
            Country::Comoros                        => "Comoros",
            Country::Bhutan                         => "Bhutan",
            Country::Guyana                         => "Guyana",
            Country::SolomonIslands                 => "Solomon Islands",
            Country::Macau                          => "Macau",
            Country::Luxembourg                     => "Luxembourg",
            Country::Montenegro                     => "Montenegro",
            Country::WesternSahara                  => "Western Sahara",
            Country::Suriname                       => "Suriname",
            Country::CapeVerde                      => "Cape Verde",
            Country::Malta                          => "Malta",
            Country::Transnistria                   => "Transnistria",
            Country::Brunei                         => "Brunei",
            Country::Belize                         => "Belize",
            Country::Bahamas                        => "Bahamas",
            Country::Maldives                       => "Maldives",
            Country::NorthernCyprus                 => "Northern Cyprus",
            Country::Iceland                        => "Iceland",
            Country::Vanuatu                        => "Vanuatu",
            Country::Barbados                       => "Barbados",
            Country::FrenchPolynesia                => "French Polynesia",
            Country::NewCaledonia                   => "New Caledonia",
            Country::Abkhazia                       => "Abkhazia",
            Country::SaoTomeAndPrincipe             => "São Tomé and Príncipe",
            Country::Samoa                          => "Samoa",
            Country::SaintLucia                     => "Saint Lucia",
            Country::Guam                           => "Guam",
            Country::Curacao                        => "Curaçao",
            Country::RepublicOfArtsakh              => "Republic Of Artsakh",
            Country::Kiribati                       => "Kiribati",
            Country::Grenada                        => "Grenada",
            Country::Aruba                          => "Aruba",
            Country::SaintVincentAndTheGrenadines   => "Saint Vincent and the Grenadines",
            Country::Jersey                         => "Jersey",
            Country::FSMicronesia                   => "FS Micronesia",
            Country::USVirginIslands                => "US Virgin Islands",
            Country::Tonga                          => "Tonga",
            Country::AntiguaAndBarbuda              => "Antigua and Barbuda",
            Country::Seychelles                     => "Seychelles",
            Country::IsleOfMan                      => "Isle of Man",
            Country::Andorra                        => "Andorra",
            Country::Dominica                       => "Dominica",
            Country::CaymanIslands                  => "Cayman Islands",
            Country::Bermuda                        => "Bermuda",
            Country::Guernsey                       => "Guernsey",
            Country::AmericanSamoa                  => "American Samoa",
            Country::NorthernMarianaIslands         => "Northern Mariana Islands",
            Country::Greenland                      => "Greenland",
            Country::MarshallIslands                => "Marshall Islands",
            Country::SaintKittsandNevis             => "Saint Kitts and Nevis",
            Country::SouthOssetia                   => "South Ossetia",
            Country::FaroeIslands                   => "Faroe Islands",
            Country::TurksandCaicosIslands          => "Turks and Caicos Islands",
            Country::SintMaarten                    => "Sint Maarten",
            Country::Liechtenstein                  => "Liechtenstein",
            Country::Monaco                         => "Monaco",
            Country::SaintMartin                    => "Saint Martin",
            Country::Gibraltar                      => "Gibraltar",
            Country::SanMarino                      => "San Marino",
            Country::AlandIslands                   => "Åland Islands",
            Country::BritishVirginIslands           => "British Virgin Islands",
            Country::Palau                          => "Palau",
            Country::CookIslands                    => "Cook Islands",
            Country::Anguilla                       => "Anguilla",
            Country::Nauru                          => "Nauru",
            Country::WallisandFutuna                => "Wallis and Futuna",
            Country::Tuvalu                         => "Tuvalu",
            Country::SaintBarthelemy                => "Saint Barthélemy",
            Country::SaintPierreAndMiquelon         => "Saint Pierre and Miquelon",
            Country::SaintHelenaAndTristanDaCunha   => "Saint Helena and Tristan Da Cunha",
            Country::Montserrat                     => "Montserrat",
            Country::FalklandIslands                => "Falkland Islands",
            Country::ChristmasIsland                => "Christmas Island",
            Country::NorfolkIsland                  => "Norfolk Island",
            Country::Niue                           => "Niue",
            Country::Tokelau                        => "Tokelau",
            Country::VaticanCity                    => "Vatican City",
            Country::CocosKeelingIslands            => "Cocos Keeling Islands",
            Country::PitcairnIslands                => "Pitcairn Islands",
        };
        write!(f, "{}", s)
    }
}