use crate::error::Error as GoogleMapsError;
use phf::phf_map;
use serde::{Deserialize, Deserializer, Serialize, Serializer};
#[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
#[repr(u16)]
#[non_exhaustive]
pub enum Region {
AlandIslands = 0,
Afghanistan = 1,
Albania = 2,
Algeria = 3,
AmericanSamoa = 4,
Andorra = 5,
Angola = 6,
Anguilla = 7,
Antarctica = 8,
AntiguaAndBarbuda = 9,
Argentina = 10,
Armenia = 11,
Aruba = 12,
AscensionIsland = 13,
Australia = 14,
Austria = 15,
Azerbaijan = 16,
Bahamas = 17,
Bahrain = 18,
Bangladesh = 19,
Barbados = 20,
Belarus = 21,
Belgium = 22,
Belize = 23,
Benin = 24,
Bermuda = 25,
Bhutan = 26,
Bolivia = 27,
BosniaAndHerzegovina = 28,
Botswana = 29,
BouvetIsland = 30,
Brazil = 31,
BritishIndianOceanTerritory = 32,
BritishVirginIslands = 33,
Brunei = 34,
Bulgaria = 35,
BurkinaFaso = 36,
Burundi = 37,
Cambodia = 38,
Cameroon = 39,
Canada = 40,
CanaryIslands = 41,
CapeVerde = 42,
CaribbeanNetherlands = 43,
CaymanIslands = 44,
CentralAfricanRepublic = 45,
CeutaAndMelilla = 46,
Chad = 47,
Chile = 48,
China = 49,
ChristmasIsland = 50,
ClippertonIsland = 51,
CocosKeelingIslands = 52,
Colombia = 53,
Comoros = 54,
CongoBrazzaville = 55,
CongoKinshasa = 56,
CookIslands = 57,
CostaRica = 58,
CotedIvoire = 59,
Croatia = 60,
Cuba = 61,
Curacao = 62,
Cyprus = 63,
Czechia = 64,
Denmark = 65,
DiegoGarcia = 66,
Djibouti = 67,
Dominica = 68,
DominicanRepublic = 69,
Ecuador = 70,
Egypt = 71,
ElSalvador = 72,
EquatorialGuinea = 73,
Eritrea = 74,
Estonia = 75,
Eswatini = 76,
Ethiopia = 77,
FalklandIslands = 78,
FaroeIslands = 79,
Fiji = 80,
Finland = 81,
France = 82,
FrenchGuiana = 83,
FrenchPolynesia = 84,
FrenchSouthernTerritories = 85,
Gabon = 86,
Gambia = 87,
Georgia = 88,
Germany = 89,
Ghana = 90,
Gibraltar = 91,
Greece = 92,
Greenland = 93,
Grenada = 94,
Guadeloupe = 95,
Guam = 96,
Guatemala = 97,
Guernsey = 98,
Guinea = 99,
GuineaBissau = 100,
Guyana = 101,
Haiti = 102,
HeardAndMcDonaldIslands = 103,
Honduras = 104,
HongKong = 105,
Hungary = 106,
Iceland = 107,
India = 108,
Indonesia = 109,
Iran = 110,
Iraq = 111,
Ireland = 112,
IsleOfMan = 113,
Israel = 114,
Italy = 115,
Jamaica = 116,
Japan = 117,
Jersey = 118,
Jordan = 119,
Kazakhstan = 120,
Kenya = 121,
Kiribati = 122,
Kosovo = 123,
Kuwait = 124,
Kyrgyzstan = 125,
Laos = 126,
Latvia = 127,
Lebanon = 128,
Lesotho = 129,
Liberia = 130,
Libya = 131,
Liechtenstein = 132,
Lithuania = 133,
Luxembourg = 134,
Macao = 135,
Madagascar = 136,
Malawi = 137,
Malaysia = 138,
Maldives = 139,
Mali = 140,
Malta = 141,
MarshallIslands = 142,
Martinique = 143,
Mauritania = 144,
Mauritius = 145,
Mayotte = 146,
Mexico = 147,
Micronesia = 148,
Moldova = 149,
Monaco = 150,
Mongolia = 151,
Montenegro = 152,
Montserrat = 153,
Morocco = 154,
Mozambique = 155,
Myanmar = 156,
Namibia = 157,
Nauru = 158,
Nepal = 159,
Netherlands = 160,
NewCaledonia = 161,
NewZealand = 162,
Nicaragua = 163,
Niger = 164,
Nigeria = 165,
Niue = 166,
NorfolkIsland = 167,
NorthKorea = 168,
NorthMacedonia = 169,
NorthernMarianaIslands = 170,
Norway = 171,
Oman = 172,
Pakistan = 173,
Palau = 174,
Palestine = 175,
Panama = 176,
PapuaNewGuinea = 177,
Paraguay = 178,
Peru = 179,
Philippines = 180,
PitcairnIslands = 181,
Poland = 182,
Portugal = 183,
PuertoRico = 184,
Qatar = 185,
Romania = 186,
Russia = 187,
Rwanda = 188,
Reunion = 189,
Samoa = 190,
SanMarino = 191,
SaudiArabia = 192,
Senegal = 193,
Serbia = 194,
Seychelles = 195,
SierraLeone = 196,
Singapore = 197,
SintMaarten = 198,
Slovakia = 199,
Slovenia = 200,
SolomonIslands = 201,
Somalia = 202,
SouthAfrica = 203,
SouthGeorgiaAndTheSouthSandwichIslands = 204,
SouthKorea = 205,
SouthSudan = 206,
Spain = 207,
SriLanka = 208,
StBarthelemy = 209,
StHelena = 210,
StKittsAndNevis = 211,
StLucia = 212,
StMartin = 213,
StPierreAndMiquelon = 214,
StVincentAndGrenadines = 215,
Sudan = 216,
Suriname = 217,
SvalbardAndJanMayen = 218,
Sweden = 219,
Switzerland = 220,
Syria = 221,
SaoTomeAndPrincipe = 222,
Taiwan = 223,
Tajikistan = 224,
Tanzania = 225,
Thailand = 226,
TimorLeste = 227,
Togo = 228,
Tokelau = 229,
Tonga = 230,
TrinidadAndTobago = 231,
TristanDaCunha = 232,
Tunisia = 233,
Turkey = 234,
Turkmenistan = 235,
TurksAndCaicosIslands = 236,
Tuvalu = 237,
USOutlyingIslands = 238,
USVirginIslands = 239,
Uganda = 240,
Ukraine = 241,
UnitedArabEmirates = 242,
UnitedKingdom = 243,
#[default]
UnitedStates = 244,
Uruguay = 245,
Uzbekistan = 246,
Vanuatu = 247,
VaticanCity = 248,
Venezuela = 249,
Vietnam = 250,
WallisAndFutuna = 251,
WesternSahara = 252,
Yemen = 253,
Zambia = 254,
Zimbabwe = 255,
Other = 256,
} impl<'de> Deserialize<'de> for Region {
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let string = String::deserialize(deserializer)?;
match Self::try_from(string.as_str()) {
Ok(variant) => Ok(variant),
Err(error) => Err(serde::de::Error::custom(error.to_string())),
} } } impl Serialize for Region {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_str(std::convert::Into::<&str>::into(self))
} } impl std::convert::From<&Self> for Region {
fn from(region: &Self) -> Self {
*region
} } impl std::convert::From<&Region> for &str {
fn from(region: &Region) -> Self {
match region {
Region::AlandIslands => "ax",
Region::Afghanistan => "af",
Region::Albania => "al",
Region::Algeria => "dz",
Region::AmericanSamoa => "as",
Region::Andorra => "ad",
Region::Angola => "ao",
Region::Anguilla => "ai",
Region::Antarctica => "aq",
Region::AntiguaAndBarbuda => "ag",
Region::Argentina => "ar",
Region::Armenia => "am",
Region::Aruba => "aw",
Region::AscensionIsland => "ac",
Region::Australia => "au",
Region::Austria => "at",
Region::Azerbaijan => "az",
Region::Bahamas => "bs",
Region::Bahrain => "bh",
Region::Bangladesh => "bd",
Region::Barbados => "bb",
Region::Belarus => "by",
Region::Belgium => "be",
Region::Belize => "bz",
Region::Benin => "bj",
Region::Bermuda => "bm",
Region::Bhutan => "bt",
Region::Bolivia => "bo",
Region::BosniaAndHerzegovina => "ba",
Region::Botswana => "bw",
Region::BouvetIsland => "bv",
Region::Brazil => "br",
Region::BritishIndianOceanTerritory => "io",
Region::BritishVirginIslands => "vg",
Region::Brunei => "bn",
Region::Bulgaria => "bg",
Region::BurkinaFaso => "bf",
Region::Burundi => "bi",
Region::Cambodia => "kh",
Region::Cameroon => "cm",
Region::Canada => "ca",
Region::CanaryIslands => "ic",
Region::CapeVerde => "cv",
Region::CaribbeanNetherlands => "bq",
Region::CaymanIslands => "ky",
Region::CentralAfricanRepublic => "cf",
Region::CeutaAndMelilla => "ea",
Region::Chad => "td",
Region::Chile => "cl",
Region::China => "cn",
Region::ChristmasIsland => "cx",
Region::ClippertonIsland => "cp",
Region::CocosKeelingIslands => "cc",
Region::Colombia => "co",
Region::Comoros => "km",
Region::CongoBrazzaville => "cg",
Region::CongoKinshasa => "cd",
Region::CookIslands => "ck",
Region::CostaRica => "cr",
Region::CotedIvoire => "ci",
Region::Croatia => "hr",
Region::Cuba => "cu",
Region::Curacao => "cw",
Region::Cyprus => "cy",
Region::Czechia => "cz",
Region::Denmark => "dk",
Region::DiegoGarcia => "dg",
Region::Djibouti => "dj",
Region::Dominica => "dm",
Region::DominicanRepublic => "do",
Region::Ecuador => "ec",
Region::Egypt => "eg",
Region::ElSalvador => "sv",
Region::EquatorialGuinea => "gq",
Region::Eritrea => "er",
Region::Estonia => "ee",
Region::Eswatini => "sz",
Region::Ethiopia => "et",
Region::FalklandIslands => "fk",
Region::FaroeIslands => "fo",
Region::Fiji => "fj",
Region::Finland => "fi",
Region::France => "fr",
Region::FrenchGuiana => "gf",
Region::FrenchPolynesia => "pf",
Region::FrenchSouthernTerritories => "tf",
Region::Gabon => "ga",
Region::Gambia => "gm",
Region::Georgia => "ge",
Region::Germany => "de",
Region::Ghana => "gh",
Region::Gibraltar => "gi",
Region::Greece => "gr",
Region::Greenland => "gl",
Region::Grenada => "gd",
Region::Guadeloupe => "gp",
Region::Guam => "gu",
Region::Guatemala => "gt",
Region::Guernsey => "gg",
Region::Guinea => "gn",
Region::GuineaBissau => "gw",
Region::Guyana => "gy",
Region::Haiti => "ht",
Region::HeardAndMcDonaldIslands => "hm",
Region::Honduras => "hn",
Region::HongKong => "hk",
Region::Hungary => "hu",
Region::Iceland => "is",
Region::India => "in",
Region::Indonesia => "id",
Region::Iran => "ir",
Region::Iraq => "iq",
Region::Ireland => "ie",
Region::IsleOfMan => "im",
Region::Israel => "il",
Region::Italy => "it",
Region::Jamaica => "jm",
Region::Japan => "jp",
Region::Jersey => "je",
Region::Jordan => "jo",
Region::Kazakhstan => "kz",
Region::Kenya => "ke",
Region::Kiribati => "ki",
Region::Kosovo => "xk",
Region::Kuwait => "kw",
Region::Kyrgyzstan => "kg",
Region::Laos => "la",
Region::Latvia => "lv",
Region::Lebanon => "lb",
Region::Lesotho => "ls",
Region::Liberia => "lr",
Region::Libya => "ly",
Region::Liechtenstein => "li",
Region::Lithuania => "lt",
Region::Luxembourg => "lu",
Region::Macao => "mo",
Region::Madagascar => "mg",
Region::Malawi => "mw",
Region::Malaysia => "my",
Region::Maldives => "mv",
Region::Mali => "ml",
Region::Malta => "mt",
Region::MarshallIslands => "mh",
Region::Martinique => "mq",
Region::Mauritania => "mr",
Region::Mauritius => "mu",
Region::Mayotte => "yt",
Region::Mexico => "mx",
Region::Micronesia => "fm",
Region::Moldova => "md",
Region::Monaco => "mc",
Region::Mongolia => "mn",
Region::Montenegro => "me",
Region::Montserrat => "ms",
Region::Morocco => "ma",
Region::Mozambique => "mz",
Region::Myanmar => "mm",
Region::Namibia => "na",
Region::Nauru => "nr",
Region::Nepal => "np",
Region::Netherlands => "nl",
Region::NewCaledonia => "nc",
Region::NewZealand => "nz",
Region::Nicaragua => "ni",
Region::Niger => "ne",
Region::Nigeria => "ng",
Region::Niue => "nu",
Region::NorfolkIsland => "nf",
Region::NorthKorea => "kp",
Region::NorthMacedonia => "mk",
Region::NorthernMarianaIslands => "mp",
Region::Norway => "no",
Region::Oman => "om",
Region::Pakistan => "pk",
Region::Palau => "pw",
Region::Palestine => "ps",
Region::Panama => "pa",
Region::PapuaNewGuinea => "pg",
Region::Paraguay => "py",
Region::Peru => "pe",
Region::Philippines => "ph",
Region::PitcairnIslands => "pn",
Region::Poland => "pl",
Region::Portugal => "pt",
Region::PuertoRico => "pr",
Region::Qatar => "qa",
Region::Romania => "ro",
Region::Russia => "ru",
Region::Rwanda => "rw",
Region::Reunion => "re",
Region::Samoa => "ws",
Region::SanMarino => "sm",
Region::SaudiArabia => "sa",
Region::Senegal => "sn",
Region::Serbia => "rs",
Region::Seychelles => "sc",
Region::SierraLeone => "sl",
Region::Singapore => "sg",
Region::SintMaarten => "sx",
Region::Slovakia => "sk",
Region::Slovenia => "si",
Region::SolomonIslands => "sb",
Region::Somalia => "so",
Region::SouthAfrica => "za",
Region::SouthGeorgiaAndTheSouthSandwichIslands => "gs",
Region::SouthKorea => "kr",
Region::SouthSudan => "ss",
Region::Spain => "es",
Region::SriLanka => "lk",
Region::StBarthelemy => "bl",
Region::StHelena => "sh",
Region::StKittsAndNevis => "kn",
Region::StLucia => "lc",
Region::StMartin => "mf",
Region::StPierreAndMiquelon => "pm",
Region::StVincentAndGrenadines => "vc",
Region::Sudan => "sd",
Region::Suriname => "sr",
Region::SvalbardAndJanMayen => "sj",
Region::Sweden => "se",
Region::Switzerland => "ch",
Region::Syria => "sy",
Region::SaoTomeAndPrincipe => "st",
Region::Taiwan => "tw",
Region::Tajikistan => "tj",
Region::Tanzania => "tz",
Region::Thailand => "th",
Region::TimorLeste => "tl",
Region::Togo => "tg",
Region::Tokelau => "tk",
Region::Tonga => "to",
Region::TrinidadAndTobago => "tt",
Region::TristanDaCunha => "ta",
Region::Tunisia => "tn",
Region::Turkey => "tr",
Region::Turkmenistan => "tm",
Region::TurksAndCaicosIslands => "tc",
Region::Tuvalu => "tv",
Region::USOutlyingIslands => "um",
Region::USVirginIslands => "vi",
Region::Uganda => "ug",
Region::Ukraine => "ua",
Region::UnitedArabEmirates => "ae",
Region::UnitedKingdom => "co.uk",
Region::UnitedStates => "us",
Region::Uruguay => "uy",
Region::Uzbekistan => "uz",
Region::Vanuatu => "vu",
Region::VaticanCity => "va",
Region::Venezuela => "ve",
Region::Vietnam => "vn",
Region::WallisAndFutuna => "wf",
Region::WesternSahara => "eh",
Region::Yemen => "ye",
Region::Zambia => "zm",
Region::Zimbabwe => "zw",
Region::Other => "xx",
} } } impl std::fmt::Display for Region {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", std::convert::Into::<&str>::into(self))
} } impl std::convert::From<&Region> for String {
fn from(region: &Region) -> Self {
std::convert::Into::<&str>::into(region).to_string()
} } static REGIONS_BY_CODE: phf::Map<&'static str, Region> = phf_map! {
"af" => Region::Afghanistan,
"al" => Region::Albania,
"dz" => Region::Algeria,
"as" => Region::AmericanSamoa,
"ad" => Region::Andorra,
"ao" => Region::Angola,
"ai" => Region::Anguilla,
"aq" => Region::Antarctica,
"ag" => Region::AntiguaAndBarbuda,
"ar" => Region::Argentina,
"am" => Region::Armenia,
"aw" => Region::Aruba,
"ac" => Region::AscensionIsland,
"au" => Region::Australia,
"at" => Region::Austria,
"az" => Region::Azerbaijan,
"bs" => Region::Bahamas,
"bh" => Region::Bahrain,
"bd" => Region::Bangladesh,
"bb" => Region::Barbados,
"by" => Region::Belarus,
"be" => Region::Belgium,
"bz" => Region::Belize,
"bj" => Region::Benin,
"bm" => Region::Bermuda,
"bt" => Region::Bhutan,
"bo" => Region::Bolivia,
"ba" => Region::BosniaAndHerzegovina,
"bw" => Region::Botswana,
"bv" => Region::BouvetIsland,
"br" => Region::Brazil,
"io" => Region::BritishIndianOceanTerritory,
"vg" => Region::BritishVirginIslands,
"bn" => Region::Brunei,
"bg" => Region::Bulgaria,
"bf" => Region::BurkinaFaso,
"bi" => Region::Burundi,
"kh" => Region::Cambodia,
"cm" => Region::Cameroon,
"ca" => Region::Canada,
"ic" => Region::CanaryIslands,
"cv" => Region::CapeVerde,
"bq" => Region::CaribbeanNetherlands,
"ky" => Region::CaymanIslands,
"cf" => Region::CentralAfricanRepublic,
"ea" => Region::CeutaAndMelilla,
"td" => Region::Chad,
"cl" => Region::Chile,
"cn" => Region::China,
"cx" => Region::ChristmasIsland,
"cp" => Region::ClippertonIsland,
"cc" => Region::CocosKeelingIslands,
"co" => Region::Colombia,
"km" => Region::Comoros,
"cg" => Region::CongoBrazzaville,
"cd" => Region::CongoKinshasa,
"ck" => Region::CookIslands,
"cr" => Region::CostaRica,
"ci" => Region::CotedIvoire,
"hr" => Region::Croatia,
"cu" => Region::Cuba,
"cw" => Region::Curacao,
"cy" => Region::Cyprus,
"cz" => Region::Czechia,
"dk" => Region::Denmark,
"dg" => Region::DiegoGarcia,
"dj" => Region::Djibouti,
"dm" => Region::Dominica,
"do" => Region::DominicanRepublic,
"ec" => Region::Ecuador,
"eg" => Region::Egypt,
"sv" => Region::ElSalvador,
"gq" => Region::EquatorialGuinea,
"er" => Region::Eritrea,
"ee" => Region::Estonia,
"sz" => Region::Eswatini,
"et" => Region::Ethiopia,
"fk" => Region::FalklandIslands,
"fo" => Region::FaroeIslands,
"fj" => Region::Fiji,
"fi" => Region::Finland,
"fr" => Region::France,
"gf" => Region::FrenchGuiana,
"pf" => Region::FrenchPolynesia,
"tf" => Region::FrenchSouthernTerritories,
"ga" => Region::Gabon,
"gm" => Region::Gambia,
"ge" => Region::Georgia,
"de" => Region::Germany,
"gh" => Region::Ghana,
"gi" => Region::Gibraltar,
"gr" => Region::Greece,
"gl" => Region::Greenland,
"gd" => Region::Grenada,
"gp" => Region::Guadeloupe,
"gu" => Region::Guam,
"gt" => Region::Guatemala,
"gg" => Region::Guernsey,
"gn" => Region::Guinea,
"gw" => Region::GuineaBissau,
"gy" => Region::Guyana,
"ht" => Region::Haiti,
"hm" => Region::HeardAndMcDonaldIslands,
"hn" => Region::Honduras,
"hk" => Region::HongKong,
"hu" => Region::Hungary,
"is" => Region::Iceland,
"in" => Region::India,
"id" => Region::Indonesia,
"ir" => Region::Iran,
"iq" => Region::Iraq,
"ie" => Region::Ireland,
"im" => Region::IsleOfMan,
"il" => Region::Israel,
"it" => Region::Italy,
"jm" => Region::Jamaica,
"jp" => Region::Japan,
"je" => Region::Jersey,
"jo" => Region::Jordan,
"kz" => Region::Kazakhstan,
"ke" => Region::Kenya,
"ki" => Region::Kiribati,
"xk" => Region::Kosovo,
"kw" => Region::Kuwait,
"kg" => Region::Kyrgyzstan,
"la" => Region::Laos,
"lv" => Region::Latvia,
"lb" => Region::Lebanon,
"ls" => Region::Lesotho,
"lr" => Region::Liberia,
"ly" => Region::Libya,
"li" => Region::Liechtenstein,
"lt" => Region::Lithuania,
"lu" => Region::Luxembourg,
"mo" => Region::Macao,
"mg" => Region::Madagascar,
"mw" => Region::Malawi,
"my" => Region::Malaysia,
"mv" => Region::Maldives,
"ml" => Region::Mali,
"mt" => Region::Malta,
"mh" => Region::MarshallIslands,
"mq" => Region::Martinique,
"mr" => Region::Mauritania,
"mu" => Region::Mauritius,
"yt" => Region::Mayotte,
"mx" => Region::Mexico,
"fm" => Region::Micronesia,
"md" => Region::Moldova,
"mc" => Region::Monaco,
"mn" => Region::Mongolia,
"me" => Region::Montenegro,
"ms" => Region::Montserrat,
"ma" => Region::Morocco,
"mz" => Region::Mozambique,
"mm" => Region::Myanmar,
"na" => Region::Namibia,
"nr" => Region::Nauru,
"np" => Region::Nepal,
"nl" => Region::Netherlands,
"nc" => Region::NewCaledonia,
"nz" => Region::NewZealand,
"ni" => Region::Nicaragua,
"ne" => Region::Niger,
"ng" => Region::Nigeria,
"nu" => Region::Niue,
"nf" => Region::NorfolkIsland,
"kp" => Region::NorthKorea,
"mk" => Region::NorthMacedonia,
"mp" => Region::NorthernMarianaIslands,
"no" => Region::Norway,
"om" => Region::Oman,
"pk" => Region::Pakistan,
"pw" => Region::Palau,
"ps" => Region::Palestine,
"pa" => Region::Panama,
"pg" => Region::PapuaNewGuinea,
"py" => Region::Paraguay,
"pe" => Region::Peru,
"ph" => Region::Philippines,
"pn" => Region::PitcairnIslands,
"pl" => Region::Poland,
"pt" => Region::Portugal,
"pr" => Region::PuertoRico,
"qa" => Region::Qatar,
"ro" => Region::Romania,
"ru" => Region::Russia,
"rw" => Region::Rwanda,
"re" => Region::Reunion,
"ws" => Region::Samoa,
"sm" => Region::SanMarino,
"sa" => Region::SaudiArabia,
"sn" => Region::Senegal,
"rs" => Region::Serbia,
"sc" => Region::Seychelles,
"sl" => Region::SierraLeone,
"sg" => Region::Singapore,
"sx" => Region::SintMaarten,
"sk" => Region::Slovakia,
"si" => Region::Slovenia,
"sb" => Region::SolomonIslands,
"so" => Region::Somalia,
"za" => Region::SouthAfrica,
"gs" => Region::SouthGeorgiaAndTheSouthSandwichIslands,
"kr" => Region::SouthKorea,
"ss" => Region::SouthSudan,
"es" => Region::Spain,
"lk" => Region::SriLanka,
"bl" => Region::StBarthelemy,
"sh" => Region::StHelena,
"kn" => Region::StKittsAndNevis,
"lc" => Region::StLucia,
"mf" => Region::StMartin,
"pm" => Region::StPierreAndMiquelon,
"vc" => Region::StVincentAndGrenadines,
"sd" => Region::Sudan,
"sr" => Region::Suriname,
"sj" => Region::SvalbardAndJanMayen,
"se" => Region::Sweden,
"ch" => Region::Switzerland,
"sy" => Region::Syria,
"st" => Region::SaoTomeAndPrincipe,
"tw" => Region::Taiwan,
"tj" => Region::Tajikistan,
"tz" => Region::Tanzania,
"th" => Region::Thailand,
"tl" => Region::TimorLeste,
"tg" => Region::Togo,
"tk" => Region::Tokelau,
"to" => Region::Tonga,
"tt" => Region::TrinidadAndTobago,
"ta" => Region::TristanDaCunha,
"tn" => Region::Tunisia,
"tr" => Region::Turkey,
"tm" => Region::Turkmenistan,
"tc" => Region::TurksAndCaicosIslands,
"tv" => Region::Tuvalu,
"um" => Region::USOutlyingIslands,
"vi" => Region::USVirginIslands,
"ug" => Region::Uganda,
"ua" => Region::Ukraine,
"ae" => Region::UnitedArabEmirates,
"co.uk" => Region::UnitedKingdom,
"us" => Region::UnitedStates,
"uy" => Region::Uruguay,
"uz" => Region::Uzbekistan,
"vu" => Region::Vanuatu,
"va" => Region::VaticanCity,
"ve" => Region::Venezuela,
"vn" => Region::Vietnam,
"wf" => Region::WallisAndFutuna,
"eh" => Region::WesternSahara,
"ye" => Region::Yemen,
"zm" => Region::Zambia,
"zw" => Region::Zimbabwe,
"ax" => Region::AlandIslands,
"xx" => Region::Other,
};
impl std::convert::TryFrom<&str> for Region {
type Error = GoogleMapsError;
fn try_from(region_code: &str) -> Result<Self, Self::Error> {
Ok(REGIONS_BY_CODE
.get(region_code)
.copied()
.unwrap_or(Self::Other))
} } impl std::str::FromStr for Region {
type Err = GoogleMapsError;
fn from_str(region_code: &str) -> Result<Self, Self::Err> {
Ok(REGIONS_BY_CODE
.get(region_code)
.copied()
.unwrap_or(Self::Other))
} } impl Region {
#[must_use]
pub const fn display(&self) -> &str {
match self {
Self::Afghanistan => "Afghanistan",
Self::Albania => "Albania",
Self::Algeria => "Algeria",
Self::AmericanSamoa => "American Samoa",
Self::Andorra => "Andorra",
Self::Angola => "Angola",
Self::Anguilla => "Anguilla",
Self::Antarctica => "Antarctica",
Self::AntiguaAndBarbuda => "Antigua & Barbuda",
Self::Argentina => "Argentina",
Self::Armenia => "Armenia",
Self::Aruba => "Aruba",
Self::AscensionIsland => "Ascension Island",
Self::Australia => "Australia",
Self::Austria => "Austria",
Self::Azerbaijan => "Azerbaijan",
Self::Bahamas => "Bahamas",
Self::Bahrain => "Bahrain",
Self::Bangladesh => "Bangladesh",
Self::Barbados => "Barbados",
Self::Belarus => "Belarus",
Self::Belgium => "Belgium",
Self::Belize => "Belize",
Self::Benin => "Benin",
Self::Bermuda => "Bermuda",
Self::Bhutan => "Bhutan",
Self::Bolivia => "Bolivia",
Self::BosniaAndHerzegovina => "Bosnia & Herzegovina",
Self::Botswana => "Botswana",
Self::BouvetIsland => " Bouvet Island",
Self::Brazil => "Brazil",
Self::BritishIndianOceanTerritory => "British Indian Ocean Territory",
Self::BritishVirginIslands => "British Virgin Islands",
Self::Brunei => "Brunei",
Self::Bulgaria => "Bulgaria",
Self::BurkinaFaso => "Burkina Faso",
Self::Burundi => "Burundi",
Self::Cambodia => "Cambodia",
Self::Cameroon => "Cameroon",
Self::Canada => "Canada",
Self::CanaryIslands => "Canary Islands",
Self::CapeVerde => "Cape Verde",
Self::CaribbeanNetherlands => "Caribbean Netherlands",
Self::CaymanIslands => "Cayman Islands",
Self::CentralAfricanRepublic => "Central African Republic",
Self::CeutaAndMelilla => "Ceuta & Melilla",
Self::Chad => "Chad",
Self::Chile => "Chile",
Self::China => "China",
Self::ChristmasIsland => "Christmas Island",
Self::ClippertonIsland => "Clipperton Island",
Self::CocosKeelingIslands => "Cocos (Keeling) Islands",
Self::Colombia => "Colombia",
Self::Comoros => "Comoros",
Self::CongoBrazzaville => "Congo - Brazzaville",
Self::CongoKinshasa => "Congo - Kinshasa",
Self::CookIslands => "Cook Islands",
Self::CostaRica => "Costa Rica",
Self::Croatia => "Croatia",
Self::Cuba => "Cuba",
Self::Curacao => "Curaçao",
Self::Cyprus => "Cyprus",
Self::Czechia => "Czechia",
Self::CotedIvoire => "Côte d’Ivoire",
Self::Denmark => "Denmark",
Self::DiegoGarcia => "Diego Garcia",
Self::Djibouti => "Djibouti",
Self::Dominica => "Dominica",
Self::DominicanRepublic => "Dominican Republic",
Self::Ecuador => "Ecuador",
Self::Egypt => "Egypt",
Self::ElSalvador => "El Salvador",
Self::EquatorialGuinea => "Equatorial Guinea",
Self::Eritrea => "Eritrea",
Self::Estonia => "Estonia",
Self::Eswatini => "Eswatini",
Self::Ethiopia => "Ethiopia",
Self::FalklandIslands => "Falkland Islands (Islas Malvinas)",
Self::FaroeIslands => "Faroe Islands",
Self::Fiji => "Fiji",
Self::Finland => "Finland",
Self::France => "France",
Self::FrenchGuiana => "French Guiana",
Self::FrenchPolynesia => "French Polynesia",
Self::FrenchSouthernTerritories => "French Southern Territories",
Self::Gabon => "Gabon",
Self::Gambia => "Gambia",
Self::Georgia => "Georgia",
Self::Germany => "Germany",
Self::Ghana => "Ghana",
Self::Gibraltar => "Gibraltar",
Self::Greece => "Greece",
Self::Greenland => "Greenland",
Self::Grenada => "Grenada",
Self::Guadeloupe => "Guadeloupe",
Self::Guam => "Guam",
Self::Guatemala => "Guatemala",
Self::Guernsey => "Guernsey",
Self::Guinea => "Guinea",
Self::GuineaBissau => "Guinea-Bissau",
Self::Guyana => "Guyana",
Self::Haiti => "Haiti",
Self::HeardAndMcDonaldIslands => "Heard & McDonald Islands",
Self::Honduras => "Honduras",
Self::HongKong => "Hong Kong",
Self::Hungary => "Hungary",
Self::Iceland => "Iceland",
Self::India => "India",
Self::Indonesia => "Indonesia",
Self::Iran => "Iran",
Self::Iraq => "Iraq",
Self::Ireland => "Ireland",
Self::IsleOfMan => "Isle of Man",
Self::Israel => "Israel",
Self::Italy => "Italy",
Self::Jamaica => "Jamaica",
Self::Japan => "Japan",
Self::Jersey => "Jersey",
Self::Jordan => "Jordan",
Self::Kazakhstan => "Kazakhstan",
Self::Kenya => "Kenya",
Self::Kiribati => "Kiribati",
Self::Kosovo => "Kosovo",
Self::Kuwait => "Kuwait",
Self::Kyrgyzstan => "Kyrgyzstan",
Self::Laos => "Laos",
Self::Latvia => "Latvia",
Self::Lebanon => "Lebanon",
Self::Lesotho => "Lesotho",
Self::Liberia => "Liberia",
Self::Libya => "Libya",
Self::Liechtenstein => "Liechtenstein",
Self::Lithuania => "Lithuania",
Self::Luxembourg => "Luxembourg",
Self::Macao => "Macao",
Self::Madagascar => "Madagascar",
Self::Malawi => "Malawi",
Self::Malaysia => "Malaysia",
Self::Maldives => "Maldives",
Self::Mali => "Mali",
Self::Malta => "Malta",
Self::MarshallIslands => "Marshall Islands",
Self::Martinique => "Martinique",
Self::Mauritania => "Mauritania",
Self::Mauritius => "Mauritius",
Self::Mayotte => "Mayotte",
Self::Mexico => "Mexico",
Self::Micronesia => "Micronesia",
Self::Moldova => "Moldova",
Self::Monaco => "Monaco",
Self::Mongolia => "Mongolia",
Self::Montenegro => "Montenegro",
Self::Montserrat => "Montserrat",
Self::Morocco => "Morocco",
Self::Mozambique => "Mozambique",
Self::Myanmar => "Myanmar (Burma)",
Self::Namibia => "Namibia",
Self::Nauru => "Nauru",
Self::Nepal => "Nepal",
Self::Netherlands => "Netherlands",
Self::NewCaledonia => "New Caledonia",
Self::NewZealand => "New Zealand",
Self::Nicaragua => "Nicaragua",
Self::Niger => "Niger",
Self::Nigeria => "Nigeria",
Self::Niue => "Niue",
Self::NorfolkIsland => "Norfolk Island",
Self::NorthKorea => "North Korea",
Self::NorthMacedonia => "North Macedonia",
Self::NorthernMarianaIslands => "Northern Mariana Islands",
Self::Norway => "Norway",
Self::Oman => "Oman",
Self::Pakistan => "Pakistan",
Self::Palau => "Palau",
Self::Palestine => "Palestine",
Self::Panama => "Panama",
Self::PapuaNewGuinea => "Papua New Guinea",
Self::Paraguay => "Paraguay",
Self::Peru => "Peru",
Self::Philippines => "Philippines",
Self::PitcairnIslands => "Pitcairn Islands",
Self::Poland => "Poland",
Self::Portugal => "Portugal",
Self::PuertoRico => "Puerto Rico",
Self::Qatar => "Qatar",
Self::Romania => "Romania",
Self::Russia => "Russia",
Self::Rwanda => "Rwanda",
Self::Reunion => "Réunion",
Self::Samoa => "Samoa",
Self::SanMarino => "San Marino",
Self::SaudiArabia => "Saudi Arabia",
Self::Senegal => "Senegal",
Self::Serbia => "Serbia",
Self::Seychelles => "Seychelles",
Self::SierraLeone => "Sierra Leone",
Self::Singapore => "Singapore",
Self::SintMaarten => "Sint Maarten",
Self::Slovakia => "Slovakia",
Self::Slovenia => "Slovenia",
Self::SolomonIslands => "Solomon Islands",
Self::Somalia => "Somalia",
Self::SouthAfrica => "South Africa",
Self::SouthGeorgiaAndTheSouthSandwichIslands => {
"South Georgia & South Sandwich Islands"
}
Self::SouthKorea => "South Korea",
Self::SouthSudan => "South Sudan",
Self::Spain => "Spain",
Self::SriLanka => "Sri Lanka",
Self::StBarthelemy => "St. Barthélemy",
Self::StHelena => "St. Helena",
Self::StKittsAndNevis => "St. Kitts & Nevis",
Self::StLucia => "St. Lucia",
Self::StMartin => "St. Martin",
Self::StPierreAndMiquelon => "St. Pierre & Miquelon",
Self::StVincentAndGrenadines => "St. Vincent & Grenadines",
Self::Sudan => "Sudan",
Self::Suriname => "Suriname",
Self::SvalbardAndJanMayen => "Svalbard & Jan Mayen",
Self::Sweden => "Sweden",
Self::Switzerland => "Switzerland",
Self::Syria => "Syria",
Self::SaoTomeAndPrincipe => "São Tomé & Príncipe",
Self::Taiwan => "Taiwan",
Self::Tajikistan => "Tajikistan",
Self::Tanzania => "Tanzania",
Self::Thailand => "Thailand",
Self::TimorLeste => "Timor-Leste",
Self::Togo => "Togo",
Self::Tokelau => "Tokelau",
Self::Tonga => "Tonga",
Self::TrinidadAndTobago => "Trinidad & Tobago",
Self::TristanDaCunha => "Tristan da Cunha",
Self::Tunisia => "Tunisia",
Self::Turkey => "Turkey",
Self::Turkmenistan => "Turkmenistan",
Self::TurksAndCaicosIslands => "Turks & Caicos Islands",
Self::Tuvalu => "Tuvalu",
Self::USOutlyingIslands => "U.S. Outlying Islands",
Self::USVirginIslands => "U.S. Virgin Islands",
Self::Uganda => "Uganda",
Self::Ukraine => "Ukraine",
Self::UnitedArabEmirates => "United Arab Emirates",
Self::UnitedKingdom => "United Kingdom",
Self::UnitedStates => "United States",
Self::Uruguay => "Uruguay",
Self::Uzbekistan => "Uzbekistan",
Self::Vanuatu => "Vanuatu",
Self::VaticanCity => "Vatican City",
Self::Venezuela => "Venezuela",
Self::Vietnam => "Vietnam",
Self::WallisAndFutuna => "Wallis & Futuna",
Self::WesternSahara => "Western Sahara",
Self::Yemen => "Yemen",
Self::Zambia => "Zambia",
Self::Zimbabwe => "Zimbabwe",
Self::AlandIslands => "Åland Islands",
Self::Other => "Other",
} } }