oaapi/audio/
language.rs

1use std::fmt::{Display, Formatter};
2
3/// The ISO 639-1 Language Codes.
4#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
5pub enum Iso639_1 {
6    // A
7    /// Afar
8    Aa,
9    /// Abkhazian
10    Ab,
11    /// Avestan
12    Ae,
13    /// Afrikaans
14    Af,
15    /// Akan
16    Ak,
17    /// Amharic
18    Am,
19    /// Aragonese
20    An,
21    /// Arabic
22    Ar,
23    /// Assamese
24    As,
25    /// Avaric
26    Av,
27    /// Aymara
28    Ay,
29    /// Azerbaijani
30    Az,
31
32    // B
33    /// Bashkir
34    Ba,
35    /// Belarusian
36    Be,
37    /// Bulgarian
38    Bg,
39    /// Bihari languages
40    Bh,
41    /// Bislama
42    Bi,
43    /// Bambara
44    Bm,
45    /// Bengali
46    Bn,
47    /// Tibetan
48    Bo,
49    /// Breton
50    Br,
51    /// Bosnian
52    Bs,
53
54    // C
55    /// Catalan; Valencian
56    Ca,
57    /// Chechen
58    Ce,
59    /// Chamorro
60    Ch,
61    /// Corsican
62    Co,
63    /// Cree
64    Cr,
65    /// Czech
66    Cs,
67    /// Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
68    Cu,
69    /// Chuvash
70    Cv,
71    /// Welsh
72    Cy,
73    // D
74    /// Danish
75    Da,
76    /// German
77    De,
78    /// Divehi; Dhivehi; Maldivian
79    Dv,
80    /// Dzongkha
81    Dz,
82
83    // E
84    /// Greek, Modern (1453-)
85    El,
86    /// English
87    En,
88    /// Esperanto
89    Eo,
90    /// Spanish; Castilian
91    Es,
92    /// Estonian
93    Et,
94    /// Basque
95    Eu,
96    /// Persian
97    Fa,
98    /// Fulah
99    Ff,
100    /// Finnish
101    Fi,
102    /// Fijian
103    Fj,
104    /// Faroese
105    Fo,
106    /// French
107    Fr,
108    /// Western Frisian
109    Fy,
110
111    // G
112    /// Irish
113    Ga,
114    /// Gaelic; Scottish Gaelic
115    Gd,
116    /// Galician
117    Gl,
118    /// Guarani
119    Gn,
120    /// Gujarati
121    Gu,
122
123    // H
124    /// Manx
125    Hv,
126    /// Hausa
127    Ha,
128    /// Hebrew
129    He,
130    /// Hindi
131    Hi,
132    /// Hiri Motu
133    Ho,
134    /// Croatian
135    Hr,
136    /// Haitian; Haitian Creole
137    Ht,
138    /// Hungarian
139    Hu,
140
141    // I
142    /// Armenian
143    Hy,
144    /// Interlingua (International Auxiliary Language Association)
145    Ia,
146    /// Indonesian
147    Id,
148    /// Interlingue; Occidental
149    Ie,
150    /// Igbo
151    Ig,
152    /// Sichuan Yi; Nuosu
153    Ii,
154    /// Inupiaq
155    Ik,
156    /// Ido
157    Io,
158    /// Icelandic
159    Is,
160    /// Italian
161    It,
162    /// Inuktitut
163    Iu,
164
165    // J
166    /// Japanese
167    Ja,
168    /// Javanese
169    Jv,
170
171    // K
172    /// Georgian
173    Ka,
174    /// Kongo
175    Kg,
176    /// Kikuyu; Gikuyu
177    Ki,
178    /// Kuanyama; Kwanyama
179    Kj,
180    /// Kazakh
181    Kk,
182    /// Kalaallisut; Greenlandic
183    Kl,
184    /// Central Khmer
185    Km,
186    /// Kannada
187    Kn,
188    /// Korean
189    Ko,
190    /// Kanuri
191    Kr,
192    /// Kashmiri
193    Ks,
194    /// Kurdish
195    Ku,
196    /// Komi
197    Kv,
198    /// Cornish
199    Kw,
200    /// Kirghiz; Kyrgyz
201    Ky,
202
203    // L
204    /// Latin
205    La,
206    /// Luxembourgish; Letzeburgesch
207    Lb,
208    /// Ganda
209    Lg,
210    /// Limburgan; Limburger; Limburgish
211    Li,
212    /// Lingala
213    Ln,
214    /// Lao
215    Lo,
216    /// Lithuanian
217    Lt,
218    /// Luba-Katanga
219    Lu,
220    /// Latvian
221    Lv,
222    // M
223    /// Malagasy
224    Mg,
225    /// Marshallese
226    Mh,
227    /// Maori
228    Mi,
229    /// Macedonian
230    Mk,
231    /// Malayalam
232    Ml,
233    /// Mongolian
234    Mn,
235    /// Marathi
236    Mr,
237    /// Malay
238    Ms,
239    /// Maltese
240    Mt,
241    /// Burmese
242    My,
243
244    // N
245    /// Nauru
246    Na,
247    /// Bokmål, Norwegian; Norwegian Bokmål
248    Nb,
249    /// Ndebele, North; North Ndebele
250    Nd,
251    /// Nepali
252    Ne,
253    /// Ndonga
254    Ng,
255    /// Dutch; Flemish
256    Nl,
257    /// Norwegian Nynorsk; Nynorsk, Norwegian
258    Nn,
259    /// Norwegian
260    No,
261    /// Ndebele, South; South Ndebele
262    Nr,
263    /// Navajo; Navaho
264    Nv,
265    /// Chichewa; Chewa; Nyanja
266    Ny,
267
268    // O
269    /// Occitan (post 1500)
270    Oc,
271    /// Ojibwa
272    Oj,
273    /// Oromo
274    Om,
275    /// Oriya
276    Or,
277    /// Ossetian; Ossetic
278    Os,
279
280    // P
281    /// Panjabi; Punjabi
282    Pa,
283    /// Pali
284    Pi,
285    /// Polish
286    Pl,
287    /// Pushto; Pashto
288    Ps,
289    /// Portuguese
290    Pt,
291
292    // Q
293    /// Quechua
294    Qu,
295
296    // R
297    /// Romansh
298    Rm,
299    /// Rundi
300    Rn,
301    /// Romanian; Moldavian; Moldovan
302    Ro,
303    /// Russian
304    Ru,
305    /// Kinyarwanda
306    Rw,
307
308    // S
309    /// Sanskrit
310    Sa,
311    /// Sardinian
312    Sc,
313    /// Sindhi
314    Sd,
315    /// Northern Sami
316    Se,
317    /// Sango
318    Sg,
319    /// Sinhala; Sinhalese
320    Si,
321    /// Slovak
322    Sk,
323    /// Slovenian
324    Sl,
325    /// Samoan
326    Sm,
327    /// Shona
328    Sn,
329    /// Somali
330    So,
331    /// Albanian
332    Sq,
333    /// Serbian
334    Sr,
335    /// Swati
336    Ss,
337    /// Sotho, Southern
338    St,
339    /// Sundanese
340    Su,
341    /// Swedish
342    Sv,
343    /// Swahili
344    Sw,
345
346    // T
347    /// Tamil
348    Ta,
349    /// Telugu
350    Te,
351    /// Tajik
352    Tg,
353    /// Thai
354    Th,
355    /// Tigrinya
356    Ti,
357    /// Turkmen
358    Tk,
359    /// Tagalog
360    Tl,
361    /// Tswana
362    Tn,
363    /// Tonga (Tonga Islands)
364    To,
365    /// Turkish
366    Tr,
367    /// Tsonga
368    Ts,
369    /// Tatar
370    Tt,
371    /// Twi
372    Tw,
373
374    // U
375    /// Uighur; Uyghur
376    Ug,
377    /// Ukrainian
378    Uk,
379    /// Urdu
380    Ur,
381    /// Uzbek
382    Uz,
383
384    // V
385    /// Venda
386    Ve,
387    /// Vietnamese
388    Vi,
389    /// Volapük
390    Vo,
391
392    // W
393    /// Walloon
394    Wa,
395    /// Wolof
396    Wo,
397
398    // X
399    /// Xhosa
400    Xh,
401
402    // Y
403    /// Yiddish
404    Yi,
405    /// Yoruba
406    Yo,
407
408    // Z
409    /// Zhuang; Chuang
410    Za,
411    /// Chinese
412    Zh,
413    /// Zulu
414    Zu,
415}
416
417impl Default for Iso639_1 {
418    fn default() -> Self {
419        Self::En
420    }
421}
422
423impl Display for Iso639_1 {
424    fn fmt(
425        &self,
426        f: &mut Formatter<'_>,
427    ) -> std::fmt::Result {
428        match self {
429            // A
430            | Iso639_1::Aa => write!(f, "aa"),
431            | Iso639_1::Ab => write!(f, "ab"),
432            | Iso639_1::Ae => write!(f, "ae"),
433            | Iso639_1::Af => write!(f, "af"),
434            | Iso639_1::Ak => write!(f, "ak"),
435            | Iso639_1::Am => write!(f, "am"),
436            | Iso639_1::An => write!(f, "an"),
437            | Iso639_1::Ar => write!(f, "ar"),
438            | Iso639_1::As => write!(f, "as"),
439            | Iso639_1::Av => write!(f, "av"),
440            | Iso639_1::Ay => write!(f, "ay"),
441            | Iso639_1::Az => write!(f, "az"),
442
443            // B
444            | Iso639_1::Ba => write!(f, "ba"),
445            | Iso639_1::Be => write!(f, "be"),
446            | Iso639_1::Bg => write!(f, "bg"),
447            | Iso639_1::Bh => write!(f, "bh"),
448            | Iso639_1::Bi => write!(f, "bi"),
449            | Iso639_1::Bm => write!(f, "bm"),
450            | Iso639_1::Bn => write!(f, "bn"),
451            | Iso639_1::Bo => write!(f, "bo"),
452            | Iso639_1::Br => write!(f, "br"),
453            | Iso639_1::Bs => write!(f, "bs"),
454
455            // C
456            | Iso639_1::Ca => write!(f, "ca"),
457            | Iso639_1::Ce => write!(f, "ce"),
458            | Iso639_1::Ch => write!(f, "ch"),
459            | Iso639_1::Co => write!(f, "co"),
460            | Iso639_1::Cr => write!(f, "cr"),
461            | Iso639_1::Cs => write!(f, "cs"),
462            | Iso639_1::Cu => write!(f, "cu"),
463            | Iso639_1::Cv => write!(f, "cv"),
464            | Iso639_1::Cy => write!(f, "cy"),
465
466            // D
467            | Iso639_1::Da => write!(f, "da"),
468            | Iso639_1::De => write!(f, "de"),
469            | Iso639_1::Dv => write!(f, "dv"),
470            | Iso639_1::Dz => write!(f, "dz"),
471
472            // E
473            | Iso639_1::El => write!(f, "el"),
474            | Iso639_1::En => write!(f, "en"),
475            | Iso639_1::Eo => write!(f, "eo"),
476            | Iso639_1::Es => write!(f, "es"),
477            | Iso639_1::Et => write!(f, "et"),
478            | Iso639_1::Eu => write!(f, "eu"),
479
480            // F
481            | Iso639_1::Fa => write!(f, "fa"),
482            | Iso639_1::Ff => write!(f, "ff"),
483            | Iso639_1::Fi => write!(f, "fi"),
484            | Iso639_1::Fj => write!(f, "fj"),
485            | Iso639_1::Fo => write!(f, "fo"),
486            | Iso639_1::Fr => write!(f, "fr"),
487            | Iso639_1::Fy => write!(f, "fy"),
488
489            // G
490            | Iso639_1::Ga => write!(f, "ga"),
491            | Iso639_1::Gd => write!(f, "gd"),
492            | Iso639_1::Gl => write!(f, "gl"),
493            | Iso639_1::Gn => write!(f, "gn"),
494            | Iso639_1::Gu => write!(f, "gu"),
495
496            // H
497            | Iso639_1::Hv => write!(f, "hv"),
498            | Iso639_1::Ha => write!(f, "ha"),
499            | Iso639_1::He => write!(f, "he"),
500            | Iso639_1::Hi => write!(f, "hi"),
501            | Iso639_1::Ho => write!(f, "ho"),
502            | Iso639_1::Hr => write!(f, "hr"),
503            | Iso639_1::Ht => write!(f, "ht"),
504            | Iso639_1::Hu => write!(f, "hu"),
505
506            // I
507            | Iso639_1::Hy => write!(f, "hy"),
508            | Iso639_1::Ia => write!(f, "ia"),
509            | Iso639_1::Id => write!(f, "id"),
510            | Iso639_1::Ie => write!(f, "ie"),
511            | Iso639_1::Ig => write!(f, "ig"),
512            | Iso639_1::Ii => write!(f, "ii"),
513            | Iso639_1::Ik => write!(f, "ik"),
514            | Iso639_1::Io => write!(f, "io"),
515            | Iso639_1::Is => write!(f, "is"),
516            | Iso639_1::It => write!(f, "it"),
517            | Iso639_1::Iu => write!(f, "iu"),
518
519            // J
520            | Iso639_1::Ja => write!(f, "ja"),
521            | Iso639_1::Jv => write!(f, "jv"),
522
523            // K
524            | Iso639_1::Ka => write!(f, "ka"),
525            | Iso639_1::Kg => write!(f, "kg"),
526            | Iso639_1::Ki => write!(f, "ki"),
527            | Iso639_1::Kj => write!(f, "kj"),
528            | Iso639_1::Kk => write!(f, "kk"),
529            | Iso639_1::Kl => write!(f, "kl"),
530            | Iso639_1::Km => write!(f, "km"),
531            | Iso639_1::Kn => write!(f, "kn"),
532            | Iso639_1::Ko => write!(f, "ko"),
533            | Iso639_1::Kr => write!(f, "kr"),
534            | Iso639_1::Ks => write!(f, "ks"),
535            | Iso639_1::Ku => write!(f, "ku"),
536            | Iso639_1::Kv => write!(f, "kv"),
537            | Iso639_1::Kw => write!(f, "kw"),
538            | Iso639_1::Ky => write!(f, "ky"),
539
540            // L
541            | Iso639_1::La => write!(f, "la"),
542            | Iso639_1::Lb => write!(f, "lb"),
543            | Iso639_1::Lg => write!(f, "lg"),
544            | Iso639_1::Li => write!(f, "li"),
545            | Iso639_1::Ln => write!(f, "ln"),
546            | Iso639_1::Lo => write!(f, "lo"),
547            | Iso639_1::Lt => write!(f, "lt"),
548            | Iso639_1::Lu => write!(f, "lu"),
549            | Iso639_1::Lv => write!(f, "lv"),
550
551            // M
552            | Iso639_1::Mg => write!(f, "mg"),
553            | Iso639_1::Mh => write!(f, "mh"),
554            | Iso639_1::Mi => write!(f, "mi"),
555            | Iso639_1::Mk => write!(f, "mk"),
556            | Iso639_1::Ml => write!(f, "ml"),
557            | Iso639_1::Mn => write!(f, "mn"),
558            | Iso639_1::Mr => write!(f, "mr"),
559            | Iso639_1::Ms => write!(f, "ms"),
560            | Iso639_1::Mt => write!(f, "mt"),
561            | Iso639_1::My => write!(f, "my"),
562
563            // N
564            | Iso639_1::Na => write!(f, "na"),
565            | Iso639_1::Nb => write!(f, "nb"),
566            | Iso639_1::Nd => write!(f, "nd"),
567            | Iso639_1::Ne => write!(f, "ne"),
568            | Iso639_1::Ng => write!(f, "ng"),
569            | Iso639_1::Nl => write!(f, "nl"),
570            | Iso639_1::Nn => write!(f, "nn"),
571            | Iso639_1::No => write!(f, "no"),
572            | Iso639_1::Nr => write!(f, "nr"),
573            | Iso639_1::Nv => write!(f, "nv"),
574            | Iso639_1::Ny => write!(f, "ny"),
575
576            // O
577            | Iso639_1::Oc => write!(f, "oc"),
578            | Iso639_1::Oj => write!(f, "oj"),
579            | Iso639_1::Om => write!(f, "om"),
580            | Iso639_1::Or => write!(f, "or"),
581            | Iso639_1::Os => write!(f, "os"),
582
583            // P
584            | Iso639_1::Pa => write!(f, "pa"),
585            | Iso639_1::Pi => write!(f, "pi"),
586            | Iso639_1::Pl => write!(f, "pl"),
587            | Iso639_1::Ps => write!(f, "ps"),
588            | Iso639_1::Pt => write!(f, "pt"),
589
590            // Q
591            | Iso639_1::Qu => write!(f, "qu"),
592
593            // R
594            | Iso639_1::Rm => write!(f, "rm"),
595            | Iso639_1::Rn => write!(f, "rn"),
596            | Iso639_1::Ro => write!(f, "ro"),
597            | Iso639_1::Ru => write!(f, "ru"),
598            | Iso639_1::Rw => write!(f, "rw"),
599
600            // S
601            | Iso639_1::Sa => write!(f, "sa"),
602            | Iso639_1::Sc => write!(f, "sc"),
603            | Iso639_1::Sd => write!(f, "sd"),
604            | Iso639_1::Se => write!(f, "se"),
605            | Iso639_1::Sg => write!(f, "sg"),
606            | Iso639_1::Si => write!(f, "si"),
607            | Iso639_1::Sk => write!(f, "sk"),
608            | Iso639_1::Sl => write!(f, "sl"),
609            | Iso639_1::Sm => write!(f, "sm"),
610            | Iso639_1::Sn => write!(f, "sn"),
611            | Iso639_1::So => write!(f, "so"),
612            | Iso639_1::Sq => write!(f, "sq"),
613            | Iso639_1::Sr => write!(f, "sr"),
614            | Iso639_1::Ss => write!(f, "ss"),
615            | Iso639_1::St => write!(f, "st"),
616            | Iso639_1::Su => write!(f, "su"),
617            | Iso639_1::Sv => write!(f, "sv"),
618            | Iso639_1::Sw => write!(f, "sw"),
619
620            // T
621            | Iso639_1::Ta => write!(f, "ta"),
622            | Iso639_1::Te => write!(f, "te"),
623            | Iso639_1::Tg => write!(f, "tg"),
624            | Iso639_1::Th => write!(f, "th"),
625            | Iso639_1::Ti => write!(f, "ti"),
626            | Iso639_1::Tk => write!(f, "tk"),
627            | Iso639_1::Tl => write!(f, "tl"),
628            | Iso639_1::Tn => write!(f, "tn"),
629            | Iso639_1::To => write!(f, "to"),
630            | Iso639_1::Tr => write!(f, "tr"),
631            | Iso639_1::Ts => write!(f, "ts"),
632            | Iso639_1::Tt => write!(f, "tt"),
633            | Iso639_1::Tw => write!(f, "tw"),
634
635            // U
636            | Iso639_1::Ug => write!(f, "ug"),
637            | Iso639_1::Uk => write!(f, "uk"),
638            | Iso639_1::Ur => write!(f, "ur"),
639            | Iso639_1::Uz => write!(f, "uz"),
640
641            // V
642            | Iso639_1::Ve => write!(f, "ve"),
643            | Iso639_1::Vi => write!(f, "vi"),
644            | Iso639_1::Vo => write!(f, "vo"),
645
646            // W
647            | Iso639_1::Wa => write!(f, "wa"),
648            | Iso639_1::Wo => write!(f, "wo"),
649
650            // X
651            | Iso639_1::Xh => write!(f, "xh"),
652
653            // Y
654            | Iso639_1::Yi => write!(f, "yi"),
655            | Iso639_1::Yo => write!(f, "yo"),
656
657            // Z
658            | Iso639_1::Za => write!(f, "za"),
659            | Iso639_1::Zh => write!(f, "zh"),
660            | Iso639_1::Zu => write!(f, "zu"),
661        }
662    }
663}