// This file is automatically generated. DO NOT EDIT. //! Languages and countries use std::{fmt::Display, str::FromStr}; use serde::{Deserialize, Serialize}; /// Available languages #[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "lowercase")] #[non_exhaustive] pub enum Language { /// Afrikaans Af, /// አማርኛ Am, /// العربية Ar, /// অসমীয়া As, /// Azərbaycan Az, /// Беларуская Be, /// Български Bg, /// বাংলা Bn, /// Bosanski Bs, /// Català Ca, /// Čeština Cs, /// Dansk Da, /// Deutsch De, /// Ελληνικά El, /// English (US) En, /// English (UK) #[serde(rename = "en-GB")] EnGb, /// English (India) #[serde(rename = "en-IN")] EnIn, /// Español (España) Es, /// Español (Latinoamérica) #[serde(rename = "es-419")] Es419, /// Español (US) #[serde(rename = "es-US")] EsUs, /// Eesti Et, /// Euskara Eu, /// فارسی Fa, /// Suomi Fi, /// Filipino Fil, /// Français Fr, /// Français (Canada) #[serde(rename = "fr-CA")] FrCa, /// Galego Gl, /// ગુજરાતી Gu, /// हिन्दी Hi, /// Hrvatski Hr, /// Magyar Hu, /// Հայերեն Hy, /// Bahasa Indonesia Id, /// Íslenska Is, /// Italiano It, /// עברית Iw, /// 日本語 Ja, /// ქართული Ka, /// Қазақ Тілі Kk, /// ខ្មែរ Km, /// ಕನ್ನಡ Kn, /// 한국어 Ko, /// Кыргызча Ky, /// ລາວ Lo, /// Lietuvių Lt, /// Latviešu valoda Lv, /// Македонски Mk, /// മലയാളം Ml, /// Монгол Mn, /// मराठी Mr, /// Bahasa Malaysia Ms, /// ဗမာ My, /// नेपाली Ne, /// Nederlands Nl, /// Norsk No, /// ଓଡ଼ିଆ Or, /// ਪੰਜਾਬੀ Pa, /// Polski Pl, /// Português (Brasil) Pt, /// Português #[serde(rename = "pt-PT")] PtPt, /// Română Ro, /// Русский Ru, /// සිංහල Si, /// Slovenčina Sk, /// Slovenščina Sl, /// Shqip Sq, /// Српски Sr, /// Srpski #[serde(rename = "sr-Latn")] SrLatn, /// Svenska Sv, /// Kiswahili Sw, /// தமிழ் Ta, /// తెలుగు Te, /// ภาษาไทย Th, /// Türkçe Tr, /// Українська Uk, /// اردو Ur, /// O‘zbek Uz, /// Tiếng Việt Vi, /// 中文 (简体) #[serde(rename = "zh-CN")] ZhCn, /// 中文 (香港) #[serde(rename = "zh-HK")] ZhHk, /// 中文 (繁體) #[serde(rename = "zh-TW")] ZhTw, /// IsiZulu Zu, } /// Available countries #[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "UPPERCASE")] #[non_exhaustive] pub enum Country { /// United Arab Emirates Ae, /// Argentina Ar, /// Austria At, /// Australia Au, /// Azerbaijan Az, /// Bosnia and Herzegovina Ba, /// Bangladesh Bd, /// Belgium Be, /// Bulgaria Bg, /// Bahrain Bh, /// Bolivia Bo, /// Brazil Br, /// Belarus By, /// Canada Ca, /// Switzerland Ch, /// Chile Cl, /// Colombia Co, /// Costa Rica Cr, /// Cyprus Cy, /// Czechia Cz, /// Germany De, /// Denmark Dk, /// Dominican Republic Do, /// Algeria Dz, /// Ecuador Ec, /// Estonia Ee, /// Egypt Eg, /// Spain Es, /// Finland Fi, /// France Fr, /// United Kingdom Gb, /// Georgia Ge, /// Ghana Gh, /// Greece Gr, /// Guatemala Gt, /// Hong Kong Hk, /// Honduras Hn, /// Croatia Hr, /// Hungary Hu, /// Indonesia Id, /// Ireland Ie, /// Israel Il, /// India In, /// Iraq Iq, /// Iceland Is, /// Italy It, /// Jamaica Jm, /// Jordan Jo, /// Japan Jp, /// Kenya Ke, /// Cambodia Kh, /// South Korea Kr, /// Kuwait Kw, /// Kazakhstan Kz, /// Laos La, /// Lebanon Lb, /// Liechtenstein Li, /// Sri Lanka Lk, /// Lithuania Lt, /// Luxembourg Lu, /// Latvia Lv, /// Libya Ly, /// Morocco Ma, /// Montenegro Me, /// North Macedonia Mk, /// Malta Mt, /// Mexico Mx, /// Malaysia My, /// Nigeria Ng, /// Nicaragua Ni, /// Netherlands Nl, /// Norway No, /// Nepal Np, /// New Zealand Nz, /// Oman Om, /// Panama Pa, /// Peru Pe, /// Papua New Guinea Pg, /// Philippines Ph, /// Pakistan Pk, /// Poland Pl, /// Puerto Rico Pr, /// Portugal Pt, /// Paraguay Py, /// Qatar Qa, /// Romania Ro, /// Serbia Rs, /// Russia Ru, /// Saudi Arabia Sa, /// Sweden Se, /// Singapore Sg, /// Slovenia Si, /// Slovakia Sk, /// Senegal Sn, /// El Salvador Sv, /// Thailand Th, /// Tunisia Tn, /// Turkey Tr, /// Taiwan Tw, /// Tanzania Tz, /// Ukraine Ua, /// Uganda Ug, /// United States Us, /// Uruguay Uy, /// Venezuela Ve, /// Vietnam Vn, /// Yemen Ye, /// South Africa Za, /// Zimbabwe Zw, /// Global (can only be used for music charts) Zz, } /// Array of all available languages pub const LANGUAGES: [Language; 83] = [ Language::Af, Language::Am, Language::Ar, Language::As, Language::Az, Language::Be, Language::Bg, Language::Bn, Language::Bs, Language::Ca, Language::Cs, Language::Da, Language::De, Language::El, Language::En, Language::EnGb, Language::EnIn, Language::Es, Language::Es419, Language::EsUs, Language::Et, Language::Eu, Language::Fa, Language::Fi, Language::Fil, Language::Fr, Language::FrCa, Language::Gl, Language::Gu, Language::Hi, Language::Hr, Language::Hu, Language::Hy, Language::Id, Language::Is, Language::It, Language::Iw, Language::Ja, Language::Ka, Language::Kk, Language::Km, Language::Kn, Language::Ko, Language::Ky, Language::Lo, Language::Lt, Language::Lv, Language::Mk, Language::Ml, Language::Mn, Language::Mr, Language::Ms, Language::My, Language::Ne, Language::Nl, Language::No, Language::Or, Language::Pa, Language::Pl, Language::Pt, Language::PtPt, Language::Ro, Language::Ru, Language::Si, Language::Sk, Language::Sl, Language::Sq, Language::Sr, Language::SrLatn, Language::Sv, Language::Sw, Language::Ta, Language::Te, Language::Th, Language::Tr, Language::Uk, Language::Ur, Language::Uz, Language::Vi, Language::ZhCn, Language::ZhHk, Language::ZhTw, Language::Zu, ]; /// Array of all available countries pub const COUNTRIES: [Country; 109] = [ Country::Ae, Country::Ar, Country::At, Country::Au, Country::Az, Country::Ba, Country::Bd, Country::Be, Country::Bg, Country::Bh, Country::Bo, Country::Br, Country::By, Country::Ca, Country::Ch, Country::Cl, Country::Co, Country::Cr, Country::Cy, Country::Cz, Country::De, Country::Dk, Country::Do, Country::Dz, Country::Ec, Country::Ee, Country::Eg, Country::Es, Country::Fi, Country::Fr, Country::Gb, Country::Ge, Country::Gh, Country::Gr, Country::Gt, Country::Hk, Country::Hn, Country::Hr, Country::Hu, Country::Id, Country::Ie, Country::Il, Country::In, Country::Iq, Country::Is, Country::It, Country::Jm, Country::Jo, Country::Jp, Country::Ke, Country::Kh, Country::Kr, Country::Kw, Country::Kz, Country::La, Country::Lb, Country::Li, Country::Lk, Country::Lt, Country::Lu, Country::Lv, Country::Ly, Country::Ma, Country::Me, Country::Mk, Country::Mt, Country::Mx, Country::My, Country::Ng, Country::Ni, Country::Nl, Country::No, Country::Np, Country::Nz, Country::Om, Country::Pa, Country::Pe, Country::Pg, Country::Ph, Country::Pk, Country::Pl, Country::Pr, Country::Pt, Country::Py, Country::Qa, Country::Ro, Country::Rs, Country::Ru, Country::Sa, Country::Se, Country::Sg, Country::Si, Country::Sk, Country::Sn, Country::Sv, Country::Th, Country::Tn, Country::Tr, Country::Tw, Country::Tz, Country::Ua, Country::Ug, Country::Us, Country::Uy, Country::Ve, Country::Vn, Country::Ye, Country::Za, Country::Zw, ]; impl Language { /// Get the native name of the language /// /// Examples: "English (US)", "Deutsch", "中文 (简体)" pub fn name(&self) -> &str { match self { Language::Af => "Afrikaans", Language::Am => "አማርኛ", Language::Ar => "العربية", Language::As => "অসমীয়া", Language::Az => "Azərbaycan", Language::Be => "Беларуская", Language::Bg => "Български", Language::Bn => "বাংলা", Language::Bs => "Bosanski", Language::Ca => "Català", Language::Cs => "Čeština", Language::Da => "Dansk", Language::De => "Deutsch", Language::El => "Ελληνικά", Language::En => "English (US)", Language::EnGb => "English (UK)", Language::EnIn => "English (India)", Language::Es => "Español (España)", Language::Es419 => "Español (Latinoamérica)", Language::EsUs => "Español (US)", Language::Et => "Eesti", Language::Eu => "Euskara", Language::Fa => "فارسی", Language::Fi => "Suomi", Language::Fil => "Filipino", Language::Fr => "Français", Language::FrCa => "Français (Canada)", Language::Gl => "Galego", Language::Gu => "ગુજરાતી", Language::Hi => "हिन्दी", Language::Hr => "Hrvatski", Language::Hu => "Magyar", Language::Hy => "Հայերեն", Language::Id => "Bahasa Indonesia", Language::Is => "Íslenska", Language::It => "Italiano", Language::Iw => "עברית", Language::Ja => "日本語", Language::Ka => "ქართული", Language::Kk => "Қазақ Тілі", Language::Km => "ខ្មែរ", Language::Kn => "ಕನ್ನಡ", Language::Ko => "한국어", Language::Ky => "Кыргызча", Language::Lo => "ລາວ", Language::Lt => "Lietuvių", Language::Lv => "Latviešu valoda", Language::Mk => "Македонски", Language::Ml => "മലയാളം", Language::Mn => "Монгол", Language::Mr => "मराठी", Language::Ms => "Bahasa Malaysia", Language::My => "ဗမာ", Language::Ne => "नेपाली", Language::Nl => "Nederlands", Language::No => "Norsk", Language::Or => "ଓଡ଼ିଆ", Language::Pa => "ਪੰਜਾਬੀ", Language::Pl => "Polski", Language::Pt => "Português (Brasil)", Language::PtPt => "Português", Language::Ro => "Română", Language::Ru => "Русский", Language::Si => "සිංහල", Language::Sk => "Slovenčina", Language::Sl => "Slovenščina", Language::Sq => "Shqip", Language::Sr => "Српски", Language::SrLatn => "Srpski", Language::Sv => "Svenska", Language::Sw => "Kiswahili", Language::Ta => "தமிழ்", Language::Te => "తెలుగు", Language::Th => "ภาษาไทย", Language::Tr => "Türkçe", Language::Uk => "Українська", Language::Ur => "اردو", Language::Uz => "O‘zbek", Language::Vi => "Tiếng Việt", Language::ZhCn => "中文 (简体)", Language::ZhHk => "中文 (香港)", Language::ZhTw => "中文 (繁體)", Language::Zu => "IsiZulu", } } } impl Country { /// Get the English name of the country /// /// Examples: "United States", "Germany" pub fn name(&self) -> &str { match self { Country::Ae => "United Arab Emirates", Country::Ar => "Argentina", Country::At => "Austria", Country::Au => "Australia", Country::Az => "Azerbaijan", Country::Ba => "Bosnia and Herzegovina", Country::Bd => "Bangladesh", Country::Be => "Belgium", Country::Bg => "Bulgaria", Country::Bh => "Bahrain", Country::Bo => "Bolivia", Country::Br => "Brazil", Country::By => "Belarus", Country::Ca => "Canada", Country::Ch => "Switzerland", Country::Cl => "Chile", Country::Co => "Colombia", Country::Cr => "Costa Rica", Country::Cy => "Cyprus", Country::Cz => "Czechia", Country::De => "Germany", Country::Dk => "Denmark", Country::Do => "Dominican Republic", Country::Dz => "Algeria", Country::Ec => "Ecuador", Country::Ee => "Estonia", Country::Eg => "Egypt", Country::Es => "Spain", Country::Fi => "Finland", Country::Fr => "France", Country::Gb => "United Kingdom", Country::Ge => "Georgia", Country::Gh => "Ghana", Country::Gr => "Greece", Country::Gt => "Guatemala", Country::Hk => "Hong Kong", Country::Hn => "Honduras", Country::Hr => "Croatia", Country::Hu => "Hungary", Country::Id => "Indonesia", Country::Ie => "Ireland", Country::Il => "Israel", Country::In => "India", Country::Iq => "Iraq", Country::Is => "Iceland", Country::It => "Italy", Country::Jm => "Jamaica", Country::Jo => "Jordan", Country::Jp => "Japan", Country::Ke => "Kenya", Country::Kh => "Cambodia", Country::Kr => "South Korea", Country::Kw => "Kuwait", Country::Kz => "Kazakhstan", Country::La => "Laos", Country::Lb => "Lebanon", Country::Li => "Liechtenstein", Country::Lk => "Sri Lanka", Country::Lt => "Lithuania", Country::Lu => "Luxembourg", Country::Lv => "Latvia", Country::Ly => "Libya", Country::Ma => "Morocco", Country::Me => "Montenegro", Country::Mk => "North Macedonia", Country::Mt => "Malta", Country::Mx => "Mexico", Country::My => "Malaysia", Country::Ng => "Nigeria", Country::Ni => "Nicaragua", Country::Nl => "Netherlands", Country::No => "Norway", Country::Np => "Nepal", Country::Nz => "New Zealand", Country::Om => "Oman", Country::Pa => "Panama", Country::Pe => "Peru", Country::Pg => "Papua New Guinea", Country::Ph => "Philippines", Country::Pk => "Pakistan", Country::Pl => "Poland", Country::Pr => "Puerto Rico", Country::Pt => "Portugal", Country::Py => "Paraguay", Country::Qa => "Qatar", Country::Ro => "Romania", Country::Rs => "Serbia", Country::Ru => "Russia", Country::Sa => "Saudi Arabia", Country::Se => "Sweden", Country::Sg => "Singapore", Country::Si => "Slovenia", Country::Sk => "Slovakia", Country::Sn => "Senegal", Country::Sv => "El Salvador", Country::Th => "Thailand", Country::Tn => "Tunisia", Country::Tr => "Turkey", Country::Tw => "Taiwan", Country::Tz => "Tanzania", Country::Ua => "Ukraine", Country::Ug => "Uganda", Country::Us => "United States", Country::Uy => "Uruguay", Country::Ve => "Venezuela", Country::Vn => "Vietnam", Country::Ye => "Yemen", Country::Za => "South Africa", Country::Zw => "Zimbabwe", Country::Zz => "Global", } } } impl Display for Language { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.write_str( &serde_json::to_string(self).map_or("".to_owned(), |s| s[1..s.len() - 1].to_owned()), ) } } impl Display for Country { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.write_str( &serde_json::to_string(self).map_or("".to_owned(), |s| s[1..s.len() - 1].to_owned()), ) } } impl FromStr for Language { type Err = serde_json::Error; fn from_str(s: &str) -> Result { serde_json::from_str(&format!("\"{s}\"")) } } impl FromStr for Country { type Err = serde_json::Error; fn from_str(s: &str) -> Result { serde_json::from_str(&format!("\"{s}\"")) } }