azure_speech/recognizer/
language.rs

1use std::fmt;
2use std::fmt::{Display, Formatter};
3
4/// Language that the recognizer should recognize.
5///
6/// The language is used to specify the language that the recognizer should recognize.
7/// If the language is not mapped, you can use the `Custom` variant to specify the language.
8#[derive(Debug, Clone, Default, PartialEq, Eq)]
9pub enum Language {
10    AfZa,
11    AmEt,
12    ArAe,
13    ArBh,
14    ArDz,
15    ArEg,
16    ArIq,
17    ArJo,
18    ArKw,
19    ArLy,
20    ArMa,
21    ArQa,
22    ArSa,
23    ArSy,
24    ArTn,
25    ArYe,
26    BgBg,
27    BnBd,
28    BnIn,
29    CaEs,
30    CsCz,
31    CyGb,
32    DaDk,
33    DeAt,
34    DeCh,
35    DeDe,
36    ElGr,
37    EnAu,
38    EnCa,
39    #[default]
40    EnGb,
41    EnHk,
42    EnIe,
43    EnIn,
44    EnKe,
45    EnNg,
46    EnNz,
47    EnPh,
48    EnSg,
49    EnTz,
50    EnUs,
51    EnZa,
52    EsAr,
53    EsBo,
54    EsCl,
55    EsCo,
56    EsCr,
57    EsCu,
58    EsDo,
59    EsEc,
60    EsEs,
61    EsGq,
62    EsGt,
63    EsHn,
64    EsMx,
65    EsNi,
66    EsPa,
67    EsPe,
68    EsPr,
69    EsPy,
70    EsSv,
71    EsUs,
72    EsUy,
73    EsVe,
74    EtEe,
75    FaIr,
76    FiFi,
77    FilPh,
78    FrBe,
79    FrCa,
80    FrCh,
81    FrFr,
82    GaIe,
83    GlEs,
84    GuIn,
85    HeIl,
86    HiIn,
87    HrHr,
88    HuHu,
89    IdId,
90    IsIs,
91    ItIt,
92    JaJp,
93    JvId,
94    KkKz,
95    KmKh,
96    KnIn,
97    KoKr,
98    LoLa,
99    LtLt,
100    LvLv,
101    MkMk,
102    MlIn,
103    MrIn,
104    MsMy,
105    MtMt,
106    MyMm,
107    NbNo,
108    NlBe,
109    NlNl,
110    PlPl,
111    PsAf,
112    PtBr,
113    PtPt,
114    RoRo,
115    RuRu,
116    SiLk,
117    SkSk,
118    SlSi,
119    SoSo,
120    SrRs,
121    SuId,
122    SvSe,
123    SwKe,
124    SwTz,
125    TaIn,
126    TaLk,
127    TaSg,
128    TeIn,
129    ThTh,
130    TrTr,
131    UkUa,
132    UrIn,
133    UrPk,
134    UzUz,
135    ViVn,
136    ZhCn,
137    ZhHk,
138    ZhTw,
139    ZuZa,
140    Custom(String),
141}
142
143impl Display for Language {
144    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
145        let value = match self {
146            Language::Custom(s) => s.as_str(),
147            Language::AfZa => "af-ZA",
148            Language::AmEt => "am-ET",
149            Language::ArAe => "ar-AE",
150            Language::ArBh => "ar-BH",
151            Language::ArDz => "ar-DZ",
152            Language::ArEg => "ar-EG",
153            Language::ArIq => "ar-IQ",
154            Language::ArJo => "ar-JO",
155            Language::ArKw => "ar-KW",
156            Language::ArLy => "ar-LY",
157            Language::ArMa => "ar-MA",
158            Language::ArQa => "ar-QA",
159            Language::ArSa => "ar-SA",
160            Language::ArSy => "ar-SY",
161            Language::ArTn => "ar-TN",
162            Language::ArYe => "ar-YE",
163            Language::BgBg => "bg-BG",
164            Language::BnBd => "bn-BD",
165            Language::BnIn => "bn-IN",
166            Language::CaEs => "ca-ES",
167            Language::CsCz => "cs-CZ",
168            Language::CyGb => "cy-GB",
169            Language::DaDk => "da-DK",
170            Language::DeAt => "de-AT",
171            Language::DeCh => "de-CH",
172            Language::DeDe => "de-DE",
173            Language::ElGr => "el-GR",
174            Language::EnAu => "en-AU",
175            Language::EnCa => "en-CA",
176            Language::EnGb => "en-GB",
177            Language::EnHk => "en-HK",
178            Language::EnIe => "en-IE",
179            Language::EnIn => "en-IN",
180            Language::EnKe => "en-KE",
181            Language::EnNg => "en-NG",
182            Language::EnNz => "en-NZ",
183            Language::EnPh => "en-PH",
184            Language::EnSg => "en-SG",
185            Language::EnTz => "en-TZ",
186            Language::EnUs => "en-US",
187            Language::EnZa => "en-ZA",
188            Language::EsAr => "es-AR",
189            Language::EsBo => "es-BO",
190            Language::EsCl => "es-CL",
191            Language::EsCo => "es-CO",
192            Language::EsCr => "es-CR",
193            Language::EsCu => "es-CU",
194            Language::EsDo => "es-DO",
195            Language::EsEc => "es-EC",
196            Language::EsEs => "es-ES",
197            Language::EsGq => "es-GQ",
198            Language::EsGt => "es-GT",
199            Language::EsHn => "es-HN",
200            Language::EsMx => "es-MX",
201            Language::EsNi => "es-NI",
202            Language::EsPa => "es-PA",
203            Language::EsPe => "es-PE",
204            Language::EsPr => "es-PR",
205            Language::EsPy => "es-PY",
206            Language::EsSv => "es-SV",
207            Language::EsUs => "es-US",
208            Language::EsUy => "es-UY",
209            Language::EsVe => "es-VE",
210            Language::EtEe => "et-EE",
211            Language::FaIr => "fa-IR",
212            Language::FiFi => "fi-FI",
213            Language::FilPh => "fil-PH",
214            Language::FrBe => "fr-BE",
215            Language::FrCa => "fr-CA",
216            Language::FrCh => "fr-CH",
217            Language::FrFr => "fr-FR",
218            Language::GaIe => "ga-IE",
219            Language::GlEs => "gl-ES",
220            Language::GuIn => "gu-IN",
221            Language::HeIl => "he-IL",
222            Language::HiIn => "hi-IN",
223            Language::HrHr => "hr-HR",
224            Language::HuHu => "hu-HU",
225            Language::IdId => "id-ID",
226            Language::IsIs => "is-IS",
227            Language::ItIt => "it-IT",
228            Language::JaJp => "ja-JP",
229            Language::JvId => "jv-ID",
230            Language::KkKz => "kk-KZ",
231            Language::KmKh => "km-KH",
232            Language::KnIn => "kn-IN",
233            Language::KoKr => "ko-KR",
234            Language::LoLa => "lo-LA",
235            Language::LtLt => "lt-LT",
236            Language::LvLv => "lv-LV",
237            Language::MkMk => "mk-MK",
238            Language::MlIn => "ml-IN",
239            Language::MrIn => "mr-IN",
240            Language::MsMy => "ms-MY",
241            Language::MtMt => "mt-MT",
242            Language::MyMm => "my-MM",
243            Language::NbNo => "nb-NO",
244            Language::NlBe => "nl-BE",
245            Language::NlNl => "nl-NL",
246            Language::PlPl => "pl-PL",
247            Language::PsAf => "ps-AF",
248            Language::PtBr => "pt-BR",
249            Language::PtPt => "pt-PT",
250            Language::RoRo => "ro-RO",
251            Language::RuRu => "ru-RU",
252            Language::SiLk => "si-LK",
253            Language::SkSk => "sk-SK",
254            Language::SlSi => "sl-SI",
255            Language::SoSo => "so-SO",
256            Language::SrRs => "sr-RS",
257            Language::SuId => "su-ID",
258            Language::SvSe => "sv-SE",
259            Language::SwKe => "sw-KE",
260            Language::SwTz => "sw-TZ",
261            Language::TaIn => "ta-IN",
262            Language::TaLk => "ta-LK",
263            Language::TaSg => "ta-SG",
264            Language::TeIn => "te-IN",
265            Language::ThTh => "th-TH",
266            Language::TrTr => "tr-TR",
267            Language::UkUa => "uk-UA",
268            Language::UrIn => "ur-IN",
269            Language::UrPk => "ur-PK",
270            Language::UzUz => "uz-UZ",
271            Language::ViVn => "vi-VN",
272            Language::ZhCn => "zh-CN",
273            Language::ZhHk => "zh-HK",
274            Language::ZhTw => "zh-TW",
275            Language::ZuZa => "zu-ZA",
276        };
277
278        write!(f, "{}", value)
279    }
280}
281
282impl From<&str> for Language {
283    fn from(value: &str) -> Self {
284        value.to_string().into()
285    }
286}
287
288impl From<String> for Language {
289    fn from(value: String) -> Self {
290        match value.as_str() {
291            "af-ZA" => Language::AfZa,
292            "am-ET" => Language::AmEt,
293            "ar-AE" => Language::ArAe,
294            "ar-BH" => Language::ArBh,
295            "ar-DZ" => Language::ArDz,
296            "ar-EG" => Language::ArEg,
297            "ar-IQ" => Language::ArIq,
298            "ar-JO" => Language::ArJo,
299            "ar-KW" => Language::ArKw,
300            "ar-LY" => Language::ArLy,
301            "ar-MA" => Language::ArMa,
302            "ar-QA" => Language::ArQa,
303            "ar-SA" => Language::ArSa,
304            "ar-SY" => Language::ArSy,
305            "ar-TN" => Language::ArTn,
306            "ar-YE" => Language::ArYe,
307            "bg-BG" => Language::BgBg,
308            "bn-BD" => Language::BnBd,
309            "bn-IN" => Language::BnIn,
310            "ca-ES" => Language::CaEs,
311            "cs-CZ" => Language::CsCz,
312            "cy-GB" => Language::CyGb,
313            "da-DK" => Language::DaDk,
314            "de-AT" => Language::DeAt,
315            "de-CH" => Language::DeCh,
316            "de-DE" => Language::DeDe,
317            "el-GR" => Language::ElGr,
318            "en-AU" => Language::EnAu,
319            "en-CA" => Language::EnCa,
320            "en-GB" => Language::EnGb,
321            "en-HK" => Language::EnHk,
322            "en-IE" => Language::EnIe,
323            "en-IN" => Language::EnIn,
324            "en-KE" => Language::EnKe,
325            "en-NG" => Language::EnNg,
326            "en-NZ" => Language::EnNz,
327            "en-PH" => Language::EnPh,
328            "en-SG" => Language::EnSg,
329            "en-TZ" => Language::EnTz,
330            "en-US" => Language::EnUs,
331            "en-ZA" => Language::EnZa,
332            "es-AR" => Language::EsAr,
333            "es-BO" => Language::EsBo,
334            "es-CL" => Language::EsCl,
335            "es-CO" => Language::EsCo,
336            "es-CR" => Language::EsCr,
337            "es-CU" => Language::EsCu,
338            "es-DO" => Language::EsDo,
339            "es-EC" => Language::EsEc,
340            "es-ES" => Language::EsEs,
341            "es-GQ" => Language::EsGq,
342            "es-GT" => Language::EsGt,
343            "es-HN" => Language::EsHn,
344            "es-MX" => Language::EsMx,
345            "es-NI" => Language::EsNi,
346            "es-PA" => Language::EsPa,
347            "es-PE" => Language::EsPe,
348            "es-PR" => Language::EsPr,
349            "es-PY" => Language::EsPy,
350            "es-SV" => Language::EsSv,
351            "es-US" => Language::EsUs,
352            "es-UY" => Language::EsUy,
353            "es-VE" => Language::EsVe,
354            "et-EE" => Language::EtEe,
355            "fa-IR" => Language::FaIr,
356            "fi-FI" => Language::FiFi,
357            "fil-PH" => Language::FilPh,
358            "fr-BE" => Language::FrBe,
359            "fr-CA" => Language::FrCa,
360            "fr-CH" => Language::FrCh,
361            "fr-FR" => Language::FrFr,
362            "ga-IE" => Language::GaIe,
363            "gl-ES" => Language::GlEs,
364            "gu-IN" => Language::GuIn,
365            "he-IL" => Language::HeIl,
366            "hi-IN" => Language::HiIn,
367            "hr-HR" => Language::HrHr,
368            "hu-HU" => Language::HuHu,
369            "id-ID" => Language::IdId,
370            "is-IS" => Language::IsIs,
371            "it-IT" => Language::ItIt,
372            "ja-JP" => Language::JaJp,
373            "jv-ID" => Language::JvId,
374            "kk-KZ" => Language::KkKz,
375            "km-KH" => Language::KmKh,
376            "kn-IN" => Language::KnIn,
377            "ko-KR" => Language::KoKr,
378            "lo-LA" => Language::LoLa,
379            "lt-LT" => Language::LtLt,
380            "lv-LV" => Language::LvLv,
381            "mk-MK" => Language::MkMk,
382            "ml-IN" => Language::MlIn,
383            "mr-IN" => Language::MrIn,
384            "ms-MY" => Language::MsMy,
385            "mt-MT" => Language::MtMt,
386            "my-MM" => Language::MyMm,
387            "nb-NO" => Language::NbNo,
388            "nl-BE" => Language::NlBe,
389            "nl-NL" => Language::NlNl,
390            "pl-PL" => Language::PlPl,
391            "ps-AF" => Language::PsAf,
392            "pt-BR" => Language::PtBr,
393            "pt-PT" => Language::PtPt,
394            "ro-RO" => Language::RoRo,
395            "ru-RU" => Language::RuRu,
396            "si-LK" => Language::SiLk,
397            "sk-SK" => Language::SkSk,
398            "sl-SI" => Language::SlSi,
399            "so-SO" => Language::SoSo,
400            "sr-RS" => Language::SrRs,
401            "su-ID" => Language::SuId,
402            "sv-SE" => Language::SvSe,
403            "sw-KE" => Language::SwKe,
404            "sw-TZ" => Language::SwTz,
405            "ta-IN" => Language::TaIn,
406            "ta-LK" => Language::TaLk,
407            "ta-SG" => Language::TaSg,
408            "te-IN" => Language::TeIn,
409            "th-TH" => Language::ThTh,
410            "tr-TR" => Language::TrTr,
411            "uk-UA" => Language::UkUa,
412            "ur-IN" => Language::UrIn,
413            "ur-PK" => Language::UrPk,
414            "uz-UZ" => Language::UzUz,
415            "vi-VN" => Language::ViVn,
416            "zh-CN" => Language::ZhCn,
417            "zh-HK" => Language::ZhHk,
418            "zh-TW" => Language::ZhTw,
419            "zu-ZA" => Language::ZuZa,
420            _ => Language::Custom(value),
421        }
422    }
423}