1use serde::{Deserialize, Serialize};
2
3#[derive(
6 Clone,
7 Copy,
8 Debug,
9 PartialEq,
10 Eq,
11 PartialOrd,
12 Ord,
13 Hash,
14 Serialize,
15 Deserialize,
16 strum::Display,
17 strum::EnumString,
18 strum::VariantNames,
19 strum::IntoStaticStr,
20 strum::EnumCount,
21 strum::EnumIter,
22)]
23pub enum Language {
24 #[serde(rename = "aa")]
25 #[strum(to_string = "aa", serialize = "aa")]
26 Aa,
27 #[serde(rename = "ab")]
28 #[strum(to_string = "ab", serialize = "ab")]
29 Ab,
30 #[serde(rename = "af")]
31 #[strum(to_string = "af", serialize = "af")]
32 Af,
33 #[serde(rename = "ak")]
34 #[strum(to_string = "ak", serialize = "ak")]
35 Ak,
36 #[serde(rename = "am")]
37 #[strum(to_string = "am", serialize = "am")]
38 Am,
39 #[serde(rename = "an")]
40 #[strum(to_string = "an", serialize = "an")]
41 An,
42 #[serde(rename = "ar")]
43 #[strum(to_string = "ar", serialize = "ar")]
44 Ar,
45 #[serde(rename = "as")]
46 #[strum(to_string = "as", serialize = "as")]
47 As,
48 #[serde(rename = "av")]
49 #[strum(to_string = "av", serialize = "av")]
50 Av,
51 #[serde(rename = "ay")]
52 #[strum(to_string = "ay", serialize = "ay")]
53 Ay,
54 #[serde(rename = "az")]
55 #[strum(to_string = "az", serialize = "az")]
56 Az,
57 #[serde(rename = "ba")]
58 #[strum(to_string = "ba", serialize = "ba")]
59 Ba,
60 #[serde(rename = "be")]
61 #[strum(to_string = "be", serialize = "be")]
62 Be,
63 #[serde(rename = "bg")]
64 #[strum(to_string = "bg", serialize = "bg")]
65 Bg,
66 #[serde(rename = "bh")]
67 #[strum(to_string = "bh", serialize = "bh")]
68 Bh,
69 #[serde(rename = "bi")]
70 #[strum(to_string = "bi", serialize = "bi")]
71 Bi,
72 #[serde(rename = "bm")]
73 #[strum(to_string = "bm", serialize = "bm")]
74 Bm,
75 #[serde(rename = "bn")]
76 #[strum(to_string = "bn", serialize = "bn")]
77 Bn,
78 #[serde(rename = "bo")]
79 #[strum(to_string = "bo", serialize = "bo")]
80 Bo,
81 #[serde(rename = "br")]
82 #[strum(to_string = "br", serialize = "br")]
83 Br,
84 #[serde(rename = "bs")]
85 #[strum(to_string = "bs", serialize = "bs")]
86 Bs,
87 #[serde(rename = "ca")]
88 #[strum(to_string = "ca", serialize = "ca")]
89 Ca,
90 #[serde(rename = "ce")]
91 #[strum(to_string = "ce", serialize = "ce")]
92 Ce,
93 #[serde(rename = "ch")]
94 #[strum(to_string = "ch", serialize = "ch")]
95 Ch,
96 #[serde(rename = "co")]
97 #[strum(to_string = "co", serialize = "co")]
98 Co,
99 #[serde(rename = "cr")]
100 #[strum(to_string = "cr", serialize = "cr")]
101 Cr,
102 #[serde(rename = "cs")]
103 #[strum(to_string = "cs", serialize = "cs")]
104 Cs,
105 #[serde(rename = "cu")]
106 #[strum(to_string = "cu", serialize = "cu")]
107 Cu,
108 #[serde(rename = "cv")]
109 #[strum(to_string = "cv", serialize = "cv")]
110 Cv,
111 #[serde(rename = "cy")]
112 #[strum(to_string = "cy", serialize = "cy")]
113 Cy,
114 #[serde(rename = "da")]
115 #[strum(to_string = "da", serialize = "da")]
116 Da,
117 #[serde(rename = "de")]
118 #[strum(to_string = "de", serialize = "de")]
119 De,
120 #[serde(rename = "dv")]
121 #[strum(to_string = "dv", serialize = "dv")]
122 Dv,
123 #[serde(rename = "dz")]
124 #[strum(to_string = "dz", serialize = "dz")]
125 Dz,
126 #[serde(rename = "ee")]
127 #[strum(to_string = "ee", serialize = "ee")]
128 Ee,
129 #[serde(rename = "el")]
130 #[strum(to_string = "el", serialize = "el")]
131 El,
132 #[serde(rename = "en")]
133 #[strum(to_string = "en", serialize = "en")]
134 En,
135 #[serde(rename = "eo")]
136 #[strum(to_string = "eo", serialize = "eo")]
137 Eo,
138 #[serde(rename = "es")]
139 #[strum(to_string = "es", serialize = "es")]
140 Es,
141 #[serde(rename = "et")]
142 #[strum(to_string = "et", serialize = "et")]
143 Et,
144 #[serde(rename = "eu")]
145 #[strum(to_string = "eu", serialize = "eu")]
146 Eu,
147 #[serde(rename = "fa")]
148 #[strum(to_string = "fa", serialize = "fa")]
149 Fa,
150 #[serde(rename = "ff")]
151 #[strum(to_string = "ff", serialize = "ff")]
152 Ff,
153 #[serde(rename = "fi")]
154 #[strum(to_string = "fi", serialize = "fi")]
155 Fi,
156 #[serde(rename = "fj")]
157 #[strum(to_string = "fj", serialize = "fj")]
158 Fj,
159 #[serde(rename = "fo")]
160 #[strum(to_string = "fo", serialize = "fo")]
161 Fo,
162 #[serde(rename = "fr")]
163 #[strum(to_string = "fr", serialize = "fr")]
164 Fr,
165 #[serde(rename = "fy")]
166 #[strum(to_string = "fy", serialize = "fy")]
167 Fy,
168 #[serde(rename = "ga")]
169 #[strum(to_string = "ga", serialize = "ga")]
170 Ga,
171 #[serde(rename = "gd")]
172 #[strum(to_string = "gd", serialize = "gd")]
173 Gd,
174 #[serde(rename = "gl")]
175 #[strum(to_string = "gl", serialize = "gl")]
176 Gl,
177 #[serde(rename = "gn")]
178 #[strum(to_string = "gn", serialize = "gn")]
179 Gn,
180 #[serde(rename = "gu")]
181 #[strum(to_string = "gu", serialize = "gu")]
182 Gu,
183 #[serde(rename = "gv")]
184 #[strum(to_string = "gv", serialize = "gv")]
185 Gv,
186 #[serde(rename = "ha")]
187 #[strum(to_string = "ha", serialize = "ha")]
188 Ha,
189 #[serde(rename = "he")]
190 #[strum(to_string = "he", serialize = "he")]
191 He,
192 #[serde(rename = "hi")]
193 #[strum(to_string = "hi", serialize = "hi")]
194 Hi,
195 #[serde(rename = "ho")]
196 #[strum(to_string = "ho", serialize = "ho")]
197 Ho,
198 #[serde(rename = "hr")]
199 #[strum(to_string = "hr", serialize = "hr")]
200 Hr,
201 #[serde(rename = "ht")]
202 #[strum(to_string = "ht", serialize = "ht")]
203 Ht,
204 #[serde(rename = "hu")]
205 #[strum(to_string = "hu", serialize = "hu")]
206 Hu,
207 #[serde(rename = "hy")]
208 #[strum(to_string = "hy", serialize = "hy")]
209 Hy,
210 #[serde(rename = "hz")]
211 #[strum(to_string = "hz", serialize = "hz")]
212 Hz,
213 #[serde(rename = "ia")]
214 #[strum(to_string = "ia", serialize = "ia")]
215 Ia,
216 #[serde(rename = "id")]
217 #[strum(to_string = "id", serialize = "id")]
218 Id,
219 #[serde(rename = "ie")]
220 #[strum(to_string = "ie", serialize = "ie")]
221 Ie,
222 #[serde(rename = "ig")]
223 #[strum(to_string = "ig", serialize = "ig")]
224 Ig,
225 #[serde(rename = "ii")]
226 #[strum(to_string = "ii", serialize = "ii")]
227 Ii,
228 #[serde(rename = "ik")]
229 #[strum(to_string = "ik", serialize = "ik")]
230 Ik,
231 #[serde(rename = "io")]
232 #[strum(to_string = "io", serialize = "io")]
233 Io,
234 #[serde(rename = "is")]
235 #[strum(to_string = "is", serialize = "is")]
236 Is,
237 #[serde(rename = "it")]
238 #[strum(to_string = "it", serialize = "it")]
239 It,
240 #[serde(rename = "iu")]
241 #[strum(to_string = "iu", serialize = "iu")]
242 Iu,
243 #[serde(rename = "ja")]
244 #[strum(to_string = "ja", serialize = "ja")]
245 Ja,
246 #[serde(rename = "jv")]
247 #[strum(to_string = "jv", serialize = "jv")]
248 Jv,
249 #[serde(rename = "ka")]
250 #[strum(to_string = "ka", serialize = "ka")]
251 Ka,
252 #[serde(rename = "kg")]
253 #[strum(to_string = "kg", serialize = "kg")]
254 Kg,
255 #[serde(rename = "ki")]
256 #[strum(to_string = "ki", serialize = "ki")]
257 Ki,
258 #[serde(rename = "kj")]
259 #[strum(to_string = "kj", serialize = "kj")]
260 Kj,
261 #[serde(rename = "kk")]
262 #[strum(to_string = "kk", serialize = "kk")]
263 Kk,
264 #[serde(rename = "kl")]
265 #[strum(to_string = "kl", serialize = "kl")]
266 Kl,
267 #[serde(rename = "km")]
268 #[strum(to_string = "km", serialize = "km")]
269 Km,
270 #[serde(rename = "kn")]
271 #[strum(to_string = "kn", serialize = "kn")]
272 Kn,
273 #[serde(rename = "ko")]
274 #[strum(to_string = "ko", serialize = "ko")]
275 Ko,
276 #[serde(rename = "kr")]
277 #[strum(to_string = "kr", serialize = "kr")]
278 Kr,
279 #[serde(rename = "ks")]
280 #[strum(to_string = "ks", serialize = "ks")]
281 Ks,
282 #[serde(rename = "ku")]
283 #[strum(to_string = "ku", serialize = "ku")]
284 Ku,
285 #[serde(rename = "kv")]
286 #[strum(to_string = "kv", serialize = "kv")]
287 Kv,
288 #[serde(rename = "kw")]
289 #[strum(to_string = "kw", serialize = "kw")]
290 Kw,
291 #[serde(rename = "ky")]
292 #[strum(to_string = "ky", serialize = "ky")]
293 Ky,
294 #[serde(rename = "la")]
295 #[strum(to_string = "la", serialize = "la")]
296 La,
297 #[serde(rename = "lb")]
298 #[strum(to_string = "lb", serialize = "lb")]
299 Lb,
300 #[serde(rename = "lg")]
301 #[strum(to_string = "lg", serialize = "lg")]
302 Lg,
303 #[serde(rename = "li")]
304 #[strum(to_string = "li", serialize = "li")]
305 Li,
306 #[serde(rename = "ln")]
307 #[strum(to_string = "ln", serialize = "ln")]
308 Ln,
309 #[serde(rename = "lo")]
310 #[strum(to_string = "lo", serialize = "lo")]
311 Lo,
312 #[serde(rename = "lt")]
313 #[strum(to_string = "lt", serialize = "lt")]
314 Lt,
315 #[serde(rename = "lu")]
316 #[strum(to_string = "lu", serialize = "lu")]
317 Lu,
318 #[serde(rename = "lv")]
319 #[strum(to_string = "lv", serialize = "lv")]
320 Lv,
321 #[serde(rename = "mg")]
322 #[strum(to_string = "mg", serialize = "mg")]
323 Mg,
324 #[serde(rename = "mh")]
325 #[strum(to_string = "mh", serialize = "mh")]
326 Mh,
327 #[serde(rename = "mi")]
328 #[strum(to_string = "mi", serialize = "mi")]
329 Mi,
330 #[serde(rename = "mk")]
331 #[strum(to_string = "mk", serialize = "mk")]
332 Mk,
333 #[serde(rename = "ml")]
334 #[strum(to_string = "ml", serialize = "ml")]
335 Ml,
336 #[serde(rename = "mn")]
337 #[strum(to_string = "mn", serialize = "mn")]
338 Mn,
339 #[serde(rename = "mo")]
340 #[strum(to_string = "mo", serialize = "mo")]
341 Mo,
342 #[serde(rename = "mr")]
343 #[strum(to_string = "mr", serialize = "mr")]
344 Mr,
345 #[serde(rename = "ms")]
346 #[strum(to_string = "ms", serialize = "ms")]
347 Ms,
348 #[serde(rename = "mt")]
349 #[strum(to_string = "mt", serialize = "mt")]
350 Mt,
351 #[serde(rename = "my")]
352 #[strum(to_string = "my", serialize = "my")]
353 My,
354 #[serde(rename = "na")]
355 #[strum(to_string = "na", serialize = "na")]
356 Na,
357 #[serde(rename = "nb")]
358 #[strum(to_string = "nb", serialize = "nb")]
359 Nb,
360 #[serde(rename = "nd")]
361 #[strum(to_string = "nd", serialize = "nd")]
362 Nd,
363 #[serde(rename = "ne")]
364 #[strum(to_string = "ne", serialize = "ne")]
365 Ne,
366 #[serde(rename = "ng")]
367 #[strum(to_string = "ng", serialize = "ng")]
368 Ng,
369 #[serde(rename = "nl")]
370 #[strum(to_string = "nl", serialize = "nl")]
371 Nl,
372 #[serde(rename = "nn")]
373 #[strum(to_string = "nn", serialize = "nn")]
374 Nn,
375 #[serde(rename = "no")]
376 #[strum(to_string = "no", serialize = "no")]
377 No,
378 #[serde(rename = "nr")]
379 #[strum(to_string = "nr", serialize = "nr")]
380 Nr,
381 #[serde(rename = "nv")]
382 #[strum(to_string = "nv", serialize = "nv")]
383 Nv,
384 #[serde(rename = "ny")]
385 #[strum(to_string = "ny", serialize = "ny")]
386 Ny,
387 #[serde(rename = "oc")]
388 #[strum(to_string = "oc", serialize = "oc")]
389 Oc,
390 #[serde(rename = "oj")]
391 #[strum(to_string = "oj", serialize = "oj")]
392 Oj,
393 #[serde(rename = "om")]
394 #[strum(to_string = "om", serialize = "om")]
395 Om,
396 #[serde(rename = "or")]
397 #[strum(to_string = "or", serialize = "or")]
398 Or,
399 #[serde(rename = "os")]
400 #[strum(to_string = "os", serialize = "os")]
401 Os,
402 #[serde(rename = "pa")]
403 #[strum(to_string = "pa", serialize = "pa")]
404 Pa,
405 #[serde(rename = "pi")]
406 #[strum(to_string = "pi", serialize = "pi")]
407 Pi,
408 #[serde(rename = "pl")]
409 #[strum(to_string = "pl", serialize = "pl")]
410 Pl,
411 #[serde(rename = "ps")]
412 #[strum(to_string = "ps", serialize = "ps")]
413 Ps,
414 #[serde(rename = "pt")]
415 #[strum(to_string = "pt", serialize = "pt")]
416 Pt,
417 #[serde(rename = "qu")]
418 #[strum(to_string = "qu", serialize = "qu")]
419 Qu,
420 #[serde(rename = "rm")]
421 #[strum(to_string = "rm", serialize = "rm")]
422 Rm,
423 #[serde(rename = "rn")]
424 #[strum(to_string = "rn", serialize = "rn")]
425 Rn,
426 #[serde(rename = "ro")]
427 #[strum(to_string = "ro", serialize = "ro")]
428 Ro,
429 #[serde(rename = "ru")]
430 #[strum(to_string = "ru", serialize = "ru")]
431 Ru,
432 #[serde(rename = "rw")]
433 #[strum(to_string = "rw", serialize = "rw")]
434 Rw,
435 #[serde(rename = "sa")]
436 #[strum(to_string = "sa", serialize = "sa")]
437 Sa,
438 #[serde(rename = "sc")]
439 #[strum(to_string = "sc", serialize = "sc")]
440 Sc,
441 #[serde(rename = "sd")]
442 #[strum(to_string = "sd", serialize = "sd")]
443 Sd,
444 #[serde(rename = "se")]
445 #[strum(to_string = "se", serialize = "se")]
446 Se,
447 #[serde(rename = "sg")]
448 #[strum(to_string = "sg", serialize = "sg")]
449 Sg,
450 #[serde(rename = "sh")]
451 #[strum(to_string = "sh", serialize = "sh")]
452 Sh,
453 #[serde(rename = "si")]
454 #[strum(to_string = "si", serialize = "si")]
455 Si,
456 #[serde(rename = "sk")]
457 #[strum(to_string = "sk", serialize = "sk")]
458 Sk,
459 #[serde(rename = "sl")]
460 #[strum(to_string = "sl", serialize = "sl")]
461 Sl,
462 #[serde(rename = "sm")]
463 #[strum(to_string = "sm", serialize = "sm")]
464 Sm,
465 #[serde(rename = "sn")]
466 #[strum(to_string = "sn", serialize = "sn")]
467 Sn,
468 #[serde(rename = "so")]
469 #[strum(to_string = "so", serialize = "so")]
470 So,
471 #[serde(rename = "sq")]
472 #[strum(to_string = "sq", serialize = "sq")]
473 Sq,
474 #[serde(rename = "sr")]
475 #[strum(to_string = "sr", serialize = "sr")]
476 Sr,
477 #[serde(rename = "ss")]
478 #[strum(to_string = "ss", serialize = "ss")]
479 Ss,
480 #[serde(rename = "st")]
481 #[strum(to_string = "st", serialize = "st")]
482 St,
483 #[serde(rename = "su")]
484 #[strum(to_string = "su", serialize = "su")]
485 Su,
486 #[serde(rename = "sv")]
487 #[strum(to_string = "sv", serialize = "sv")]
488 Sv,
489 #[serde(rename = "sw")]
490 #[strum(to_string = "sw", serialize = "sw")]
491 Sw,
492 #[serde(rename = "ta")]
493 #[strum(to_string = "ta", serialize = "ta")]
494 Ta,
495 #[serde(rename = "te")]
496 #[strum(to_string = "te", serialize = "te")]
497 Te,
498 #[serde(rename = "tg")]
499 #[strum(to_string = "tg", serialize = "tg")]
500 Tg,
501 #[serde(rename = "th")]
502 #[strum(to_string = "th", serialize = "th")]
503 Th,
504 #[serde(rename = "ti")]
505 #[strum(to_string = "ti", serialize = "ti")]
506 Ti,
507 #[serde(rename = "tk")]
508 #[strum(to_string = "tk", serialize = "tk")]
509 Tk,
510 #[serde(rename = "tl")]
511 #[strum(to_string = "tl", serialize = "tl")]
512 Tl,
513 #[serde(rename = "tn")]
514 #[strum(to_string = "tn", serialize = "tn")]
515 Tn,
516 #[serde(rename = "to")]
517 #[strum(to_string = "to", serialize = "to")]
518 To,
519 #[serde(rename = "tr")]
520 #[strum(to_string = "tr", serialize = "tr")]
521 Tr,
522 #[serde(rename = "ts")]
523 #[strum(to_string = "ts", serialize = "ts")]
524 Ts,
525 #[serde(rename = "tt")]
526 #[strum(to_string = "tt", serialize = "tt")]
527 Tt,
528 #[serde(rename = "tw")]
529 #[strum(to_string = "tw", serialize = "tw")]
530 Tw,
531 #[serde(rename = "ty")]
532 #[strum(to_string = "ty", serialize = "ty")]
533 Ty,
534 #[serde(rename = "ug")]
535 #[strum(to_string = "ug", serialize = "ug")]
536 Ug,
537 #[serde(rename = "uk")]
538 #[strum(to_string = "uk", serialize = "uk")]
539 Uk,
540 #[serde(rename = "ur")]
541 #[strum(to_string = "ur", serialize = "ur")]
542 Ur,
543 #[serde(rename = "uz")]
544 #[strum(to_string = "uz", serialize = "uz")]
545 Uz,
546 #[serde(rename = "ve")]
547 #[strum(to_string = "ve", serialize = "ve")]
548 Ve,
549 #[serde(rename = "vi")]
550 #[strum(to_string = "vi", serialize = "vi")]
551 Vi,
552 #[serde(rename = "vo")]
553 #[strum(to_string = "vo", serialize = "vo")]
554 Vo,
555 #[serde(rename = "wa")]
556 #[strum(to_string = "wa", serialize = "wa")]
557 Wa,
558 #[serde(rename = "wo")]
559 #[strum(to_string = "wo", serialize = "wo")]
560 Wo,
561 #[serde(rename = "xh")]
562 #[strum(to_string = "xh", serialize = "xh")]
563 Xh,
564 #[serde(rename = "yi")]
565 #[strum(to_string = "yi", serialize = "yi")]
566 Yi,
567 #[serde(rename = "yo")]
568 #[strum(to_string = "yo", serialize = "yo")]
569 Yo,
570 #[serde(rename = "za")]
571 #[strum(to_string = "za", serialize = "za")]
572 Za,
573 #[serde(rename = "zh")]
574 #[strum(to_string = "zh", serialize = "zh")]
575 Zh,
576 #[serde(rename = "zu")]
577 #[strum(to_string = "zu", serialize = "zu")]
578 Zu,
579}
580
581impl Language {
582 #[must_use]
583 pub fn iter() -> <Self as strum::IntoEnumIterator>::Iterator {
584 <Self as strum::IntoEnumIterator>::iter()
585 }
586
587 #[must_use]
588 pub fn code(&self) -> &'static str {
589 serde_variant::to_variant_name(self).unwrap_or_else(|_| self.into())
590 }
591
592 #[allow(clippy::too_many_lines)]
593 #[must_use]
594 pub fn name(&self) -> &'static str {
595 match self {
597 Language::Aa => "Afar",
598 Language::Ab => "Abkhazian",
599 Language::Af => "Afrikaans",
600 Language::Ak => "Akan",
601 Language::Am => "Amharic",
602 Language::An => "Aragonese",
603 Language::Ar => "Arabic",
604 Language::As => "Assamese",
605 Language::Av => "Avar",
606 Language::Ay => "Aymara",
607 Language::Az => "Azerbaijani",
608 Language::Ba => "Bashkir",
609 Language::Be => "Belarusian",
610 Language::Bg => "Bulgarian",
611 Language::Bh => "Bihari",
612 Language::Bi => "Bislama",
613 Language::Bm => "Bambara",
614 Language::Bn => "Bengali",
615 Language::Bo => "Tibetan",
616 Language::Br => "Breton",
617 Language::Bs => "Bosnian",
618 Language::Ca => "Catalan",
619 Language::Ce => "Chechen",
620 Language::Ch => "Chamorro",
621 Language::Co => "Corsican",
622 Language::Cr => "Cree",
623 Language::Cs => "Czech",
624 Language::Cu => "Old Church Slavonic / Old Bulgarian",
625 Language::Cv => "Chuvash",
626 Language::Cy => "Welsh",
627 Language::Da => "Danish",
628 Language::De => "German",
629 Language::Dv => "Divehi",
630 Language::Dz => "Dzongkha",
631 Language::Ee => "Ewe",
632 Language::El => "Greek",
633 Language::En => "English",
634 Language::Eo => "Esperanto",
635 Language::Es => "Spanish",
636 Language::Et => "Estonian",
637 Language::Eu => "Basque",
638 Language::Fa => "Persian",
639 Language::Ff => "Peul",
640 Language::Fi => "Finnish",
641 Language::Fj => "Fijian",
642 Language::Fo => "Faroese",
643 Language::Fr => "French",
644 Language::Fy => "West Frisian",
645 Language::Ga => "Irish",
646 Language::Gd => "Scottish Gaelic",
647 Language::Gl => "Galician",
648 Language::Gn => "Guarani",
649 Language::Gu => "Gujarati",
650 Language::Gv => "Manx",
651 Language::Ha => "Hausa",
652 Language::He => "Hebrew",
653 Language::Hi => "Hindi",
654 Language::Ho => "Hiri Motu",
655 Language::Hr => "Croatian",
656 Language::Ht => "Haitian",
657 Language::Hu => "Hungarian",
658 Language::Hy => "Armenian",
659 Language::Hz => "Herero",
660 Language::Ia => "Interlingua",
661 Language::Id => "Indonesian",
662 Language::Ie => "Interlingue",
663 Language::Ig => "Igbo",
664 Language::Ii => "Sichuan Yi",
665 Language::Ik => "Inupiak",
666 Language::Io => "Ido",
667 Language::Is => "Icelandic",
668 Language::It => "Italian",
669 Language::Iu => "Inuktitut",
670 Language::Ja => "Japanese",
671 Language::Jv => "Javanese",
672 Language::Ka => "Georgian",
673 Language::Kg => "Kongo",
674 Language::Ki => "Kikuyu",
675 Language::Kj => "Kuanyama",
676 Language::Kk => "Kazakh",
677 Language::Kl => "Greenlandic",
678 Language::Km => "Cambodian",
679 Language::Kn => "Kannada",
680 Language::Ko => "Korean",
681 Language::Kr => "Kanuri",
682 Language::Ks => "Kashmiri",
683 Language::Ku => "Kurdish",
684 Language::Kv => "Komi",
685 Language::Kw => "Cornish",
686 Language::Ky => "Kirghiz",
687 Language::La => "Latin",
688 Language::Lb => "Luxembourgish",
689 Language::Lg => "Ganda",
690 Language::Li => "Limburgian",
691 Language::Ln => "Lingala",
692 Language::Lo => "Laotian",
693 Language::Lt => "Lithuanian",
694 Language::Lu => "Luba-Katanga",
695 Language::Lv => "Latvian",
696 Language::Mg => "Malagasy",
697 Language::Mh => "Marshallese",
698 Language::Mi => "Maori",
699 Language::Mk => "Macedonian",
700 Language::Ml => "Malayalam",
701 Language::Mn => "Mongolian",
702 Language::Mo => "Moldovan",
703 Language::Mr => "Marathi",
704 Language::Ms => "Malay",
705 Language::Mt => "Maltese",
706 Language::My => "Burmese",
707 Language::Na => "Nauruan",
708 Language::Nb => "Norwegian Bokmål",
709 Language::Nd => "North Ndebele",
710 Language::Ne => "Nepali",
711 Language::Ng => "Ndonga",
712 Language::Nl => "Dutch",
713 Language::Nn => "Norwegian Nynorsk",
714 Language::No => "Norwegian",
715 Language::Nr => "South Ndebele",
716 Language::Nv => "Navajo",
717 Language::Ny => "Chichewa",
718 Language::Oc => "Occitan",
719 Language::Oj => "Ojibwa",
720 Language::Om => "Oromo",
721 Language::Or => "Oriya",
722 Language::Os => "Ossetian / Ossetic",
723 Language::Pa => "Panjabi / Punjabi",
724 Language::Pi => "Pali",
725 Language::Pl => "Polish",
726 Language::Ps => "Pashto",
727 Language::Pt => "Portuguese",
728 Language::Qu => "Quechua",
729 Language::Rm => "Raeto Romance",
730 Language::Rn => "Kirundi",
731 Language::Ro => "Romanian",
732 Language::Ru => "Russian",
733 Language::Rw => "Rwandi",
734 Language::Sa => "Sanskrit",
735 Language::Sc => "Sardinian",
736 Language::Sd => "Sindhi",
737 Language::Se => "Northern Sami",
738 Language::Sg => "Sango",
739 Language::Sh => "Serbo-Croatian",
740 Language::Si => "Sinhalese",
741 Language::Sk => "Slovak",
742 Language::Sl => "Slovenian",
743 Language::Sm => "Samoan",
744 Language::Sn => "Shona",
745 Language::So => "Somalia",
746 Language::Sq => "Albanian",
747 Language::Sr => "Serbian",
748 Language::Ss => "Swati",
749 Language::St => "Southern Sotho",
750 Language::Su => "Sundanese",
751 Language::Sv => "Swedish",
752 Language::Sw => "Swahili",
753 Language::Ta => "Tamil",
754 Language::Te => "Telugu",
755 Language::Tg => "Tajik",
756 Language::Th => "Thai",
757 Language::Ti => "Tigrinya",
758 Language::Tk => "Turkmen",
759 Language::Tl => "Tagalog / Filipino",
760 Language::Tn => "Tswana",
761 Language::To => "Tonga",
762 Language::Tr => "Turkish",
763 Language::Ts => "Tsonga",
764 Language::Tt => "Tatar",
765 Language::Tw => "Twi",
766 Language::Ty => "Tahitian",
767 Language::Ug => "Uyghur",
768 Language::Uk => "Ukrainian",
769 Language::Ur => "Urdu",
770 Language::Uz => "Uzbek",
771 Language::Ve => "Venda",
772 Language::Vi => "Vietnamese",
773 Language::Vo => "Volapük",
774 Language::Wa => "Walloon",
775 Language::Wo => "Wolof",
776 Language::Xh => "Xhosa",
777 Language::Yi => "Yiddish",
778 Language::Yo => "Yoruba",
779 Language::Za => "Zhuang",
780 Language::Zh => "Chinese",
781 Language::Zu => "Zulu",
782 }
783 }
784}
785
786#[cfg(test)]
787mod tests {
788 use super::Language;
789 use color_eyre::eyre;
790 use similar_asserts::assert_eq as sim_assert_eq;
791
792 #[test]
793 fn test_code() -> eyre::Result<()> {
794 use std::str::FromStr;
795 crate::tests::init();
796
797 for language in Language::iter() {
798 sim_assert_eq!(have: format!("{language}"), want: language.code());
799 sim_assert_eq!(have: language.to_string(), want: language.code());
800 sim_assert_eq!(have: Language::try_from(language.code()).ok(), want: Some(language));
801 sim_assert_eq!(have: Language::from_str(language.code()).ok(), want: Some(language));
802 sim_assert_eq!(
803 have: serde_json::to_value(language)?.as_str(),
804 want: Some(language.code())
805 );
806 }
807
808 Ok(())
809 }
810}