1use serde::{Deserialize, Serialize};
2use std::fmt;
3use std::str::FromStr;
4use uuid::Uuid;
5
6use crate::errors::ThothError;
7#[cfg(feature = "backend")]
8use crate::schema::language;
9
10#[cfg_attr(feature = "backend", derive(DbEnum, juniper::GraphQLEnum))]
11#[cfg_attr(feature = "backend", DieselType = "Language_relation")]
12#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
13#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
14pub enum LanguageRelation {
15 Original,
16 #[cfg_attr(feature = "backend", db_rename = "translated-from")]
17 TranslatedFrom,
18 #[cfg_attr(feature = "backend", db_rename = "translated-into")]
19 TranslatedInto,
20}
21
22#[cfg_attr(feature = "backend", derive(Queryable))]
23pub struct Language {
24 pub language_id: Uuid,
25 pub work_id: Uuid,
26 pub language_code: LanguageCode,
27 pub language_relation: LanguageRelation,
28 pub main_language: bool,
29}
30
31#[cfg_attr(
32 feature = "backend",
33 derive(juniper::GraphQLInputObject, Insertable),
34 table_name = "language"
35)]
36pub struct NewLanguage {
37 pub work_id: Uuid,
38 pub language_code: LanguageCode,
39 pub language_relation: LanguageRelation,
40 pub main_language: bool,
41}
42
43#[cfg_attr(
44 feature = "backend",
45 derive(juniper::GraphQLInputObject, AsChangeset),
46 changeset_options(treat_none_as_null = "true"),
47 table_name = "language"
48)]
49pub struct PatchLanguage {
50 pub language_id: Uuid,
51 pub work_id: Uuid,
52 pub language_code: LanguageCode,
53 pub language_relation: LanguageRelation,
54 pub main_language: bool,
55}
56
57#[cfg_attr(feature = "backend", derive(DbEnum, juniper::GraphQLEnum))]
58#[cfg_attr(feature = "backend", DieselType = "Language_code")]
59#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
60#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
61pub enum LanguageCode {
62 Aar,
63 Abk,
64 Ace,
65 Ach,
66 Ada,
67 Ady,
68 Afa,
69 Afh,
70 Afr,
71 Ain,
72 Aka,
73 Akk,
74 Alb,
75 Ale,
76 Alg,
77 Alt,
78 Amh,
79 Ang,
80 Anp,
81 Apa,
82 Ara,
83 Arc,
84 Arg,
85 Arm,
86 Arn,
87 Arp,
88 Art,
89 Arw,
90 Asm,
91 Ast,
92 Ath,
93 Aus,
94 Ava,
95 Ave,
96 Awa,
97 Aym,
98 Aze,
99 Bad,
100 Bai,
101 Bak,
102 Bal,
103 Bam,
104 Ban,
105 Baq,
106 Bas,
107 Bat,
108 Bej,
109 Bel,
110 Bem,
111 Ben,
112 Ber,
113 Bho,
114 Bih,
115 Bik,
116 Bin,
117 Bis,
118 Bla,
119 Bnt,
120 Bos,
121 Bra,
122 Bre,
123 Btk,
124 Bua,
125 Bug,
126 Bul,
127 Bur,
128 Byn,
129 Cad,
130 Cai,
131 Car,
132 Cat,
133 Cau,
134 Ceb,
135 Cel,
136 Cha,
137 Chb,
138 Che,
139 Chg,
140 Chi,
141 Chk,
142 Chm,
143 Chn,
144 Cho,
145 Chp,
146 Chr,
147 Chu,
148 Chv,
149 Chy,
150 Cmc,
151 Cnr,
152 Cop,
153 Cor,
154 Cos,
155 Cpe,
156 Cpf,
157 Cpp,
158 Cre,
159 Crh,
160 Crp,
161 Csb,
162 Cus,
163 Cze,
164 Dak,
165 Dan,
166 Dar,
167 Day,
168 Del,
169 Den,
170 Dgr,
171 Din,
172 Div,
173 Doi,
174 Dra,
175 Dsb,
176 Dua,
177 Dum,
178 Dut,
179 Dyu,
180 Dzo,
181 Efi,
182 Egy,
183 Eka,
184 Elx,
185 Eng,
186 Enm,
187 Epo,
188 Est,
189 Ewe,
190 Ewo,
191 Fan,
192 Fao,
193 Fat,
194 Fij,
195 Fil,
196 Fin,
197 Fiu,
198 Fon,
199 Fre,
200 Frm,
201 Fro,
202 Frr,
203 Frs,
204 Fry,
205 Ful,
206 Fur,
207 Gaa,
208 Gay,
209 Gba,
210 Gem,
211 Geo,
212 Ger,
213 Gez,
214 Gil,
215 Gla,
216 Gle,
217 Glg,
218 Glv,
219 Gmh,
220 Goh,
221 Gon,
222 Gor,
223 Got,
224 Grb,
225 Grc,
226 Gre,
227 Grn,
228 Gsw,
229 Guj,
230 Gwi,
231 Hai,
232 Hat,
233 Hau,
234 Haw,
235 Heb,
236 Her,
237 Hil,
238 Him,
239 Hin,
240 Hit,
241 Hmn,
242 Hmo,
243 Hrv,
244 Hsb,
245 Hun,
246 Hup,
247 Iba,
248 Ibo,
249 Ice,
250 Ido,
251 Iii,
252 Ijo,
253 Iku,
254 Ile,
255 Ilo,
256 Ina,
257 Inc,
258 Ind,
259 Ine,
260 Inh,
261 Ipk,
262 Ira,
263 Iro,
264 Ita,
265 Jav,
266 Jbo,
267 Jpn,
268 Jpr,
269 Jrb,
270 Kaa,
271 Kab,
272 Kac,
273 Kal,
274 Kam,
275 Kan,
276 Kar,
277 Kas,
278 Kau,
279 Kaw,
280 Kaz,
281 Kbd,
282 Kha,
283 Khi,
284 Khm,
285 Kho,
286 Kik,
287 Kin,
288 Kir,
289 Kmb,
290 Kok,
291 Kom,
292 Kon,
293 Kor,
294 Kos,
295 Kpe,
296 Krc,
297 Krl,
298 Kro,
299 Kru,
300 Kua,
301 Kum,
302 Kur,
303 Kut,
304 Lad,
305 Lah,
306 Lam,
307 Lao,
308 Lat,
309 Lav,
310 Lez,
311 Lim,
312 Lin,
313 Lit,
314 Lol,
315 Loz,
316 Ltz,
317 Lua,
318 Lub,
319 Lug,
320 Lui,
321 Lun,
322 Luo,
323 Lus,
324 Mac,
325 Mad,
326 Mag,
327 Mah,
328 Mai,
329 Mak,
330 Mal,
331 Man,
332 Mao,
333 Map,
334 Mar,
335 Mas,
336 May,
337 Mdf,
338 Mdr,
339 Men,
340 Mga,
341 Mic,
342 Min,
343 Mis,
344 Mkh,
345 Mlg,
346 Mlt,
347 Mnc,
348 Mni,
349 Mno,
350 Moh,
351 Mon,
352 Mos,
353 Mul,
354 Mun,
355 Mus,
356 Mwl,
357 Mwr,
358 Myn,
359 Myv,
360 Nah,
361 Nai,
362 Nap,
363 Nau,
364 Nav,
365 Nbl,
366 Nde,
367 Ndo,
368 Nds,
369 Nep,
370 New,
371 Nia,
372 Nic,
373 Niu,
374 Nno,
375 Nob,
376 Nog,
377 Non,
378 Nor,
379 Nqo,
380 Nso,
381 Nub,
382 Nwc,
383 Nya,
384 Nym,
385 Nyn,
386 Nyo,
387 Nzi,
388 Oci,
389 Oji,
390 Ori,
391 Orm,
392 Osa,
393 Oss,
394 Ota,
395 Oto,
396 Paa,
397 Pag,
398 Pal,
399 Pam,
400 Pan,
401 Pap,
402 Pau,
403 Peo,
404 Per,
405 Phi,
406 Phn,
407 Pli,
408 Pol,
409 Pon,
410 Por,
411 Pra,
412 Pro,
413 Pus,
414 Qaa,
415 Que,
416 Raj,
417 Rap,
418 Rar,
419 Roa,
420 Roh,
421 Rom,
422 Rum,
423 Run,
424 Rup,
425 Rus,
426 Sad,
427 Sag,
428 Sah,
429 Sai,
430 Sal,
431 Sam,
432 San,
433 Sas,
434 Sat,
435 Scn,
436 Sco,
437 Sel,
438 Sem,
439 Sga,
440 Sgn,
441 Shn,
442 Sid,
443 Sin,
444 Sio,
445 Sit,
446 Sla,
447 Slo,
448 Slv,
449 Sma,
450 Sme,
451 Smi,
452 Smj,
453 Smn,
454 Smo,
455 Sms,
456 Sna,
457 Snd,
458 Snk,
459 Sog,
460 Som,
461 Son,
462 Sot,
463 Spa,
464 Srd,
465 Srn,
466 Srp,
467 Srr,
468 Ssa,
469 Ssw,
470 Suk,
471 Sun,
472 Sus,
473 Sux,
474 Swa,
475 Swe,
476 Syc,
477 Syr,
478 Tah,
479 Tai,
480 Tam,
481 Tat,
482 Tel,
483 Tem,
484 Ter,
485 Tet,
486 Tgk,
487 Tgl,
488 Tha,
489 Tib,
490 Tig,
491 Tir,
492 Tiv,
493 Tkl,
494 Tlh,
495 Tli,
496 Tmh,
497 Tog,
498 Ton,
499 Tpi,
500 Tsi,
501 Tsn,
502 Tso,
503 Tuk,
504 Tum,
505 Tup,
506 Tur,
507 Tut,
508 Tvl,
509 Twi,
510 Tyv,
511 Udm,
512 Uga,
513 Uig,
514 Ukr,
515 Umb,
516 Und,
517 Urd,
518 Uzb,
519 Vai,
520 Ven,
521 Vie,
522 Vol,
523 Vot,
524 Wak,
525 Wal,
526 War,
527 Was,
528 Wel,
529 Wen,
530 Wln,
531 Wol,
532 Xal,
533 Xho,
534 Yao,
535 Yap,
536 Yid,
537 Yor,
538 Ypk,
539 Zap,
540 Zbl,
541 Zen,
542 Zgh,
543 Zha,
544 Znd,
545 Zul,
546 Zun,
547 Zxx,
548 Zza,
549}
550
551impl Default for LanguageCode {
552 fn default() -> LanguageCode {
553 LanguageCode::Eng
554 }
555}
556
557impl Default for LanguageRelation {
558 fn default() -> LanguageRelation {
559 LanguageRelation::Original
560 }
561}
562
563impl fmt::Display for LanguageRelation {
564 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
565 match self {
566 LanguageRelation::Original => write!(f, "Original"),
567 LanguageRelation::TranslatedFrom => write!(f, "Translated From"),
568 LanguageRelation::TranslatedInto => write!(f, "Translated Into"),
569 }
570 }
571}
572
573impl fmt::Display for LanguageCode {
574 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
575 match self {
576 LanguageCode::Aar => write!(f, "AAR"),
577 LanguageCode::Abk => write!(f, "ABK"),
578 LanguageCode::Ace => write!(f, "ACE"),
579 LanguageCode::Ach => write!(f, "ACH"),
580 LanguageCode::Ada => write!(f, "ADA"),
581 LanguageCode::Ady => write!(f, "ADY"),
582 LanguageCode::Afa => write!(f, "AFA"),
583 LanguageCode::Afh => write!(f, "AFH"),
584 LanguageCode::Afr => write!(f, "AFR"),
585 LanguageCode::Ain => write!(f, "AIN"),
586 LanguageCode::Aka => write!(f, "AKA"),
587 LanguageCode::Akk => write!(f, "AKK"),
588 LanguageCode::Alb => write!(f, "ALB"),
589 LanguageCode::Ale => write!(f, "ALE"),
590 LanguageCode::Alg => write!(f, "ALG"),
591 LanguageCode::Alt => write!(f, "ALT"),
592 LanguageCode::Amh => write!(f, "AMH"),
593 LanguageCode::Ang => write!(f, "ANG"),
594 LanguageCode::Anp => write!(f, "ANP"),
595 LanguageCode::Apa => write!(f, "APA"),
596 LanguageCode::Ara => write!(f, "ARA"),
597 LanguageCode::Arc => write!(f, "ARC"),
598 LanguageCode::Arg => write!(f, "ARG"),
599 LanguageCode::Arm => write!(f, "ARM"),
600 LanguageCode::Arn => write!(f, "ARN"),
601 LanguageCode::Arp => write!(f, "ARP"),
602 LanguageCode::Art => write!(f, "ART"),
603 LanguageCode::Arw => write!(f, "ARW"),
604 LanguageCode::Asm => write!(f, "ASM"),
605 LanguageCode::Ast => write!(f, "AST"),
606 LanguageCode::Ath => write!(f, "ATH"),
607 LanguageCode::Aus => write!(f, "AUS"),
608 LanguageCode::Ava => write!(f, "AVA"),
609 LanguageCode::Ave => write!(f, "AVE"),
610 LanguageCode::Awa => write!(f, "AWA"),
611 LanguageCode::Aym => write!(f, "AYM"),
612 LanguageCode::Aze => write!(f, "AZE"),
613 LanguageCode::Bad => write!(f, "BAD"),
614 LanguageCode::Bai => write!(f, "BAI"),
615 LanguageCode::Bak => write!(f, "BAK"),
616 LanguageCode::Bal => write!(f, "BAL"),
617 LanguageCode::Bam => write!(f, "BAM"),
618 LanguageCode::Ban => write!(f, "BAN"),
619 LanguageCode::Baq => write!(f, "BAQ"),
620 LanguageCode::Bas => write!(f, "BAS"),
621 LanguageCode::Bat => write!(f, "BAT"),
622 LanguageCode::Bej => write!(f, "BEJ"),
623 LanguageCode::Bel => write!(f, "BEL"),
624 LanguageCode::Bem => write!(f, "BEM"),
625 LanguageCode::Ben => write!(f, "BEN"),
626 LanguageCode::Ber => write!(f, "BER"),
627 LanguageCode::Bho => write!(f, "BHO"),
628 LanguageCode::Bih => write!(f, "BIH"),
629 LanguageCode::Bik => write!(f, "BIK"),
630 LanguageCode::Bin => write!(f, "BIN"),
631 LanguageCode::Bis => write!(f, "BIS"),
632 LanguageCode::Bla => write!(f, "BLA"),
633 LanguageCode::Bnt => write!(f, "BNT"),
634 LanguageCode::Bos => write!(f, "BOS"),
635 LanguageCode::Bra => write!(f, "BRA"),
636 LanguageCode::Bre => write!(f, "BRE"),
637 LanguageCode::Btk => write!(f, "BTK"),
638 LanguageCode::Bua => write!(f, "BUA"),
639 LanguageCode::Bug => write!(f, "BUG"),
640 LanguageCode::Bul => write!(f, "BUL"),
641 LanguageCode::Bur => write!(f, "BUR"),
642 LanguageCode::Byn => write!(f, "BYN"),
643 LanguageCode::Cad => write!(f, "CAD"),
644 LanguageCode::Cai => write!(f, "CAI"),
645 LanguageCode::Car => write!(f, "CAR"),
646 LanguageCode::Cat => write!(f, "CAT"),
647 LanguageCode::Cau => write!(f, "CAU"),
648 LanguageCode::Ceb => write!(f, "CEB"),
649 LanguageCode::Cel => write!(f, "CEL"),
650 LanguageCode::Cha => write!(f, "CHA"),
651 LanguageCode::Chb => write!(f, "CHB"),
652 LanguageCode::Che => write!(f, "CHE"),
653 LanguageCode::Chg => write!(f, "CHG"),
654 LanguageCode::Chi => write!(f, "CHI"),
655 LanguageCode::Chk => write!(f, "CHK"),
656 LanguageCode::Chm => write!(f, "CHM"),
657 LanguageCode::Chn => write!(f, "CHN"),
658 LanguageCode::Cho => write!(f, "CHO"),
659 LanguageCode::Chp => write!(f, "CHP"),
660 LanguageCode::Chr => write!(f, "CHR"),
661 LanguageCode::Chu => write!(f, "CHU"),
662 LanguageCode::Chv => write!(f, "CHV"),
663 LanguageCode::Chy => write!(f, "CHY"),
664 LanguageCode::Cmc => write!(f, "CMC"),
665 LanguageCode::Cnr => write!(f, "CNR"),
666 LanguageCode::Cop => write!(f, "COP"),
667 LanguageCode::Cor => write!(f, "COR"),
668 LanguageCode::Cos => write!(f, "COS"),
669 LanguageCode::Cpe => write!(f, "CPE"),
670 LanguageCode::Cpf => write!(f, "CPF"),
671 LanguageCode::Cpp => write!(f, "CPP"),
672 LanguageCode::Cre => write!(f, "CRE"),
673 LanguageCode::Crh => write!(f, "CRH"),
674 LanguageCode::Crp => write!(f, "CRP"),
675 LanguageCode::Csb => write!(f, "CSB"),
676 LanguageCode::Cus => write!(f, "CUS"),
677 LanguageCode::Cze => write!(f, "CZE"),
678 LanguageCode::Dak => write!(f, "DAK"),
679 LanguageCode::Dan => write!(f, "DAN"),
680 LanguageCode::Dar => write!(f, "DAR"),
681 LanguageCode::Day => write!(f, "DAY"),
682 LanguageCode::Del => write!(f, "DEL"),
683 LanguageCode::Den => write!(f, "DEN"),
684 LanguageCode::Dgr => write!(f, "DGR"),
685 LanguageCode::Din => write!(f, "DIN"),
686 LanguageCode::Div => write!(f, "DIV"),
687 LanguageCode::Doi => write!(f, "DOI"),
688 LanguageCode::Dra => write!(f, "DRA"),
689 LanguageCode::Dsb => write!(f, "DSB"),
690 LanguageCode::Dua => write!(f, "DUA"),
691 LanguageCode::Dum => write!(f, "DUM"),
692 LanguageCode::Dut => write!(f, "DUT"),
693 LanguageCode::Dyu => write!(f, "DYU"),
694 LanguageCode::Dzo => write!(f, "DZO"),
695 LanguageCode::Efi => write!(f, "EFI"),
696 LanguageCode::Egy => write!(f, "EGY"),
697 LanguageCode::Eka => write!(f, "EKA"),
698 LanguageCode::Elx => write!(f, "ELX"),
699 LanguageCode::Eng => write!(f, "ENG"),
700 LanguageCode::Enm => write!(f, "ENM"),
701 LanguageCode::Epo => write!(f, "EPO"),
702 LanguageCode::Est => write!(f, "EST"),
703 LanguageCode::Ewe => write!(f, "EWE"),
704 LanguageCode::Ewo => write!(f, "EWO"),
705 LanguageCode::Fan => write!(f, "FAN"),
706 LanguageCode::Fao => write!(f, "FAO"),
707 LanguageCode::Fat => write!(f, "FAT"),
708 LanguageCode::Fij => write!(f, "FIJ"),
709 LanguageCode::Fil => write!(f, "FIL"),
710 LanguageCode::Fin => write!(f, "FIN"),
711 LanguageCode::Fiu => write!(f, "FIU"),
712 LanguageCode::Fon => write!(f, "FON"),
713 LanguageCode::Fre => write!(f, "FRE"),
714 LanguageCode::Frm => write!(f, "FRM"),
715 LanguageCode::Fro => write!(f, "FRO"),
716 LanguageCode::Frr => write!(f, "FRR"),
717 LanguageCode::Frs => write!(f, "FRS"),
718 LanguageCode::Fry => write!(f, "FRY"),
719 LanguageCode::Ful => write!(f, "FUL"),
720 LanguageCode::Fur => write!(f, "FUR"),
721 LanguageCode::Gaa => write!(f, "GAA"),
722 LanguageCode::Gay => write!(f, "GAY"),
723 LanguageCode::Gba => write!(f, "GBA"),
724 LanguageCode::Gem => write!(f, "GEM"),
725 LanguageCode::Geo => write!(f, "GEO"),
726 LanguageCode::Ger => write!(f, "GER"),
727 LanguageCode::Gez => write!(f, "GEZ"),
728 LanguageCode::Gil => write!(f, "GIL"),
729 LanguageCode::Gla => write!(f, "GLA"),
730 LanguageCode::Gle => write!(f, "GLE"),
731 LanguageCode::Glg => write!(f, "GLG"),
732 LanguageCode::Glv => write!(f, "GLV"),
733 LanguageCode::Gmh => write!(f, "GMH"),
734 LanguageCode::Goh => write!(f, "GOH"),
735 LanguageCode::Gon => write!(f, "GON"),
736 LanguageCode::Gor => write!(f, "GOR"),
737 LanguageCode::Got => write!(f, "GOT"),
738 LanguageCode::Grb => write!(f, "GRB"),
739 LanguageCode::Grc => write!(f, "GRC"),
740 LanguageCode::Gre => write!(f, "GRE"),
741 LanguageCode::Grn => write!(f, "GRN"),
742 LanguageCode::Gsw => write!(f, "GSW"),
743 LanguageCode::Guj => write!(f, "GUJ"),
744 LanguageCode::Gwi => write!(f, "GWI"),
745 LanguageCode::Hai => write!(f, "HAI"),
746 LanguageCode::Hat => write!(f, "HAT"),
747 LanguageCode::Hau => write!(f, "HAU"),
748 LanguageCode::Haw => write!(f, "HAW"),
749 LanguageCode::Heb => write!(f, "HEB"),
750 LanguageCode::Her => write!(f, "HER"),
751 LanguageCode::Hil => write!(f, "HIL"),
752 LanguageCode::Him => write!(f, "HIM"),
753 LanguageCode::Hin => write!(f, "HIN"),
754 LanguageCode::Hit => write!(f, "HIT"),
755 LanguageCode::Hmn => write!(f, "HMN"),
756 LanguageCode::Hmo => write!(f, "HMO"),
757 LanguageCode::Hrv => write!(f, "HRV"),
758 LanguageCode::Hsb => write!(f, "HSB"),
759 LanguageCode::Hun => write!(f, "HUN"),
760 LanguageCode::Hup => write!(f, "HUP"),
761 LanguageCode::Iba => write!(f, "IBA"),
762 LanguageCode::Ibo => write!(f, "IBO"),
763 LanguageCode::Ice => write!(f, "ICE"),
764 LanguageCode::Ido => write!(f, "IDO"),
765 LanguageCode::Iii => write!(f, "III"),
766 LanguageCode::Ijo => write!(f, "IJO"),
767 LanguageCode::Iku => write!(f, "IKU"),
768 LanguageCode::Ile => write!(f, "ILE"),
769 LanguageCode::Ilo => write!(f, "ILO"),
770 LanguageCode::Ina => write!(f, "INA"),
771 LanguageCode::Inc => write!(f, "INC"),
772 LanguageCode::Ind => write!(f, "IND"),
773 LanguageCode::Ine => write!(f, "INE"),
774 LanguageCode::Inh => write!(f, "INH"),
775 LanguageCode::Ipk => write!(f, "IPK"),
776 LanguageCode::Ira => write!(f, "IRA"),
777 LanguageCode::Iro => write!(f, "IRO"),
778 LanguageCode::Ita => write!(f, "ITA"),
779 LanguageCode::Jav => write!(f, "JAV"),
780 LanguageCode::Jbo => write!(f, "JBO"),
781 LanguageCode::Jpn => write!(f, "JPN"),
782 LanguageCode::Jpr => write!(f, "JPR"),
783 LanguageCode::Jrb => write!(f, "JRB"),
784 LanguageCode::Kaa => write!(f, "KAA"),
785 LanguageCode::Kab => write!(f, "KAB"),
786 LanguageCode::Kac => write!(f, "KAC"),
787 LanguageCode::Kal => write!(f, "KAL"),
788 LanguageCode::Kam => write!(f, "KAM"),
789 LanguageCode::Kan => write!(f, "KAN"),
790 LanguageCode::Kar => write!(f, "KAR"),
791 LanguageCode::Kas => write!(f, "KAS"),
792 LanguageCode::Kau => write!(f, "KAU"),
793 LanguageCode::Kaw => write!(f, "KAW"),
794 LanguageCode::Kaz => write!(f, "KAZ"),
795 LanguageCode::Kbd => write!(f, "KBD"),
796 LanguageCode::Kha => write!(f, "KHA"),
797 LanguageCode::Khi => write!(f, "KHI"),
798 LanguageCode::Khm => write!(f, "KHM"),
799 LanguageCode::Kho => write!(f, "KHO"),
800 LanguageCode::Kik => write!(f, "KIK"),
801 LanguageCode::Kin => write!(f, "KIN"),
802 LanguageCode::Kir => write!(f, "KIR"),
803 LanguageCode::Kmb => write!(f, "KMB"),
804 LanguageCode::Kok => write!(f, "KOK"),
805 LanguageCode::Kom => write!(f, "KOM"),
806 LanguageCode::Kon => write!(f, "KON"),
807 LanguageCode::Kor => write!(f, "KOR"),
808 LanguageCode::Kos => write!(f, "KOS"),
809 LanguageCode::Kpe => write!(f, "KPE"),
810 LanguageCode::Krc => write!(f, "KRC"),
811 LanguageCode::Krl => write!(f, "KRL"),
812 LanguageCode::Kro => write!(f, "KRO"),
813 LanguageCode::Kru => write!(f, "KRU"),
814 LanguageCode::Kua => write!(f, "KUA"),
815 LanguageCode::Kum => write!(f, "KUM"),
816 LanguageCode::Kur => write!(f, "KUR"),
817 LanguageCode::Kut => write!(f, "KUT"),
818 LanguageCode::Lad => write!(f, "LAD"),
819 LanguageCode::Lah => write!(f, "LAH"),
820 LanguageCode::Lam => write!(f, "LAM"),
821 LanguageCode::Lao => write!(f, "LAO"),
822 LanguageCode::Lat => write!(f, "LAT"),
823 LanguageCode::Lav => write!(f, "LAV"),
824 LanguageCode::Lez => write!(f, "LEZ"),
825 LanguageCode::Lim => write!(f, "LIM"),
826 LanguageCode::Lin => write!(f, "LIN"),
827 LanguageCode::Lit => write!(f, "LIT"),
828 LanguageCode::Lol => write!(f, "LOL"),
829 LanguageCode::Loz => write!(f, "LOZ"),
830 LanguageCode::Ltz => write!(f, "LTZ"),
831 LanguageCode::Lua => write!(f, "LUA"),
832 LanguageCode::Lub => write!(f, "LUB"),
833 LanguageCode::Lug => write!(f, "LUG"),
834 LanguageCode::Lui => write!(f, "LUI"),
835 LanguageCode::Lun => write!(f, "LUN"),
836 LanguageCode::Luo => write!(f, "LUO"),
837 LanguageCode::Lus => write!(f, "LUS"),
838 LanguageCode::Mac => write!(f, "MAC"),
839 LanguageCode::Mad => write!(f, "MAD"),
840 LanguageCode::Mag => write!(f, "MAG"),
841 LanguageCode::Mah => write!(f, "MAH"),
842 LanguageCode::Mai => write!(f, "MAI"),
843 LanguageCode::Mak => write!(f, "MAK"),
844 LanguageCode::Mal => write!(f, "MAL"),
845 LanguageCode::Man => write!(f, "MAN"),
846 LanguageCode::Mao => write!(f, "MAO"),
847 LanguageCode::Map => write!(f, "MAP"),
848 LanguageCode::Mar => write!(f, "MAR"),
849 LanguageCode::Mas => write!(f, "MAS"),
850 LanguageCode::May => write!(f, "MAY"),
851 LanguageCode::Mdf => write!(f, "MDF"),
852 LanguageCode::Mdr => write!(f, "MDR"),
853 LanguageCode::Men => write!(f, "MEN"),
854 LanguageCode::Mga => write!(f, "MGA"),
855 LanguageCode::Mic => write!(f, "MIC"),
856 LanguageCode::Min => write!(f, "MIN"),
857 LanguageCode::Mis => write!(f, "MIS"),
858 LanguageCode::Mkh => write!(f, "MKH"),
859 LanguageCode::Mlg => write!(f, "MLG"),
860 LanguageCode::Mlt => write!(f, "MLT"),
861 LanguageCode::Mnc => write!(f, "MNC"),
862 LanguageCode::Mni => write!(f, "MNI"),
863 LanguageCode::Mno => write!(f, "MNO"),
864 LanguageCode::Moh => write!(f, "MOH"),
865 LanguageCode::Mon => write!(f, "MON"),
866 LanguageCode::Mos => write!(f, "MOS"),
867 LanguageCode::Mul => write!(f, "MUL"),
868 LanguageCode::Mun => write!(f, "MUN"),
869 LanguageCode::Mus => write!(f, "MUS"),
870 LanguageCode::Mwl => write!(f, "MWL"),
871 LanguageCode::Mwr => write!(f, "MWR"),
872 LanguageCode::Myn => write!(f, "MYN"),
873 LanguageCode::Myv => write!(f, "MYV"),
874 LanguageCode::Nah => write!(f, "NAH"),
875 LanguageCode::Nai => write!(f, "NAI"),
876 LanguageCode::Nap => write!(f, "NAP"),
877 LanguageCode::Nau => write!(f, "NAU"),
878 LanguageCode::Nav => write!(f, "NAV"),
879 LanguageCode::Nbl => write!(f, "NBL"),
880 LanguageCode::Nde => write!(f, "NDE"),
881 LanguageCode::Ndo => write!(f, "NDO"),
882 LanguageCode::Nds => write!(f, "NDS"),
883 LanguageCode::Nep => write!(f, "NEP"),
884 LanguageCode::New => write!(f, "NEW"),
885 LanguageCode::Nia => write!(f, "NIA"),
886 LanguageCode::Nic => write!(f, "NIC"),
887 LanguageCode::Niu => write!(f, "NIU"),
888 LanguageCode::Nno => write!(f, "NNO"),
889 LanguageCode::Nob => write!(f, "NOB"),
890 LanguageCode::Nog => write!(f, "NOG"),
891 LanguageCode::Non => write!(f, "NON"),
892 LanguageCode::Nor => write!(f, "NOR"),
893 LanguageCode::Nqo => write!(f, "NQO"),
894 LanguageCode::Nso => write!(f, "NSO"),
895 LanguageCode::Nub => write!(f, "NUB"),
896 LanguageCode::Nwc => write!(f, "NWC"),
897 LanguageCode::Nya => write!(f, "NYA"),
898 LanguageCode::Nym => write!(f, "NYM"),
899 LanguageCode::Nyn => write!(f, "NYN"),
900 LanguageCode::Nyo => write!(f, "NYO"),
901 LanguageCode::Nzi => write!(f, "NZI"),
902 LanguageCode::Oci => write!(f, "OCI"),
903 LanguageCode::Oji => write!(f, "OJI"),
904 LanguageCode::Ori => write!(f, "ORI"),
905 LanguageCode::Orm => write!(f, "ORM"),
906 LanguageCode::Osa => write!(f, "OSA"),
907 LanguageCode::Oss => write!(f, "OSS"),
908 LanguageCode::Ota => write!(f, "OTA"),
909 LanguageCode::Oto => write!(f, "OTO"),
910 LanguageCode::Paa => write!(f, "PAA"),
911 LanguageCode::Pag => write!(f, "PAG"),
912 LanguageCode::Pal => write!(f, "PAL"),
913 LanguageCode::Pam => write!(f, "PAM"),
914 LanguageCode::Pan => write!(f, "PAN"),
915 LanguageCode::Pap => write!(f, "PAP"),
916 LanguageCode::Pau => write!(f, "PAU"),
917 LanguageCode::Peo => write!(f, "PEO"),
918 LanguageCode::Per => write!(f, "PER"),
919 LanguageCode::Phi => write!(f, "PHI"),
920 LanguageCode::Phn => write!(f, "PHN"),
921 LanguageCode::Pli => write!(f, "PLI"),
922 LanguageCode::Pol => write!(f, "POL"),
923 LanguageCode::Pon => write!(f, "PON"),
924 LanguageCode::Por => write!(f, "POR"),
925 LanguageCode::Pra => write!(f, "PRA"),
926 LanguageCode::Pro => write!(f, "PRO"),
927 LanguageCode::Pus => write!(f, "PUS"),
928 LanguageCode::Qaa => write!(f, "QAA"),
929 LanguageCode::Que => write!(f, "QUE"),
930 LanguageCode::Raj => write!(f, "RAJ"),
931 LanguageCode::Rap => write!(f, "RAP"),
932 LanguageCode::Rar => write!(f, "RAR"),
933 LanguageCode::Roa => write!(f, "ROA"),
934 LanguageCode::Roh => write!(f, "ROH"),
935 LanguageCode::Rom => write!(f, "ROM"),
936 LanguageCode::Rum => write!(f, "RUM"),
937 LanguageCode::Run => write!(f, "RUN"),
938 LanguageCode::Rup => write!(f, "RUP"),
939 LanguageCode::Rus => write!(f, "RUS"),
940 LanguageCode::Sad => write!(f, "SAD"),
941 LanguageCode::Sag => write!(f, "SAG"),
942 LanguageCode::Sah => write!(f, "SAH"),
943 LanguageCode::Sai => write!(f, "SAI"),
944 LanguageCode::Sal => write!(f, "SAL"),
945 LanguageCode::Sam => write!(f, "SAM"),
946 LanguageCode::San => write!(f, "SAN"),
947 LanguageCode::Sas => write!(f, "SAS"),
948 LanguageCode::Sat => write!(f, "SAT"),
949 LanguageCode::Scn => write!(f, "SCN"),
950 LanguageCode::Sco => write!(f, "SCO"),
951 LanguageCode::Sel => write!(f, "SEL"),
952 LanguageCode::Sem => write!(f, "SEM"),
953 LanguageCode::Sga => write!(f, "SGA"),
954 LanguageCode::Sgn => write!(f, "SGN"),
955 LanguageCode::Shn => write!(f, "SHN"),
956 LanguageCode::Sid => write!(f, "SID"),
957 LanguageCode::Sin => write!(f, "SIN"),
958 LanguageCode::Sio => write!(f, "SIO"),
959 LanguageCode::Sit => write!(f, "SIT"),
960 LanguageCode::Sla => write!(f, "SLA"),
961 LanguageCode::Slo => write!(f, "SLO"),
962 LanguageCode::Slv => write!(f, "SLV"),
963 LanguageCode::Sma => write!(f, "SMA"),
964 LanguageCode::Sme => write!(f, "SME"),
965 LanguageCode::Smi => write!(f, "SMI"),
966 LanguageCode::Smj => write!(f, "SMJ"),
967 LanguageCode::Smn => write!(f, "SMN"),
968 LanguageCode::Smo => write!(f, "SMO"),
969 LanguageCode::Sms => write!(f, "SMS"),
970 LanguageCode::Sna => write!(f, "SNA"),
971 LanguageCode::Snd => write!(f, "SND"),
972 LanguageCode::Snk => write!(f, "SNK"),
973 LanguageCode::Sog => write!(f, "SOG"),
974 LanguageCode::Som => write!(f, "SOM"),
975 LanguageCode::Son => write!(f, "SON"),
976 LanguageCode::Sot => write!(f, "SOT"),
977 LanguageCode::Spa => write!(f, "SPA"),
978 LanguageCode::Srd => write!(f, "SRD"),
979 LanguageCode::Srn => write!(f, "SRN"),
980 LanguageCode::Srp => write!(f, "SRP"),
981 LanguageCode::Srr => write!(f, "SRR"),
982 LanguageCode::Ssa => write!(f, "SSA"),
983 LanguageCode::Ssw => write!(f, "SSW"),
984 LanguageCode::Suk => write!(f, "SUK"),
985 LanguageCode::Sun => write!(f, "SUN"),
986 LanguageCode::Sus => write!(f, "SUS"),
987 LanguageCode::Sux => write!(f, "SUX"),
988 LanguageCode::Swa => write!(f, "SWA"),
989 LanguageCode::Swe => write!(f, "SWE"),
990 LanguageCode::Syc => write!(f, "SYC"),
991 LanguageCode::Syr => write!(f, "SYR"),
992 LanguageCode::Tah => write!(f, "TAH"),
993 LanguageCode::Tai => write!(f, "TAI"),
994 LanguageCode::Tam => write!(f, "TAM"),
995 LanguageCode::Tat => write!(f, "TAT"),
996 LanguageCode::Tel => write!(f, "TEL"),
997 LanguageCode::Tem => write!(f, "TEM"),
998 LanguageCode::Ter => write!(f, "TER"),
999 LanguageCode::Tet => write!(f, "TET"),
1000 LanguageCode::Tgk => write!(f, "TGK"),
1001 LanguageCode::Tgl => write!(f, "TGL"),
1002 LanguageCode::Tha => write!(f, "THA"),
1003 LanguageCode::Tib => write!(f, "TIB"),
1004 LanguageCode::Tig => write!(f, "TIG"),
1005 LanguageCode::Tir => write!(f, "TIR"),
1006 LanguageCode::Tiv => write!(f, "TIV"),
1007 LanguageCode::Tkl => write!(f, "TKL"),
1008 LanguageCode::Tlh => write!(f, "TLH"),
1009 LanguageCode::Tli => write!(f, "TLI"),
1010 LanguageCode::Tmh => write!(f, "TMH"),
1011 LanguageCode::Tog => write!(f, "TOG"),
1012 LanguageCode::Ton => write!(f, "TON"),
1013 LanguageCode::Tpi => write!(f, "TPI"),
1014 LanguageCode::Tsi => write!(f, "TSI"),
1015 LanguageCode::Tsn => write!(f, "TSN"),
1016 LanguageCode::Tso => write!(f, "TSO"),
1017 LanguageCode::Tuk => write!(f, "TUK"),
1018 LanguageCode::Tum => write!(f, "TUM"),
1019 LanguageCode::Tup => write!(f, "TUP"),
1020 LanguageCode::Tur => write!(f, "TUR"),
1021 LanguageCode::Tut => write!(f, "TUT"),
1022 LanguageCode::Tvl => write!(f, "TVL"),
1023 LanguageCode::Twi => write!(f, "TWI"),
1024 LanguageCode::Tyv => write!(f, "TYV"),
1025 LanguageCode::Udm => write!(f, "UDM"),
1026 LanguageCode::Uga => write!(f, "UGA"),
1027 LanguageCode::Uig => write!(f, "UIG"),
1028 LanguageCode::Ukr => write!(f, "UKR"),
1029 LanguageCode::Umb => write!(f, "UMB"),
1030 LanguageCode::Und => write!(f, "UND"),
1031 LanguageCode::Urd => write!(f, "URD"),
1032 LanguageCode::Uzb => write!(f, "UZB"),
1033 LanguageCode::Vai => write!(f, "VAI"),
1034 LanguageCode::Ven => write!(f, "VEN"),
1035 LanguageCode::Vie => write!(f, "VIE"),
1036 LanguageCode::Vol => write!(f, "VOL"),
1037 LanguageCode::Vot => write!(f, "VOT"),
1038 LanguageCode::Wak => write!(f, "WAK"),
1039 LanguageCode::Wal => write!(f, "WAL"),
1040 LanguageCode::War => write!(f, "WAR"),
1041 LanguageCode::Was => write!(f, "WAS"),
1042 LanguageCode::Wel => write!(f, "WEL"),
1043 LanguageCode::Wen => write!(f, "WEN"),
1044 LanguageCode::Wln => write!(f, "WLN"),
1045 LanguageCode::Wol => write!(f, "WOL"),
1046 LanguageCode::Xal => write!(f, "XAL"),
1047 LanguageCode::Xho => write!(f, "XHO"),
1048 LanguageCode::Yao => write!(f, "YAO"),
1049 LanguageCode::Yap => write!(f, "YAP"),
1050 LanguageCode::Yid => write!(f, "YID"),
1051 LanguageCode::Yor => write!(f, "YOR"),
1052 LanguageCode::Ypk => write!(f, "YPK"),
1053 LanguageCode::Zap => write!(f, "ZAP"),
1054 LanguageCode::Zbl => write!(f, "ZBL"),
1055 LanguageCode::Zen => write!(f, "ZEN"),
1056 LanguageCode::Zgh => write!(f, "ZGH"),
1057 LanguageCode::Zha => write!(f, "ZHA"),
1058 LanguageCode::Znd => write!(f, "ZND"),
1059 LanguageCode::Zul => write!(f, "ZUL"),
1060 LanguageCode::Zun => write!(f, "ZUN"),
1061 LanguageCode::Zxx => write!(f, "ZXX"),
1062 LanguageCode::Zza => write!(f, "ZZA"),
1063 }
1064 }
1065}
1066
1067impl FromStr for LanguageRelation {
1068 type Err = ThothError;
1069
1070 fn from_str(input: &str) -> std::result::Result<LanguageRelation, ThothError> {
1071 match input {
1072 "Original" => Ok(LanguageRelation::Original),
1073 "Translated From" => Ok(LanguageRelation::TranslatedFrom),
1074 "Translated Into" => Ok(LanguageRelation::TranslatedInto),
1075 _ => Err(ThothError::InvalidLanguageRelation(input.to_string())),
1076 }
1077 }
1078}
1079
1080impl FromStr for LanguageCode {
1081 type Err = ThothError;
1082
1083 fn from_str(input: &str) -> std::result::Result<LanguageCode, ThothError> {
1084 match input {
1085 "AAR" => Ok(LanguageCode::Aar),
1086 "ABK" => Ok(LanguageCode::Abk),
1087 "ACE" => Ok(LanguageCode::Ace),
1088 "ACH" => Ok(LanguageCode::Ach),
1089 "ADA" => Ok(LanguageCode::Ada),
1090 "ADY" => Ok(LanguageCode::Ady),
1091 "AFA" => Ok(LanguageCode::Afa),
1092 "AFH" => Ok(LanguageCode::Afh),
1093 "AFR" => Ok(LanguageCode::Afr),
1094 "AIN" => Ok(LanguageCode::Ain),
1095 "AKA" => Ok(LanguageCode::Aka),
1096 "AKK" => Ok(LanguageCode::Akk),
1097 "ALB" => Ok(LanguageCode::Alb),
1098 "ALE" => Ok(LanguageCode::Ale),
1099 "ALG" => Ok(LanguageCode::Alg),
1100 "ALT" => Ok(LanguageCode::Alt),
1101 "AMH" => Ok(LanguageCode::Amh),
1102 "ANG" => Ok(LanguageCode::Ang),
1103 "ANP" => Ok(LanguageCode::Anp),
1104 "APA" => Ok(LanguageCode::Apa),
1105 "ARA" => Ok(LanguageCode::Ara),
1106 "ARC" => Ok(LanguageCode::Arc),
1107 "ARG" => Ok(LanguageCode::Arg),
1108 "ARM" => Ok(LanguageCode::Arm),
1109 "ARN" => Ok(LanguageCode::Arn),
1110 "ARP" => Ok(LanguageCode::Arp),
1111 "ART" => Ok(LanguageCode::Art),
1112 "ARW" => Ok(LanguageCode::Arw),
1113 "ASM" => Ok(LanguageCode::Asm),
1114 "AST" => Ok(LanguageCode::Ast),
1115 "ATH" => Ok(LanguageCode::Ath),
1116 "AUS" => Ok(LanguageCode::Aus),
1117 "AVA" => Ok(LanguageCode::Ava),
1118 "AVE" => Ok(LanguageCode::Ave),
1119 "AWA" => Ok(LanguageCode::Awa),
1120 "AYM" => Ok(LanguageCode::Aym),
1121 "AZE" => Ok(LanguageCode::Aze),
1122 "BAD" => Ok(LanguageCode::Bad),
1123 "BAI" => Ok(LanguageCode::Bai),
1124 "BAK" => Ok(LanguageCode::Bak),
1125 "BAL" => Ok(LanguageCode::Bal),
1126 "BAM" => Ok(LanguageCode::Bam),
1127 "BAN" => Ok(LanguageCode::Ban),
1128 "BAQ" => Ok(LanguageCode::Baq),
1129 "BAS" => Ok(LanguageCode::Bas),
1130 "BAT" => Ok(LanguageCode::Bat),
1131 "BEJ" => Ok(LanguageCode::Bej),
1132 "BEL" => Ok(LanguageCode::Bel),
1133 "BEM" => Ok(LanguageCode::Bem),
1134 "BEN" => Ok(LanguageCode::Ben),
1135 "BER" => Ok(LanguageCode::Ber),
1136 "BHO" => Ok(LanguageCode::Bho),
1137 "BIH" => Ok(LanguageCode::Bih),
1138 "BIK" => Ok(LanguageCode::Bik),
1139 "BIN" => Ok(LanguageCode::Bin),
1140 "BIS" => Ok(LanguageCode::Bis),
1141 "BLA" => Ok(LanguageCode::Bla),
1142 "BNT" => Ok(LanguageCode::Bnt),
1143 "BOS" => Ok(LanguageCode::Bos),
1144 "BRA" => Ok(LanguageCode::Bra),
1145 "BRE" => Ok(LanguageCode::Bre),
1146 "BTK" => Ok(LanguageCode::Btk),
1147 "BUA" => Ok(LanguageCode::Bua),
1148 "BUG" => Ok(LanguageCode::Bug),
1149 "BUL" => Ok(LanguageCode::Bul),
1150 "BUR" => Ok(LanguageCode::Bur),
1151 "BYN" => Ok(LanguageCode::Byn),
1152 "CAD" => Ok(LanguageCode::Cad),
1153 "CAI" => Ok(LanguageCode::Cai),
1154 "CAR" => Ok(LanguageCode::Car),
1155 "CAT" => Ok(LanguageCode::Cat),
1156 "CAU" => Ok(LanguageCode::Cau),
1157 "CEB" => Ok(LanguageCode::Ceb),
1158 "CEL" => Ok(LanguageCode::Cel),
1159 "CHA" => Ok(LanguageCode::Cha),
1160 "CHB" => Ok(LanguageCode::Chb),
1161 "CHE" => Ok(LanguageCode::Che),
1162 "CHG" => Ok(LanguageCode::Chg),
1163 "CHI" => Ok(LanguageCode::Chi),
1164 "CHK" => Ok(LanguageCode::Chk),
1165 "CHM" => Ok(LanguageCode::Chm),
1166 "CHN" => Ok(LanguageCode::Chn),
1167 "CHO" => Ok(LanguageCode::Cho),
1168 "CHP" => Ok(LanguageCode::Chp),
1169 "CHR" => Ok(LanguageCode::Chr),
1170 "CHU" => Ok(LanguageCode::Chu),
1171 "CHV" => Ok(LanguageCode::Chv),
1172 "CHY" => Ok(LanguageCode::Chy),
1173 "CMC" => Ok(LanguageCode::Cmc),
1174 "CNR" => Ok(LanguageCode::Cnr),
1175 "COP" => Ok(LanguageCode::Cop),
1176 "COR" => Ok(LanguageCode::Cor),
1177 "COS" => Ok(LanguageCode::Cos),
1178 "CPE" => Ok(LanguageCode::Cpe),
1179 "CPF" => Ok(LanguageCode::Cpf),
1180 "CPP" => Ok(LanguageCode::Cpp),
1181 "CRE" => Ok(LanguageCode::Cre),
1182 "CRH" => Ok(LanguageCode::Crh),
1183 "CRP" => Ok(LanguageCode::Crp),
1184 "CSB" => Ok(LanguageCode::Csb),
1185 "CUS" => Ok(LanguageCode::Cus),
1186 "CZE" => Ok(LanguageCode::Cze),
1187 "DAK" => Ok(LanguageCode::Dak),
1188 "DAN" => Ok(LanguageCode::Dan),
1189 "DAR" => Ok(LanguageCode::Dar),
1190 "DAY" => Ok(LanguageCode::Day),
1191 "DEL" => Ok(LanguageCode::Del),
1192 "DEN" => Ok(LanguageCode::Den),
1193 "DGR" => Ok(LanguageCode::Dgr),
1194 "DIN" => Ok(LanguageCode::Din),
1195 "DIV" => Ok(LanguageCode::Div),
1196 "DOI" => Ok(LanguageCode::Doi),
1197 "DRA" => Ok(LanguageCode::Dra),
1198 "DSB" => Ok(LanguageCode::Dsb),
1199 "DUA" => Ok(LanguageCode::Dua),
1200 "DUM" => Ok(LanguageCode::Dum),
1201 "DUT" => Ok(LanguageCode::Dut),
1202 "DYU" => Ok(LanguageCode::Dyu),
1203 "DZO" => Ok(LanguageCode::Dzo),
1204 "EFI" => Ok(LanguageCode::Efi),
1205 "EGY" => Ok(LanguageCode::Egy),
1206 "EKA" => Ok(LanguageCode::Eka),
1207 "ELX" => Ok(LanguageCode::Elx),
1208 "ENG" => Ok(LanguageCode::Eng),
1209 "ENM" => Ok(LanguageCode::Enm),
1210 "EPO" => Ok(LanguageCode::Epo),
1211 "EST" => Ok(LanguageCode::Est),
1212 "EWE" => Ok(LanguageCode::Ewe),
1213 "EWO" => Ok(LanguageCode::Ewo),
1214 "FAN" => Ok(LanguageCode::Fan),
1215 "FAO" => Ok(LanguageCode::Fao),
1216 "FAT" => Ok(LanguageCode::Fat),
1217 "FIJ" => Ok(LanguageCode::Fij),
1218 "FIL" => Ok(LanguageCode::Fil),
1219 "FIN" => Ok(LanguageCode::Fin),
1220 "FIU" => Ok(LanguageCode::Fiu),
1221 "FON" => Ok(LanguageCode::Fon),
1222 "FRE" => Ok(LanguageCode::Fre),
1223 "FRM" => Ok(LanguageCode::Frm),
1224 "FRO" => Ok(LanguageCode::Fro),
1225 "FRR" => Ok(LanguageCode::Frr),
1226 "FRS" => Ok(LanguageCode::Frs),
1227 "FRY" => Ok(LanguageCode::Fry),
1228 "FUL" => Ok(LanguageCode::Ful),
1229 "FUR" => Ok(LanguageCode::Fur),
1230 "GAA" => Ok(LanguageCode::Gaa),
1231 "GAY" => Ok(LanguageCode::Gay),
1232 "GBA" => Ok(LanguageCode::Gba),
1233 "GEM" => Ok(LanguageCode::Gem),
1234 "GEO" => Ok(LanguageCode::Geo),
1235 "GER" => Ok(LanguageCode::Ger),
1236 "GEZ" => Ok(LanguageCode::Gez),
1237 "GIL" => Ok(LanguageCode::Gil),
1238 "GLA" => Ok(LanguageCode::Gla),
1239 "GLE" => Ok(LanguageCode::Gle),
1240 "GLG" => Ok(LanguageCode::Glg),
1241 "GLV" => Ok(LanguageCode::Glv),
1242 "GMH" => Ok(LanguageCode::Gmh),
1243 "GOH" => Ok(LanguageCode::Goh),
1244 "GON" => Ok(LanguageCode::Gon),
1245 "GOR" => Ok(LanguageCode::Gor),
1246 "GOT" => Ok(LanguageCode::Got),
1247 "GRB" => Ok(LanguageCode::Grb),
1248 "GRC" => Ok(LanguageCode::Grc),
1249 "GRE" => Ok(LanguageCode::Gre),
1250 "GRN" => Ok(LanguageCode::Grn),
1251 "GSW" => Ok(LanguageCode::Gsw),
1252 "GUJ" => Ok(LanguageCode::Guj),
1253 "GWI" => Ok(LanguageCode::Gwi),
1254 "HAI" => Ok(LanguageCode::Hai),
1255 "HAT" => Ok(LanguageCode::Hat),
1256 "HAU" => Ok(LanguageCode::Hau),
1257 "HAW" => Ok(LanguageCode::Haw),
1258 "HEB" => Ok(LanguageCode::Heb),
1259 "HER" => Ok(LanguageCode::Her),
1260 "HIL" => Ok(LanguageCode::Hil),
1261 "HIM" => Ok(LanguageCode::Him),
1262 "HIN" => Ok(LanguageCode::Hin),
1263 "HIT" => Ok(LanguageCode::Hit),
1264 "HMN" => Ok(LanguageCode::Hmn),
1265 "HMO" => Ok(LanguageCode::Hmo),
1266 "HRV" => Ok(LanguageCode::Hrv),
1267 "HSB" => Ok(LanguageCode::Hsb),
1268 "HUN" => Ok(LanguageCode::Hun),
1269 "HUP" => Ok(LanguageCode::Hup),
1270 "IBA" => Ok(LanguageCode::Iba),
1271 "IBO" => Ok(LanguageCode::Ibo),
1272 "ICE" => Ok(LanguageCode::Ice),
1273 "IDO" => Ok(LanguageCode::Ido),
1274 "III" => Ok(LanguageCode::Iii),
1275 "IJO" => Ok(LanguageCode::Ijo),
1276 "IKU" => Ok(LanguageCode::Iku),
1277 "ILE" => Ok(LanguageCode::Ile),
1278 "ILO" => Ok(LanguageCode::Ilo),
1279 "INA" => Ok(LanguageCode::Ina),
1280 "INC" => Ok(LanguageCode::Inc),
1281 "IND" => Ok(LanguageCode::Ind),
1282 "INE" => Ok(LanguageCode::Ine),
1283 "INH" => Ok(LanguageCode::Inh),
1284 "IPK" => Ok(LanguageCode::Ipk),
1285 "IRA" => Ok(LanguageCode::Ira),
1286 "IRO" => Ok(LanguageCode::Iro),
1287 "ITA" => Ok(LanguageCode::Ita),
1288 "JAV" => Ok(LanguageCode::Jav),
1289 "JBO" => Ok(LanguageCode::Jbo),
1290 "JPN" => Ok(LanguageCode::Jpn),
1291 "JPR" => Ok(LanguageCode::Jpr),
1292 "JRB" => Ok(LanguageCode::Jrb),
1293 "KAA" => Ok(LanguageCode::Kaa),
1294 "KAB" => Ok(LanguageCode::Kab),
1295 "KAC" => Ok(LanguageCode::Kac),
1296 "KAL" => Ok(LanguageCode::Kal),
1297 "KAM" => Ok(LanguageCode::Kam),
1298 "KAN" => Ok(LanguageCode::Kan),
1299 "KAR" => Ok(LanguageCode::Kar),
1300 "KAS" => Ok(LanguageCode::Kas),
1301 "KAU" => Ok(LanguageCode::Kau),
1302 "KAW" => Ok(LanguageCode::Kaw),
1303 "KAZ" => Ok(LanguageCode::Kaz),
1304 "KBD" => Ok(LanguageCode::Kbd),
1305 "KHA" => Ok(LanguageCode::Kha),
1306 "KHI" => Ok(LanguageCode::Khi),
1307 "KHM" => Ok(LanguageCode::Khm),
1308 "KHO" => Ok(LanguageCode::Kho),
1309 "KIK" => Ok(LanguageCode::Kik),
1310 "KIN" => Ok(LanguageCode::Kin),
1311 "KIR" => Ok(LanguageCode::Kir),
1312 "KMB" => Ok(LanguageCode::Kmb),
1313 "KOK" => Ok(LanguageCode::Kok),
1314 "KOM" => Ok(LanguageCode::Kom),
1315 "KON" => Ok(LanguageCode::Kon),
1316 "KOR" => Ok(LanguageCode::Kor),
1317 "KOS" => Ok(LanguageCode::Kos),
1318 "KPE" => Ok(LanguageCode::Kpe),
1319 "KRC" => Ok(LanguageCode::Krc),
1320 "KRL" => Ok(LanguageCode::Krl),
1321 "KRO" => Ok(LanguageCode::Kro),
1322 "KRU" => Ok(LanguageCode::Kru),
1323 "KUA" => Ok(LanguageCode::Kua),
1324 "KUM" => Ok(LanguageCode::Kum),
1325 "KUR" => Ok(LanguageCode::Kur),
1326 "KUT" => Ok(LanguageCode::Kut),
1327 "LAD" => Ok(LanguageCode::Lad),
1328 "LAH" => Ok(LanguageCode::Lah),
1329 "LAM" => Ok(LanguageCode::Lam),
1330 "LAO" => Ok(LanguageCode::Lao),
1331 "LAT" => Ok(LanguageCode::Lat),
1332 "LAV" => Ok(LanguageCode::Lav),
1333 "LEZ" => Ok(LanguageCode::Lez),
1334 "LIM" => Ok(LanguageCode::Lim),
1335 "LIN" => Ok(LanguageCode::Lin),
1336 "LIT" => Ok(LanguageCode::Lit),
1337 "LOL" => Ok(LanguageCode::Lol),
1338 "LOZ" => Ok(LanguageCode::Loz),
1339 "LTZ" => Ok(LanguageCode::Ltz),
1340 "LUA" => Ok(LanguageCode::Lua),
1341 "LUB" => Ok(LanguageCode::Lub),
1342 "LUG" => Ok(LanguageCode::Lug),
1343 "LUI" => Ok(LanguageCode::Lui),
1344 "LUN" => Ok(LanguageCode::Lun),
1345 "LUO" => Ok(LanguageCode::Luo),
1346 "LUS" => Ok(LanguageCode::Lus),
1347 "MAC" => Ok(LanguageCode::Mac),
1348 "MAD" => Ok(LanguageCode::Mad),
1349 "MAG" => Ok(LanguageCode::Mag),
1350 "MAH" => Ok(LanguageCode::Mah),
1351 "MAI" => Ok(LanguageCode::Mai),
1352 "MAK" => Ok(LanguageCode::Mak),
1353 "MAL" => Ok(LanguageCode::Mal),
1354 "MAN" => Ok(LanguageCode::Man),
1355 "MAO" => Ok(LanguageCode::Mao),
1356 "MAP" => Ok(LanguageCode::Map),
1357 "MAR" => Ok(LanguageCode::Mar),
1358 "MAS" => Ok(LanguageCode::Mas),
1359 "MAY" => Ok(LanguageCode::May),
1360 "MDF" => Ok(LanguageCode::Mdf),
1361 "MDR" => Ok(LanguageCode::Mdr),
1362 "MEN" => Ok(LanguageCode::Men),
1363 "MGA" => Ok(LanguageCode::Mga),
1364 "MIC" => Ok(LanguageCode::Mic),
1365 "MIN" => Ok(LanguageCode::Min),
1366 "MIS" => Ok(LanguageCode::Mis),
1367 "MKH" => Ok(LanguageCode::Mkh),
1368 "MLG" => Ok(LanguageCode::Mlg),
1369 "MLT" => Ok(LanguageCode::Mlt),
1370 "MNC" => Ok(LanguageCode::Mnc),
1371 "MNI" => Ok(LanguageCode::Mni),
1372 "MNO" => Ok(LanguageCode::Mno),
1373 "MOH" => Ok(LanguageCode::Moh),
1374 "MON" => Ok(LanguageCode::Mon),
1375 "MOS" => Ok(LanguageCode::Mos),
1376 "MUL" => Ok(LanguageCode::Mul),
1377 "MUN" => Ok(LanguageCode::Mun),
1378 "MUS" => Ok(LanguageCode::Mus),
1379 "MWL" => Ok(LanguageCode::Mwl),
1380 "MWR" => Ok(LanguageCode::Mwr),
1381 "MYN" => Ok(LanguageCode::Myn),
1382 "MYV" => Ok(LanguageCode::Myv),
1383 "NAH" => Ok(LanguageCode::Nah),
1384 "NAI" => Ok(LanguageCode::Nai),
1385 "NAP" => Ok(LanguageCode::Nap),
1386 "NAU" => Ok(LanguageCode::Nau),
1387 "NAV" => Ok(LanguageCode::Nav),
1388 "NBL" => Ok(LanguageCode::Nbl),
1389 "NDE" => Ok(LanguageCode::Nde),
1390 "NDO" => Ok(LanguageCode::Ndo),
1391 "NDS" => Ok(LanguageCode::Nds),
1392 "NEP" => Ok(LanguageCode::Nep),
1393 "NEW" => Ok(LanguageCode::New),
1394 "NIA" => Ok(LanguageCode::Nia),
1395 "NIC" => Ok(LanguageCode::Nic),
1396 "NIU" => Ok(LanguageCode::Niu),
1397 "NNO" => Ok(LanguageCode::Nno),
1398 "NOB" => Ok(LanguageCode::Nob),
1399 "NOG" => Ok(LanguageCode::Nog),
1400 "NON" => Ok(LanguageCode::Non),
1401 "NOR" => Ok(LanguageCode::Nor),
1402 "NQO" => Ok(LanguageCode::Nqo),
1403 "NSO" => Ok(LanguageCode::Nso),
1404 "NUB" => Ok(LanguageCode::Nub),
1405 "NWC" => Ok(LanguageCode::Nwc),
1406 "NYA" => Ok(LanguageCode::Nya),
1407 "NYM" => Ok(LanguageCode::Nym),
1408 "NYN" => Ok(LanguageCode::Nyn),
1409 "NYO" => Ok(LanguageCode::Nyo),
1410 "NZI" => Ok(LanguageCode::Nzi),
1411 "OCI" => Ok(LanguageCode::Oci),
1412 "OJI" => Ok(LanguageCode::Oji),
1413 "ORI" => Ok(LanguageCode::Ori),
1414 "ORM" => Ok(LanguageCode::Orm),
1415 "OSA" => Ok(LanguageCode::Osa),
1416 "OSS" => Ok(LanguageCode::Oss),
1417 "OTA" => Ok(LanguageCode::Ota),
1418 "OTO" => Ok(LanguageCode::Oto),
1419 "PAA" => Ok(LanguageCode::Paa),
1420 "PAG" => Ok(LanguageCode::Pag),
1421 "PAL" => Ok(LanguageCode::Pal),
1422 "PAM" => Ok(LanguageCode::Pam),
1423 "PAN" => Ok(LanguageCode::Pan),
1424 "PAP" => Ok(LanguageCode::Pap),
1425 "PAU" => Ok(LanguageCode::Pau),
1426 "PEO" => Ok(LanguageCode::Peo),
1427 "PER" => Ok(LanguageCode::Per),
1428 "PHI" => Ok(LanguageCode::Phi),
1429 "PHN" => Ok(LanguageCode::Phn),
1430 "PLI" => Ok(LanguageCode::Pli),
1431 "POL" => Ok(LanguageCode::Pol),
1432 "PON" => Ok(LanguageCode::Pon),
1433 "POR" => Ok(LanguageCode::Por),
1434 "PRA" => Ok(LanguageCode::Pra),
1435 "PRO" => Ok(LanguageCode::Pro),
1436 "PUS" => Ok(LanguageCode::Pus),
1437 "QAA" => Ok(LanguageCode::Qaa),
1438 "QUE" => Ok(LanguageCode::Que),
1439 "RAJ" => Ok(LanguageCode::Raj),
1440 "RAP" => Ok(LanguageCode::Rap),
1441 "RAR" => Ok(LanguageCode::Rar),
1442 "ROA" => Ok(LanguageCode::Roa),
1443 "ROH" => Ok(LanguageCode::Roh),
1444 "ROM" => Ok(LanguageCode::Rom),
1445 "RUM" => Ok(LanguageCode::Rum),
1446 "RUN" => Ok(LanguageCode::Run),
1447 "RUP" => Ok(LanguageCode::Rup),
1448 "RUS" => Ok(LanguageCode::Rus),
1449 "SAD" => Ok(LanguageCode::Sad),
1450 "SAG" => Ok(LanguageCode::Sag),
1451 "SAH" => Ok(LanguageCode::Sah),
1452 "SAI" => Ok(LanguageCode::Sai),
1453 "SAL" => Ok(LanguageCode::Sal),
1454 "SAM" => Ok(LanguageCode::Sam),
1455 "SAN" => Ok(LanguageCode::San),
1456 "SAS" => Ok(LanguageCode::Sas),
1457 "SAT" => Ok(LanguageCode::Sat),
1458 "SCN" => Ok(LanguageCode::Scn),
1459 "SCO" => Ok(LanguageCode::Sco),
1460 "SEL" => Ok(LanguageCode::Sel),
1461 "SEM" => Ok(LanguageCode::Sem),
1462 "SGA" => Ok(LanguageCode::Sga),
1463 "SGN" => Ok(LanguageCode::Sgn),
1464 "SHN" => Ok(LanguageCode::Shn),
1465 "SID" => Ok(LanguageCode::Sid),
1466 "SIN" => Ok(LanguageCode::Sin),
1467 "SIO" => Ok(LanguageCode::Sio),
1468 "SIT" => Ok(LanguageCode::Sit),
1469 "SLA" => Ok(LanguageCode::Sla),
1470 "SLO" => Ok(LanguageCode::Slo),
1471 "SLV" => Ok(LanguageCode::Slv),
1472 "SMA" => Ok(LanguageCode::Sma),
1473 "SME" => Ok(LanguageCode::Sme),
1474 "SMI" => Ok(LanguageCode::Smi),
1475 "SMJ" => Ok(LanguageCode::Smj),
1476 "SMN" => Ok(LanguageCode::Smn),
1477 "SMO" => Ok(LanguageCode::Smo),
1478 "SMS" => Ok(LanguageCode::Sms),
1479 "SNA" => Ok(LanguageCode::Sna),
1480 "SND" => Ok(LanguageCode::Snd),
1481 "SNK" => Ok(LanguageCode::Snk),
1482 "SOG" => Ok(LanguageCode::Sog),
1483 "SOM" => Ok(LanguageCode::Som),
1484 "SON" => Ok(LanguageCode::Son),
1485 "SOT" => Ok(LanguageCode::Sot),
1486 "SPA" => Ok(LanguageCode::Spa),
1487 "SRD" => Ok(LanguageCode::Srd),
1488 "SRN" => Ok(LanguageCode::Srn),
1489 "SRP" => Ok(LanguageCode::Srp),
1490 "SRR" => Ok(LanguageCode::Srr),
1491 "SSA" => Ok(LanguageCode::Ssa),
1492 "SSW" => Ok(LanguageCode::Ssw),
1493 "SUK" => Ok(LanguageCode::Suk),
1494 "SUN" => Ok(LanguageCode::Sun),
1495 "SUS" => Ok(LanguageCode::Sus),
1496 "SUX" => Ok(LanguageCode::Sux),
1497 "SWA" => Ok(LanguageCode::Swa),
1498 "SWE" => Ok(LanguageCode::Swe),
1499 "SYC" => Ok(LanguageCode::Syc),
1500 "SYR" => Ok(LanguageCode::Syr),
1501 "TAH" => Ok(LanguageCode::Tah),
1502 "TAI" => Ok(LanguageCode::Tai),
1503 "TAM" => Ok(LanguageCode::Tam),
1504 "TAT" => Ok(LanguageCode::Tat),
1505 "TEL" => Ok(LanguageCode::Tel),
1506 "TEM" => Ok(LanguageCode::Tem),
1507 "TER" => Ok(LanguageCode::Ter),
1508 "TET" => Ok(LanguageCode::Tet),
1509 "TGK" => Ok(LanguageCode::Tgk),
1510 "TGL" => Ok(LanguageCode::Tgl),
1511 "THA" => Ok(LanguageCode::Tha),
1512 "TIB" => Ok(LanguageCode::Tib),
1513 "TIG" => Ok(LanguageCode::Tig),
1514 "TIR" => Ok(LanguageCode::Tir),
1515 "TIV" => Ok(LanguageCode::Tiv),
1516 "TKL" => Ok(LanguageCode::Tkl),
1517 "TLH" => Ok(LanguageCode::Tlh),
1518 "TLI" => Ok(LanguageCode::Tli),
1519 "TMH" => Ok(LanguageCode::Tmh),
1520 "TOG" => Ok(LanguageCode::Tog),
1521 "TON" => Ok(LanguageCode::Ton),
1522 "TPI" => Ok(LanguageCode::Tpi),
1523 "TSI" => Ok(LanguageCode::Tsi),
1524 "TSN" => Ok(LanguageCode::Tsn),
1525 "TSO" => Ok(LanguageCode::Tso),
1526 "TUK" => Ok(LanguageCode::Tuk),
1527 "TUM" => Ok(LanguageCode::Tum),
1528 "TUP" => Ok(LanguageCode::Tup),
1529 "TUR" => Ok(LanguageCode::Tur),
1530 "TUT" => Ok(LanguageCode::Tut),
1531 "TVL" => Ok(LanguageCode::Tvl),
1532 "TWI" => Ok(LanguageCode::Twi),
1533 "TYV" => Ok(LanguageCode::Tyv),
1534 "UDM" => Ok(LanguageCode::Udm),
1535 "UGA" => Ok(LanguageCode::Uga),
1536 "UIG" => Ok(LanguageCode::Uig),
1537 "UKR" => Ok(LanguageCode::Ukr),
1538 "UMB" => Ok(LanguageCode::Umb),
1539 "UND" => Ok(LanguageCode::Und),
1540 "URD" => Ok(LanguageCode::Urd),
1541 "UZB" => Ok(LanguageCode::Uzb),
1542 "VAI" => Ok(LanguageCode::Vai),
1543 "VEN" => Ok(LanguageCode::Ven),
1544 "VIE" => Ok(LanguageCode::Vie),
1545 "VOL" => Ok(LanguageCode::Vol),
1546 "VOT" => Ok(LanguageCode::Vot),
1547 "WAK" => Ok(LanguageCode::Wak),
1548 "WAL" => Ok(LanguageCode::Wal),
1549 "WAR" => Ok(LanguageCode::War),
1550 "WAS" => Ok(LanguageCode::Was),
1551 "WEL" => Ok(LanguageCode::Wel),
1552 "WEN" => Ok(LanguageCode::Wen),
1553 "WLN" => Ok(LanguageCode::Wln),
1554 "WOL" => Ok(LanguageCode::Wol),
1555 "XAL" => Ok(LanguageCode::Xal),
1556 "XHO" => Ok(LanguageCode::Xho),
1557 "YAO" => Ok(LanguageCode::Yao),
1558 "YAP" => Ok(LanguageCode::Yap),
1559 "YID" => Ok(LanguageCode::Yid),
1560 "YOR" => Ok(LanguageCode::Yor),
1561 "YPK" => Ok(LanguageCode::Ypk),
1562 "ZAP" => Ok(LanguageCode::Zap),
1563 "ZBL" => Ok(LanguageCode::Zbl),
1564 "ZEN" => Ok(LanguageCode::Zen),
1565 "ZGH" => Ok(LanguageCode::Zgh),
1566 "ZHA" => Ok(LanguageCode::Zha),
1567 "ZND" => Ok(LanguageCode::Znd),
1568 "ZUL" => Ok(LanguageCode::Zul),
1569 "ZUN" => Ok(LanguageCode::Zun),
1570 "ZXX" => Ok(LanguageCode::Zxx),
1571 "ZZA" => Ok(LanguageCode::Zza),
1572 _ => Err(ThothError::InvalidLanguageCode(input.to_string())),
1573 }
1574 }
1575}
1576
1577#[test]
1578fn test_languagecode_default() {
1579 let langcode: LanguageCode = Default::default();
1580 assert_eq!(langcode, LanguageCode::Eng);
1581}
1582
1583#[test]
1584fn test_languagerelation_default() {
1585 let langrelation: LanguageRelation = Default::default();
1586 assert_eq!(langrelation, LanguageRelation::Original);
1587}
1588
1589#[test]
1590fn test_languagerelation_display() {
1591 assert_eq!(format!("{}", LanguageRelation::Original), "Original");
1592 assert_eq!(
1593 format!("{}", LanguageRelation::TranslatedFrom),
1594 "Translated From"
1595 );
1596 assert_eq!(
1597 format!("{}", LanguageRelation::TranslatedInto),
1598 "Translated Into"
1599 );
1600}
1601
1602#[test]
1603fn test_languagecode_display() {
1604 assert_eq!(format!("{}", LanguageCode::Aar), "AAR");
1605 assert_eq!(format!("{}", LanguageCode::Abk), "ABK");
1606 assert_eq!(format!("{}", LanguageCode::Ace), "ACE");
1607 assert_eq!(format!("{}", LanguageCode::Ach), "ACH");
1608 assert_eq!(format!("{}", LanguageCode::Ada), "ADA");
1609 assert_eq!(format!("{}", LanguageCode::Ady), "ADY");
1610 assert_eq!(format!("{}", LanguageCode::Afa), "AFA");
1611 assert_eq!(format!("{}", LanguageCode::Afh), "AFH");
1612 assert_eq!(format!("{}", LanguageCode::Afr), "AFR");
1613 assert_eq!(format!("{}", LanguageCode::Ain), "AIN");
1614 assert_eq!(format!("{}", LanguageCode::Aka), "AKA");
1615 assert_eq!(format!("{}", LanguageCode::Akk), "AKK");
1616 assert_eq!(format!("{}", LanguageCode::Alb), "ALB");
1617 assert_eq!(format!("{}", LanguageCode::Ale), "ALE");
1618 assert_eq!(format!("{}", LanguageCode::Alg), "ALG");
1619 assert_eq!(format!("{}", LanguageCode::Alt), "ALT");
1620 assert_eq!(format!("{}", LanguageCode::Amh), "AMH");
1621 assert_eq!(format!("{}", LanguageCode::Ang), "ANG");
1622 assert_eq!(format!("{}", LanguageCode::Anp), "ANP");
1623 assert_eq!(format!("{}", LanguageCode::Apa), "APA");
1624 assert_eq!(format!("{}", LanguageCode::Ara), "ARA");
1625 assert_eq!(format!("{}", LanguageCode::Arc), "ARC");
1626 assert_eq!(format!("{}", LanguageCode::Arg), "ARG");
1627 assert_eq!(format!("{}", LanguageCode::Arm), "ARM");
1628 assert_eq!(format!("{}", LanguageCode::Arn), "ARN");
1629 assert_eq!(format!("{}", LanguageCode::Arp), "ARP");
1630 assert_eq!(format!("{}", LanguageCode::Art), "ART");
1631 assert_eq!(format!("{}", LanguageCode::Arw), "ARW");
1632 assert_eq!(format!("{}", LanguageCode::Asm), "ASM");
1633 assert_eq!(format!("{}", LanguageCode::Ast), "AST");
1634 assert_eq!(format!("{}", LanguageCode::Ath), "ATH");
1635 assert_eq!(format!("{}", LanguageCode::Aus), "AUS");
1636 assert_eq!(format!("{}", LanguageCode::Ava), "AVA");
1637 assert_eq!(format!("{}", LanguageCode::Ave), "AVE");
1638 assert_eq!(format!("{}", LanguageCode::Awa), "AWA");
1639 assert_eq!(format!("{}", LanguageCode::Aym), "AYM");
1640 assert_eq!(format!("{}", LanguageCode::Aze), "AZE");
1641 assert_eq!(format!("{}", LanguageCode::Bad), "BAD");
1642 assert_eq!(format!("{}", LanguageCode::Bai), "BAI");
1643 assert_eq!(format!("{}", LanguageCode::Bak), "BAK");
1644 assert_eq!(format!("{}", LanguageCode::Bal), "BAL");
1645 assert_eq!(format!("{}", LanguageCode::Bam), "BAM");
1646 assert_eq!(format!("{}", LanguageCode::Ban), "BAN");
1647 assert_eq!(format!("{}", LanguageCode::Baq), "BAQ");
1648 assert_eq!(format!("{}", LanguageCode::Bas), "BAS");
1649 assert_eq!(format!("{}", LanguageCode::Bat), "BAT");
1650 assert_eq!(format!("{}", LanguageCode::Bej), "BEJ");
1651 assert_eq!(format!("{}", LanguageCode::Bel), "BEL");
1652 assert_eq!(format!("{}", LanguageCode::Bem), "BEM");
1653 assert_eq!(format!("{}", LanguageCode::Ben), "BEN");
1654 assert_eq!(format!("{}", LanguageCode::Ber), "BER");
1655 assert_eq!(format!("{}", LanguageCode::Bho), "BHO");
1656 assert_eq!(format!("{}", LanguageCode::Bih), "BIH");
1657 assert_eq!(format!("{}", LanguageCode::Bik), "BIK");
1658 assert_eq!(format!("{}", LanguageCode::Bin), "BIN");
1659 assert_eq!(format!("{}", LanguageCode::Bis), "BIS");
1660 assert_eq!(format!("{}", LanguageCode::Bla), "BLA");
1661 assert_eq!(format!("{}", LanguageCode::Bnt), "BNT");
1662 assert_eq!(format!("{}", LanguageCode::Bos), "BOS");
1663 assert_eq!(format!("{}", LanguageCode::Bra), "BRA");
1664 assert_eq!(format!("{}", LanguageCode::Bre), "BRE");
1665 assert_eq!(format!("{}", LanguageCode::Btk), "BTK");
1666 assert_eq!(format!("{}", LanguageCode::Bua), "BUA");
1667 assert_eq!(format!("{}", LanguageCode::Bug), "BUG");
1668 assert_eq!(format!("{}", LanguageCode::Bul), "BUL");
1669 assert_eq!(format!("{}", LanguageCode::Bur), "BUR");
1670 assert_eq!(format!("{}", LanguageCode::Byn), "BYN");
1671 assert_eq!(format!("{}", LanguageCode::Cad), "CAD");
1672 assert_eq!(format!("{}", LanguageCode::Cai), "CAI");
1673 assert_eq!(format!("{}", LanguageCode::Car), "CAR");
1674 assert_eq!(format!("{}", LanguageCode::Cat), "CAT");
1675 assert_eq!(format!("{}", LanguageCode::Cau), "CAU");
1676 assert_eq!(format!("{}", LanguageCode::Ceb), "CEB");
1677 assert_eq!(format!("{}", LanguageCode::Cel), "CEL");
1678 assert_eq!(format!("{}", LanguageCode::Cha), "CHA");
1679 assert_eq!(format!("{}", LanguageCode::Chb), "CHB");
1680 assert_eq!(format!("{}", LanguageCode::Che), "CHE");
1681 assert_eq!(format!("{}", LanguageCode::Chg), "CHG");
1682 assert_eq!(format!("{}", LanguageCode::Chi), "CHI");
1683 assert_eq!(format!("{}", LanguageCode::Chk), "CHK");
1684 assert_eq!(format!("{}", LanguageCode::Chm), "CHM");
1685 assert_eq!(format!("{}", LanguageCode::Chn), "CHN");
1686 assert_eq!(format!("{}", LanguageCode::Cho), "CHO");
1687 assert_eq!(format!("{}", LanguageCode::Chp), "CHP");
1688 assert_eq!(format!("{}", LanguageCode::Chr), "CHR");
1689 assert_eq!(format!("{}", LanguageCode::Chu), "CHU");
1690 assert_eq!(format!("{}", LanguageCode::Chv), "CHV");
1691 assert_eq!(format!("{}", LanguageCode::Chy), "CHY");
1692 assert_eq!(format!("{}", LanguageCode::Cmc), "CMC");
1693 assert_eq!(format!("{}", LanguageCode::Cnr), "CNR");
1694 assert_eq!(format!("{}", LanguageCode::Cop), "COP");
1695 assert_eq!(format!("{}", LanguageCode::Cor), "COR");
1696 assert_eq!(format!("{}", LanguageCode::Cos), "COS");
1697 assert_eq!(format!("{}", LanguageCode::Cpe), "CPE");
1698 assert_eq!(format!("{}", LanguageCode::Cpf), "CPF");
1699 assert_eq!(format!("{}", LanguageCode::Cpp), "CPP");
1700 assert_eq!(format!("{}", LanguageCode::Cre), "CRE");
1701 assert_eq!(format!("{}", LanguageCode::Crh), "CRH");
1702 assert_eq!(format!("{}", LanguageCode::Crp), "CRP");
1703 assert_eq!(format!("{}", LanguageCode::Csb), "CSB");
1704 assert_eq!(format!("{}", LanguageCode::Cus), "CUS");
1705 assert_eq!(format!("{}", LanguageCode::Cze), "CZE");
1706 assert_eq!(format!("{}", LanguageCode::Dak), "DAK");
1707 assert_eq!(format!("{}", LanguageCode::Dan), "DAN");
1708 assert_eq!(format!("{}", LanguageCode::Dar), "DAR");
1709 assert_eq!(format!("{}", LanguageCode::Day), "DAY");
1710 assert_eq!(format!("{}", LanguageCode::Del), "DEL");
1711 assert_eq!(format!("{}", LanguageCode::Den), "DEN");
1712 assert_eq!(format!("{}", LanguageCode::Dgr), "DGR");
1713 assert_eq!(format!("{}", LanguageCode::Din), "DIN");
1714 assert_eq!(format!("{}", LanguageCode::Div), "DIV");
1715 assert_eq!(format!("{}", LanguageCode::Doi), "DOI");
1716 assert_eq!(format!("{}", LanguageCode::Dra), "DRA");
1717 assert_eq!(format!("{}", LanguageCode::Dsb), "DSB");
1718 assert_eq!(format!("{}", LanguageCode::Dua), "DUA");
1719 assert_eq!(format!("{}", LanguageCode::Dum), "DUM");
1720 assert_eq!(format!("{}", LanguageCode::Dut), "DUT");
1721 assert_eq!(format!("{}", LanguageCode::Dyu), "DYU");
1722 assert_eq!(format!("{}", LanguageCode::Dzo), "DZO");
1723 assert_eq!(format!("{}", LanguageCode::Efi), "EFI");
1724 assert_eq!(format!("{}", LanguageCode::Egy), "EGY");
1725 assert_eq!(format!("{}", LanguageCode::Eka), "EKA");
1726 assert_eq!(format!("{}", LanguageCode::Elx), "ELX");
1727 assert_eq!(format!("{}", LanguageCode::Eng), "ENG");
1728 assert_eq!(format!("{}", LanguageCode::Enm), "ENM");
1729 assert_eq!(format!("{}", LanguageCode::Epo), "EPO");
1730 assert_eq!(format!("{}", LanguageCode::Est), "EST");
1731 assert_eq!(format!("{}", LanguageCode::Ewe), "EWE");
1732 assert_eq!(format!("{}", LanguageCode::Ewo), "EWO");
1733 assert_eq!(format!("{}", LanguageCode::Fan), "FAN");
1734 assert_eq!(format!("{}", LanguageCode::Fao), "FAO");
1735 assert_eq!(format!("{}", LanguageCode::Fat), "FAT");
1736 assert_eq!(format!("{}", LanguageCode::Fij), "FIJ");
1737 assert_eq!(format!("{}", LanguageCode::Fil), "FIL");
1738 assert_eq!(format!("{}", LanguageCode::Fin), "FIN");
1739 assert_eq!(format!("{}", LanguageCode::Fiu), "FIU");
1740 assert_eq!(format!("{}", LanguageCode::Fon), "FON");
1741 assert_eq!(format!("{}", LanguageCode::Fre), "FRE");
1742 assert_eq!(format!("{}", LanguageCode::Frm), "FRM");
1743 assert_eq!(format!("{}", LanguageCode::Fro), "FRO");
1744 assert_eq!(format!("{}", LanguageCode::Frr), "FRR");
1745 assert_eq!(format!("{}", LanguageCode::Frs), "FRS");
1746 assert_eq!(format!("{}", LanguageCode::Fry), "FRY");
1747 assert_eq!(format!("{}", LanguageCode::Ful), "FUL");
1748 assert_eq!(format!("{}", LanguageCode::Fur), "FUR");
1749 assert_eq!(format!("{}", LanguageCode::Gaa), "GAA");
1750 assert_eq!(format!("{}", LanguageCode::Gay), "GAY");
1751 assert_eq!(format!("{}", LanguageCode::Gba), "GBA");
1752 assert_eq!(format!("{}", LanguageCode::Gem), "GEM");
1753 assert_eq!(format!("{}", LanguageCode::Geo), "GEO");
1754 assert_eq!(format!("{}", LanguageCode::Ger), "GER");
1755 assert_eq!(format!("{}", LanguageCode::Gez), "GEZ");
1756 assert_eq!(format!("{}", LanguageCode::Gil), "GIL");
1757 assert_eq!(format!("{}", LanguageCode::Gla), "GLA");
1758 assert_eq!(format!("{}", LanguageCode::Gle), "GLE");
1759 assert_eq!(format!("{}", LanguageCode::Glg), "GLG");
1760 assert_eq!(format!("{}", LanguageCode::Glv), "GLV");
1761 assert_eq!(format!("{}", LanguageCode::Gmh), "GMH");
1762 assert_eq!(format!("{}", LanguageCode::Goh), "GOH");
1763 assert_eq!(format!("{}", LanguageCode::Gon), "GON");
1764 assert_eq!(format!("{}", LanguageCode::Gor), "GOR");
1765 assert_eq!(format!("{}", LanguageCode::Got), "GOT");
1766 assert_eq!(format!("{}", LanguageCode::Grb), "GRB");
1767 assert_eq!(format!("{}", LanguageCode::Grc), "GRC");
1768 assert_eq!(format!("{}", LanguageCode::Gre), "GRE");
1769 assert_eq!(format!("{}", LanguageCode::Grn), "GRN");
1770 assert_eq!(format!("{}", LanguageCode::Gsw), "GSW");
1771 assert_eq!(format!("{}", LanguageCode::Guj), "GUJ");
1772 assert_eq!(format!("{}", LanguageCode::Gwi), "GWI");
1773 assert_eq!(format!("{}", LanguageCode::Hai), "HAI");
1774 assert_eq!(format!("{}", LanguageCode::Hat), "HAT");
1775 assert_eq!(format!("{}", LanguageCode::Hau), "HAU");
1776 assert_eq!(format!("{}", LanguageCode::Haw), "HAW");
1777 assert_eq!(format!("{}", LanguageCode::Heb), "HEB");
1778 assert_eq!(format!("{}", LanguageCode::Her), "HER");
1779 assert_eq!(format!("{}", LanguageCode::Hil), "HIL");
1780 assert_eq!(format!("{}", LanguageCode::Him), "HIM");
1781 assert_eq!(format!("{}", LanguageCode::Hin), "HIN");
1782 assert_eq!(format!("{}", LanguageCode::Hit), "HIT");
1783 assert_eq!(format!("{}", LanguageCode::Hmn), "HMN");
1784 assert_eq!(format!("{}", LanguageCode::Hmo), "HMO");
1785 assert_eq!(format!("{}", LanguageCode::Hrv), "HRV");
1786 assert_eq!(format!("{}", LanguageCode::Hsb), "HSB");
1787 assert_eq!(format!("{}", LanguageCode::Hun), "HUN");
1788 assert_eq!(format!("{}", LanguageCode::Hup), "HUP");
1789 assert_eq!(format!("{}", LanguageCode::Iba), "IBA");
1790 assert_eq!(format!("{}", LanguageCode::Ibo), "IBO");
1791 assert_eq!(format!("{}", LanguageCode::Ice), "ICE");
1792 assert_eq!(format!("{}", LanguageCode::Ido), "IDO");
1793 assert_eq!(format!("{}", LanguageCode::Iii), "III");
1794 assert_eq!(format!("{}", LanguageCode::Ijo), "IJO");
1795 assert_eq!(format!("{}", LanguageCode::Iku), "IKU");
1796 assert_eq!(format!("{}", LanguageCode::Ile), "ILE");
1797 assert_eq!(format!("{}", LanguageCode::Ilo), "ILO");
1798 assert_eq!(format!("{}", LanguageCode::Ina), "INA");
1799 assert_eq!(format!("{}", LanguageCode::Inc), "INC");
1800 assert_eq!(format!("{}", LanguageCode::Ind), "IND");
1801 assert_eq!(format!("{}", LanguageCode::Ine), "INE");
1802 assert_eq!(format!("{}", LanguageCode::Inh), "INH");
1803 assert_eq!(format!("{}", LanguageCode::Ipk), "IPK");
1804 assert_eq!(format!("{}", LanguageCode::Ira), "IRA");
1805 assert_eq!(format!("{}", LanguageCode::Iro), "IRO");
1806 assert_eq!(format!("{}", LanguageCode::Ita), "ITA");
1807 assert_eq!(format!("{}", LanguageCode::Jav), "JAV");
1808 assert_eq!(format!("{}", LanguageCode::Jbo), "JBO");
1809 assert_eq!(format!("{}", LanguageCode::Jpn), "JPN");
1810 assert_eq!(format!("{}", LanguageCode::Jpr), "JPR");
1811 assert_eq!(format!("{}", LanguageCode::Jrb), "JRB");
1812 assert_eq!(format!("{}", LanguageCode::Kaa), "KAA");
1813 assert_eq!(format!("{}", LanguageCode::Kab), "KAB");
1814 assert_eq!(format!("{}", LanguageCode::Kac), "KAC");
1815 assert_eq!(format!("{}", LanguageCode::Kal), "KAL");
1816 assert_eq!(format!("{}", LanguageCode::Kam), "KAM");
1817 assert_eq!(format!("{}", LanguageCode::Kan), "KAN");
1818 assert_eq!(format!("{}", LanguageCode::Kar), "KAR");
1819 assert_eq!(format!("{}", LanguageCode::Kas), "KAS");
1820 assert_eq!(format!("{}", LanguageCode::Kau), "KAU");
1821 assert_eq!(format!("{}", LanguageCode::Kaw), "KAW");
1822 assert_eq!(format!("{}", LanguageCode::Kaz), "KAZ");
1823 assert_eq!(format!("{}", LanguageCode::Kbd), "KBD");
1824 assert_eq!(format!("{}", LanguageCode::Kha), "KHA");
1825 assert_eq!(format!("{}", LanguageCode::Khi), "KHI");
1826 assert_eq!(format!("{}", LanguageCode::Khm), "KHM");
1827 assert_eq!(format!("{}", LanguageCode::Kho), "KHO");
1828 assert_eq!(format!("{}", LanguageCode::Kik), "KIK");
1829 assert_eq!(format!("{}", LanguageCode::Kin), "KIN");
1830 assert_eq!(format!("{}", LanguageCode::Kir), "KIR");
1831 assert_eq!(format!("{}", LanguageCode::Kmb), "KMB");
1832 assert_eq!(format!("{}", LanguageCode::Kok), "KOK");
1833 assert_eq!(format!("{}", LanguageCode::Kom), "KOM");
1834 assert_eq!(format!("{}", LanguageCode::Kon), "KON");
1835 assert_eq!(format!("{}", LanguageCode::Kor), "KOR");
1836 assert_eq!(format!("{}", LanguageCode::Kos), "KOS");
1837 assert_eq!(format!("{}", LanguageCode::Kpe), "KPE");
1838 assert_eq!(format!("{}", LanguageCode::Krc), "KRC");
1839 assert_eq!(format!("{}", LanguageCode::Krl), "KRL");
1840 assert_eq!(format!("{}", LanguageCode::Kro), "KRO");
1841 assert_eq!(format!("{}", LanguageCode::Kru), "KRU");
1842 assert_eq!(format!("{}", LanguageCode::Kua), "KUA");
1843 assert_eq!(format!("{}", LanguageCode::Kum), "KUM");
1844 assert_eq!(format!("{}", LanguageCode::Kur), "KUR");
1845 assert_eq!(format!("{}", LanguageCode::Kut), "KUT");
1846 assert_eq!(format!("{}", LanguageCode::Lad), "LAD");
1847 assert_eq!(format!("{}", LanguageCode::Lah), "LAH");
1848 assert_eq!(format!("{}", LanguageCode::Lam), "LAM");
1849 assert_eq!(format!("{}", LanguageCode::Lao), "LAO");
1850 assert_eq!(format!("{}", LanguageCode::Lat), "LAT");
1851 assert_eq!(format!("{}", LanguageCode::Lav), "LAV");
1852 assert_eq!(format!("{}", LanguageCode::Lez), "LEZ");
1853 assert_eq!(format!("{}", LanguageCode::Lim), "LIM");
1854 assert_eq!(format!("{}", LanguageCode::Lin), "LIN");
1855 assert_eq!(format!("{}", LanguageCode::Lit), "LIT");
1856 assert_eq!(format!("{}", LanguageCode::Lol), "LOL");
1857 assert_eq!(format!("{}", LanguageCode::Loz), "LOZ");
1858 assert_eq!(format!("{}", LanguageCode::Ltz), "LTZ");
1859 assert_eq!(format!("{}", LanguageCode::Lua), "LUA");
1860 assert_eq!(format!("{}", LanguageCode::Lub), "LUB");
1861 assert_eq!(format!("{}", LanguageCode::Lug), "LUG");
1862 assert_eq!(format!("{}", LanguageCode::Lui), "LUI");
1863 assert_eq!(format!("{}", LanguageCode::Lun), "LUN");
1864 assert_eq!(format!("{}", LanguageCode::Luo), "LUO");
1865 assert_eq!(format!("{}", LanguageCode::Lus), "LUS");
1866 assert_eq!(format!("{}", LanguageCode::Mac), "MAC");
1867 assert_eq!(format!("{}", LanguageCode::Mad), "MAD");
1868 assert_eq!(format!("{}", LanguageCode::Mag), "MAG");
1869 assert_eq!(format!("{}", LanguageCode::Mah), "MAH");
1870 assert_eq!(format!("{}", LanguageCode::Mai), "MAI");
1871 assert_eq!(format!("{}", LanguageCode::Mak), "MAK");
1872 assert_eq!(format!("{}", LanguageCode::Mal), "MAL");
1873 assert_eq!(format!("{}", LanguageCode::Man), "MAN");
1874 assert_eq!(format!("{}", LanguageCode::Mao), "MAO");
1875 assert_eq!(format!("{}", LanguageCode::Map), "MAP");
1876 assert_eq!(format!("{}", LanguageCode::Mar), "MAR");
1877 assert_eq!(format!("{}", LanguageCode::Mas), "MAS");
1878 assert_eq!(format!("{}", LanguageCode::May), "MAY");
1879 assert_eq!(format!("{}", LanguageCode::Mdf), "MDF");
1880 assert_eq!(format!("{}", LanguageCode::Mdr), "MDR");
1881 assert_eq!(format!("{}", LanguageCode::Men), "MEN");
1882 assert_eq!(format!("{}", LanguageCode::Mga), "MGA");
1883 assert_eq!(format!("{}", LanguageCode::Mic), "MIC");
1884 assert_eq!(format!("{}", LanguageCode::Min), "MIN");
1885 assert_eq!(format!("{}", LanguageCode::Mis), "MIS");
1886 assert_eq!(format!("{}", LanguageCode::Mkh), "MKH");
1887 assert_eq!(format!("{}", LanguageCode::Mlg), "MLG");
1888 assert_eq!(format!("{}", LanguageCode::Mlt), "MLT");
1889 assert_eq!(format!("{}", LanguageCode::Mnc), "MNC");
1890 assert_eq!(format!("{}", LanguageCode::Mni), "MNI");
1891 assert_eq!(format!("{}", LanguageCode::Mno), "MNO");
1892 assert_eq!(format!("{}", LanguageCode::Moh), "MOH");
1893 assert_eq!(format!("{}", LanguageCode::Mon), "MON");
1894 assert_eq!(format!("{}", LanguageCode::Mos), "MOS");
1895 assert_eq!(format!("{}", LanguageCode::Mul), "MUL");
1896 assert_eq!(format!("{}", LanguageCode::Mun), "MUN");
1897 assert_eq!(format!("{}", LanguageCode::Mus), "MUS");
1898 assert_eq!(format!("{}", LanguageCode::Mwl), "MWL");
1899 assert_eq!(format!("{}", LanguageCode::Mwr), "MWR");
1900 assert_eq!(format!("{}", LanguageCode::Myn), "MYN");
1901 assert_eq!(format!("{}", LanguageCode::Myv), "MYV");
1902 assert_eq!(format!("{}", LanguageCode::Nah), "NAH");
1903 assert_eq!(format!("{}", LanguageCode::Nai), "NAI");
1904 assert_eq!(format!("{}", LanguageCode::Nap), "NAP");
1905 assert_eq!(format!("{}", LanguageCode::Nau), "NAU");
1906 assert_eq!(format!("{}", LanguageCode::Nav), "NAV");
1907 assert_eq!(format!("{}", LanguageCode::Nbl), "NBL");
1908 assert_eq!(format!("{}", LanguageCode::Nde), "NDE");
1909 assert_eq!(format!("{}", LanguageCode::Ndo), "NDO");
1910 assert_eq!(format!("{}", LanguageCode::Nds), "NDS");
1911 assert_eq!(format!("{}", LanguageCode::Nep), "NEP");
1912 assert_eq!(format!("{}", LanguageCode::New), "NEW");
1913 assert_eq!(format!("{}", LanguageCode::Nia), "NIA");
1914 assert_eq!(format!("{}", LanguageCode::Nic), "NIC");
1915 assert_eq!(format!("{}", LanguageCode::Niu), "NIU");
1916 assert_eq!(format!("{}", LanguageCode::Nno), "NNO");
1917 assert_eq!(format!("{}", LanguageCode::Nob), "NOB");
1918 assert_eq!(format!("{}", LanguageCode::Nog), "NOG");
1919 assert_eq!(format!("{}", LanguageCode::Non), "NON");
1920 assert_eq!(format!("{}", LanguageCode::Nor), "NOR");
1921 assert_eq!(format!("{}", LanguageCode::Nqo), "NQO");
1922 assert_eq!(format!("{}", LanguageCode::Nso), "NSO");
1923 assert_eq!(format!("{}", LanguageCode::Nub), "NUB");
1924 assert_eq!(format!("{}", LanguageCode::Nwc), "NWC");
1925 assert_eq!(format!("{}", LanguageCode::Nya), "NYA");
1926 assert_eq!(format!("{}", LanguageCode::Nym), "NYM");
1927 assert_eq!(format!("{}", LanguageCode::Nyn), "NYN");
1928 assert_eq!(format!("{}", LanguageCode::Nyo), "NYO");
1929 assert_eq!(format!("{}", LanguageCode::Nzi), "NZI");
1930 assert_eq!(format!("{}", LanguageCode::Oci), "OCI");
1931 assert_eq!(format!("{}", LanguageCode::Oji), "OJI");
1932 assert_eq!(format!("{}", LanguageCode::Ori), "ORI");
1933 assert_eq!(format!("{}", LanguageCode::Orm), "ORM");
1934 assert_eq!(format!("{}", LanguageCode::Osa), "OSA");
1935 assert_eq!(format!("{}", LanguageCode::Oss), "OSS");
1936 assert_eq!(format!("{}", LanguageCode::Ota), "OTA");
1937 assert_eq!(format!("{}", LanguageCode::Oto), "OTO");
1938 assert_eq!(format!("{}", LanguageCode::Paa), "PAA");
1939 assert_eq!(format!("{}", LanguageCode::Pag), "PAG");
1940 assert_eq!(format!("{}", LanguageCode::Pal), "PAL");
1941 assert_eq!(format!("{}", LanguageCode::Pam), "PAM");
1942 assert_eq!(format!("{}", LanguageCode::Pan), "PAN");
1943 assert_eq!(format!("{}", LanguageCode::Pap), "PAP");
1944 assert_eq!(format!("{}", LanguageCode::Pau), "PAU");
1945 assert_eq!(format!("{}", LanguageCode::Peo), "PEO");
1946 assert_eq!(format!("{}", LanguageCode::Per), "PER");
1947 assert_eq!(format!("{}", LanguageCode::Phi), "PHI");
1948 assert_eq!(format!("{}", LanguageCode::Phn), "PHN");
1949 assert_eq!(format!("{}", LanguageCode::Pli), "PLI");
1950 assert_eq!(format!("{}", LanguageCode::Pol), "POL");
1951 assert_eq!(format!("{}", LanguageCode::Pon), "PON");
1952 assert_eq!(format!("{}", LanguageCode::Por), "POR");
1953 assert_eq!(format!("{}", LanguageCode::Pra), "PRA");
1954 assert_eq!(format!("{}", LanguageCode::Pro), "PRO");
1955 assert_eq!(format!("{}", LanguageCode::Pus), "PUS");
1956 assert_eq!(format!("{}", LanguageCode::Qaa), "QAA");
1957 assert_eq!(format!("{}", LanguageCode::Que), "QUE");
1958 assert_eq!(format!("{}", LanguageCode::Raj), "RAJ");
1959 assert_eq!(format!("{}", LanguageCode::Rap), "RAP");
1960 assert_eq!(format!("{}", LanguageCode::Rar), "RAR");
1961 assert_eq!(format!("{}", LanguageCode::Roa), "ROA");
1962 assert_eq!(format!("{}", LanguageCode::Roh), "ROH");
1963 assert_eq!(format!("{}", LanguageCode::Rom), "ROM");
1964 assert_eq!(format!("{}", LanguageCode::Rum), "RUM");
1965 assert_eq!(format!("{}", LanguageCode::Run), "RUN");
1966 assert_eq!(format!("{}", LanguageCode::Rup), "RUP");
1967 assert_eq!(format!("{}", LanguageCode::Rus), "RUS");
1968 assert_eq!(format!("{}", LanguageCode::Sad), "SAD");
1969 assert_eq!(format!("{}", LanguageCode::Sag), "SAG");
1970 assert_eq!(format!("{}", LanguageCode::Sah), "SAH");
1971 assert_eq!(format!("{}", LanguageCode::Sai), "SAI");
1972 assert_eq!(format!("{}", LanguageCode::Sal), "SAL");
1973 assert_eq!(format!("{}", LanguageCode::Sam), "SAM");
1974 assert_eq!(format!("{}", LanguageCode::San), "SAN");
1975 assert_eq!(format!("{}", LanguageCode::Sas), "SAS");
1976 assert_eq!(format!("{}", LanguageCode::Sat), "SAT");
1977 assert_eq!(format!("{}", LanguageCode::Scn), "SCN");
1978 assert_eq!(format!("{}", LanguageCode::Sco), "SCO");
1979 assert_eq!(format!("{}", LanguageCode::Sel), "SEL");
1980 assert_eq!(format!("{}", LanguageCode::Sem), "SEM");
1981 assert_eq!(format!("{}", LanguageCode::Sga), "SGA");
1982 assert_eq!(format!("{}", LanguageCode::Sgn), "SGN");
1983 assert_eq!(format!("{}", LanguageCode::Shn), "SHN");
1984 assert_eq!(format!("{}", LanguageCode::Sid), "SID");
1985 assert_eq!(format!("{}", LanguageCode::Sin), "SIN");
1986 assert_eq!(format!("{}", LanguageCode::Sio), "SIO");
1987 assert_eq!(format!("{}", LanguageCode::Sit), "SIT");
1988 assert_eq!(format!("{}", LanguageCode::Sla), "SLA");
1989 assert_eq!(format!("{}", LanguageCode::Slo), "SLO");
1990 assert_eq!(format!("{}", LanguageCode::Slv), "SLV");
1991 assert_eq!(format!("{}", LanguageCode::Sma), "SMA");
1992 assert_eq!(format!("{}", LanguageCode::Sme), "SME");
1993 assert_eq!(format!("{}", LanguageCode::Smi), "SMI");
1994 assert_eq!(format!("{}", LanguageCode::Smj), "SMJ");
1995 assert_eq!(format!("{}", LanguageCode::Smn), "SMN");
1996 assert_eq!(format!("{}", LanguageCode::Smo), "SMO");
1997 assert_eq!(format!("{}", LanguageCode::Sms), "SMS");
1998 assert_eq!(format!("{}", LanguageCode::Sna), "SNA");
1999 assert_eq!(format!("{}", LanguageCode::Snd), "SND");
2000 assert_eq!(format!("{}", LanguageCode::Snk), "SNK");
2001 assert_eq!(format!("{}", LanguageCode::Sog), "SOG");
2002 assert_eq!(format!("{}", LanguageCode::Som), "SOM");
2003 assert_eq!(format!("{}", LanguageCode::Son), "SON");
2004 assert_eq!(format!("{}", LanguageCode::Sot), "SOT");
2005 assert_eq!(format!("{}", LanguageCode::Spa), "SPA");
2006 assert_eq!(format!("{}", LanguageCode::Srd), "SRD");
2007 assert_eq!(format!("{}", LanguageCode::Srn), "SRN");
2008 assert_eq!(format!("{}", LanguageCode::Srp), "SRP");
2009 assert_eq!(format!("{}", LanguageCode::Srr), "SRR");
2010 assert_eq!(format!("{}", LanguageCode::Ssa), "SSA");
2011 assert_eq!(format!("{}", LanguageCode::Ssw), "SSW");
2012 assert_eq!(format!("{}", LanguageCode::Suk), "SUK");
2013 assert_eq!(format!("{}", LanguageCode::Sun), "SUN");
2014 assert_eq!(format!("{}", LanguageCode::Sus), "SUS");
2015 assert_eq!(format!("{}", LanguageCode::Sux), "SUX");
2016 assert_eq!(format!("{}", LanguageCode::Swa), "SWA");
2017 assert_eq!(format!("{}", LanguageCode::Swe), "SWE");
2018 assert_eq!(format!("{}", LanguageCode::Syc), "SYC");
2019 assert_eq!(format!("{}", LanguageCode::Syr), "SYR");
2020 assert_eq!(format!("{}", LanguageCode::Tah), "TAH");
2021 assert_eq!(format!("{}", LanguageCode::Tai), "TAI");
2022 assert_eq!(format!("{}", LanguageCode::Tam), "TAM");
2023 assert_eq!(format!("{}", LanguageCode::Tat), "TAT");
2024 assert_eq!(format!("{}", LanguageCode::Tel), "TEL");
2025 assert_eq!(format!("{}", LanguageCode::Tem), "TEM");
2026 assert_eq!(format!("{}", LanguageCode::Ter), "TER");
2027 assert_eq!(format!("{}", LanguageCode::Tet), "TET");
2028 assert_eq!(format!("{}", LanguageCode::Tgk), "TGK");
2029 assert_eq!(format!("{}", LanguageCode::Tgl), "TGL");
2030 assert_eq!(format!("{}", LanguageCode::Tha), "THA");
2031 assert_eq!(format!("{}", LanguageCode::Tib), "TIB");
2032 assert_eq!(format!("{}", LanguageCode::Tig), "TIG");
2033 assert_eq!(format!("{}", LanguageCode::Tir), "TIR");
2034 assert_eq!(format!("{}", LanguageCode::Tiv), "TIV");
2035 assert_eq!(format!("{}", LanguageCode::Tkl), "TKL");
2036 assert_eq!(format!("{}", LanguageCode::Tlh), "TLH");
2037 assert_eq!(format!("{}", LanguageCode::Tli), "TLI");
2038 assert_eq!(format!("{}", LanguageCode::Tmh), "TMH");
2039 assert_eq!(format!("{}", LanguageCode::Tog), "TOG");
2040 assert_eq!(format!("{}", LanguageCode::Ton), "TON");
2041 assert_eq!(format!("{}", LanguageCode::Tpi), "TPI");
2042 assert_eq!(format!("{}", LanguageCode::Tsi), "TSI");
2043 assert_eq!(format!("{}", LanguageCode::Tsn), "TSN");
2044 assert_eq!(format!("{}", LanguageCode::Tso), "TSO");
2045 assert_eq!(format!("{}", LanguageCode::Tuk), "TUK");
2046 assert_eq!(format!("{}", LanguageCode::Tum), "TUM");
2047 assert_eq!(format!("{}", LanguageCode::Tup), "TUP");
2048 assert_eq!(format!("{}", LanguageCode::Tur), "TUR");
2049 assert_eq!(format!("{}", LanguageCode::Tut), "TUT");
2050 assert_eq!(format!("{}", LanguageCode::Tvl), "TVL");
2051 assert_eq!(format!("{}", LanguageCode::Twi), "TWI");
2052 assert_eq!(format!("{}", LanguageCode::Tyv), "TYV");
2053 assert_eq!(format!("{}", LanguageCode::Udm), "UDM");
2054 assert_eq!(format!("{}", LanguageCode::Uga), "UGA");
2055 assert_eq!(format!("{}", LanguageCode::Uig), "UIG");
2056 assert_eq!(format!("{}", LanguageCode::Ukr), "UKR");
2057 assert_eq!(format!("{}", LanguageCode::Umb), "UMB");
2058 assert_eq!(format!("{}", LanguageCode::Und), "UND");
2059 assert_eq!(format!("{}", LanguageCode::Urd), "URD");
2060 assert_eq!(format!("{}", LanguageCode::Uzb), "UZB");
2061 assert_eq!(format!("{}", LanguageCode::Vai), "VAI");
2062 assert_eq!(format!("{}", LanguageCode::Ven), "VEN");
2063 assert_eq!(format!("{}", LanguageCode::Vie), "VIE");
2064 assert_eq!(format!("{}", LanguageCode::Vol), "VOL");
2065 assert_eq!(format!("{}", LanguageCode::Vot), "VOT");
2066 assert_eq!(format!("{}", LanguageCode::Wak), "WAK");
2067 assert_eq!(format!("{}", LanguageCode::Wal), "WAL");
2068 assert_eq!(format!("{}", LanguageCode::War), "WAR");
2069 assert_eq!(format!("{}", LanguageCode::Was), "WAS");
2070 assert_eq!(format!("{}", LanguageCode::Wel), "WEL");
2071 assert_eq!(format!("{}", LanguageCode::Wen), "WEN");
2072 assert_eq!(format!("{}", LanguageCode::Wln), "WLN");
2073 assert_eq!(format!("{}", LanguageCode::Wol), "WOL");
2074 assert_eq!(format!("{}", LanguageCode::Xal), "XAL");
2075 assert_eq!(format!("{}", LanguageCode::Xho), "XHO");
2076 assert_eq!(format!("{}", LanguageCode::Yao), "YAO");
2077 assert_eq!(format!("{}", LanguageCode::Yap), "YAP");
2078 assert_eq!(format!("{}", LanguageCode::Yid), "YID");
2079 assert_eq!(format!("{}", LanguageCode::Yor), "YOR");
2080 assert_eq!(format!("{}", LanguageCode::Ypk), "YPK");
2081 assert_eq!(format!("{}", LanguageCode::Zap), "ZAP");
2082 assert_eq!(format!("{}", LanguageCode::Zbl), "ZBL");
2083 assert_eq!(format!("{}", LanguageCode::Zen), "ZEN");
2084 assert_eq!(format!("{}", LanguageCode::Zgh), "ZGH");
2085 assert_eq!(format!("{}", LanguageCode::Zha), "ZHA");
2086 assert_eq!(format!("{}", LanguageCode::Znd), "ZND");
2087 assert_eq!(format!("{}", LanguageCode::Zul), "ZUL");
2088 assert_eq!(format!("{}", LanguageCode::Zun), "ZUN");
2089 assert_eq!(format!("{}", LanguageCode::Zxx), "ZXX");
2090 assert_eq!(format!("{}", LanguageCode::Zza), "ZZA");
2091}
2092
2093#[test]
2094fn test_languagerelation_fromstr() {
2095 assert_eq!(
2096 LanguageRelation::from_str("Original").unwrap(),
2097 LanguageRelation::Original
2098 );
2099 assert_eq!(
2100 LanguageRelation::from_str("Translated From").unwrap(),
2101 LanguageRelation::TranslatedFrom
2102 );
2103 assert_eq!(
2104 LanguageRelation::from_str("Translated Into").unwrap(),
2105 LanguageRelation::TranslatedInto
2106 );
2107
2108 assert!(LanguageRelation::from_str("Invented").is_err());
2109}
2110
2111#[test]
2112fn test_languagecode_fromstr() {
2113 assert_eq!(LanguageCode::from_str("AAR").unwrap(), LanguageCode::Aar);
2114 assert_eq!(LanguageCode::from_str("ABK").unwrap(), LanguageCode::Abk);
2115 assert_eq!(LanguageCode::from_str("ACE").unwrap(), LanguageCode::Ace);
2116 assert_eq!(LanguageCode::from_str("ACH").unwrap(), LanguageCode::Ach);
2117 assert_eq!(LanguageCode::from_str("ADA").unwrap(), LanguageCode::Ada);
2118 assert_eq!(LanguageCode::from_str("ADY").unwrap(), LanguageCode::Ady);
2119 assert_eq!(LanguageCode::from_str("AFA").unwrap(), LanguageCode::Afa);
2120 assert_eq!(LanguageCode::from_str("AFH").unwrap(), LanguageCode::Afh);
2121 assert_eq!(LanguageCode::from_str("AFR").unwrap(), LanguageCode::Afr);
2122 assert_eq!(LanguageCode::from_str("AIN").unwrap(), LanguageCode::Ain);
2123 assert_eq!(LanguageCode::from_str("AKA").unwrap(), LanguageCode::Aka);
2124 assert_eq!(LanguageCode::from_str("AKK").unwrap(), LanguageCode::Akk);
2125 assert_eq!(LanguageCode::from_str("ALB").unwrap(), LanguageCode::Alb);
2126 assert_eq!(LanguageCode::from_str("ALE").unwrap(), LanguageCode::Ale);
2127 assert_eq!(LanguageCode::from_str("ALG").unwrap(), LanguageCode::Alg);
2128 assert_eq!(LanguageCode::from_str("ALT").unwrap(), LanguageCode::Alt);
2129 assert_eq!(LanguageCode::from_str("AMH").unwrap(), LanguageCode::Amh);
2130 assert_eq!(LanguageCode::from_str("ANG").unwrap(), LanguageCode::Ang);
2131 assert_eq!(LanguageCode::from_str("ANP").unwrap(), LanguageCode::Anp);
2132 assert_eq!(LanguageCode::from_str("APA").unwrap(), LanguageCode::Apa);
2133 assert_eq!(LanguageCode::from_str("ARA").unwrap(), LanguageCode::Ara);
2134 assert_eq!(LanguageCode::from_str("ARC").unwrap(), LanguageCode::Arc);
2135 assert_eq!(LanguageCode::from_str("ARG").unwrap(), LanguageCode::Arg);
2136 assert_eq!(LanguageCode::from_str("ARM").unwrap(), LanguageCode::Arm);
2137 assert_eq!(LanguageCode::from_str("ARN").unwrap(), LanguageCode::Arn);
2138 assert_eq!(LanguageCode::from_str("ARP").unwrap(), LanguageCode::Arp);
2139 assert_eq!(LanguageCode::from_str("ART").unwrap(), LanguageCode::Art);
2140 assert_eq!(LanguageCode::from_str("ARW").unwrap(), LanguageCode::Arw);
2141 assert_eq!(LanguageCode::from_str("ASM").unwrap(), LanguageCode::Asm);
2142 assert_eq!(LanguageCode::from_str("AST").unwrap(), LanguageCode::Ast);
2143 assert_eq!(LanguageCode::from_str("ATH").unwrap(), LanguageCode::Ath);
2144 assert_eq!(LanguageCode::from_str("AUS").unwrap(), LanguageCode::Aus);
2145 assert_eq!(LanguageCode::from_str("AVA").unwrap(), LanguageCode::Ava);
2146 assert_eq!(LanguageCode::from_str("AVE").unwrap(), LanguageCode::Ave);
2147 assert_eq!(LanguageCode::from_str("AWA").unwrap(), LanguageCode::Awa);
2148 assert_eq!(LanguageCode::from_str("AYM").unwrap(), LanguageCode::Aym);
2149 assert_eq!(LanguageCode::from_str("AZE").unwrap(), LanguageCode::Aze);
2150 assert_eq!(LanguageCode::from_str("BAD").unwrap(), LanguageCode::Bad);
2151 assert_eq!(LanguageCode::from_str("BAI").unwrap(), LanguageCode::Bai);
2152 assert_eq!(LanguageCode::from_str("BAK").unwrap(), LanguageCode::Bak);
2153 assert_eq!(LanguageCode::from_str("BAL").unwrap(), LanguageCode::Bal);
2154 assert_eq!(LanguageCode::from_str("BAM").unwrap(), LanguageCode::Bam);
2155 assert_eq!(LanguageCode::from_str("BAN").unwrap(), LanguageCode::Ban);
2156 assert_eq!(LanguageCode::from_str("BAQ").unwrap(), LanguageCode::Baq);
2157 assert_eq!(LanguageCode::from_str("BAS").unwrap(), LanguageCode::Bas);
2158 assert_eq!(LanguageCode::from_str("BAT").unwrap(), LanguageCode::Bat);
2159 assert_eq!(LanguageCode::from_str("BEJ").unwrap(), LanguageCode::Bej);
2160 assert_eq!(LanguageCode::from_str("BEL").unwrap(), LanguageCode::Bel);
2161 assert_eq!(LanguageCode::from_str("BEM").unwrap(), LanguageCode::Bem);
2162 assert_eq!(LanguageCode::from_str("BEN").unwrap(), LanguageCode::Ben);
2163 assert_eq!(LanguageCode::from_str("BER").unwrap(), LanguageCode::Ber);
2164 assert_eq!(LanguageCode::from_str("BHO").unwrap(), LanguageCode::Bho);
2165 assert_eq!(LanguageCode::from_str("BIH").unwrap(), LanguageCode::Bih);
2166 assert_eq!(LanguageCode::from_str("BIK").unwrap(), LanguageCode::Bik);
2167 assert_eq!(LanguageCode::from_str("BIN").unwrap(), LanguageCode::Bin);
2168 assert_eq!(LanguageCode::from_str("BIS").unwrap(), LanguageCode::Bis);
2169 assert_eq!(LanguageCode::from_str("BLA").unwrap(), LanguageCode::Bla);
2170 assert_eq!(LanguageCode::from_str("BNT").unwrap(), LanguageCode::Bnt);
2171 assert_eq!(LanguageCode::from_str("BOS").unwrap(), LanguageCode::Bos);
2172 assert_eq!(LanguageCode::from_str("BRA").unwrap(), LanguageCode::Bra);
2173 assert_eq!(LanguageCode::from_str("BRE").unwrap(), LanguageCode::Bre);
2174 assert_eq!(LanguageCode::from_str("BTK").unwrap(), LanguageCode::Btk);
2175 assert_eq!(LanguageCode::from_str("BUA").unwrap(), LanguageCode::Bua);
2176 assert_eq!(LanguageCode::from_str("BUG").unwrap(), LanguageCode::Bug);
2177 assert_eq!(LanguageCode::from_str("BUL").unwrap(), LanguageCode::Bul);
2178 assert_eq!(LanguageCode::from_str("BUR").unwrap(), LanguageCode::Bur);
2179 assert_eq!(LanguageCode::from_str("BYN").unwrap(), LanguageCode::Byn);
2180 assert_eq!(LanguageCode::from_str("CAD").unwrap(), LanguageCode::Cad);
2181 assert_eq!(LanguageCode::from_str("CAI").unwrap(), LanguageCode::Cai);
2182 assert_eq!(LanguageCode::from_str("CAR").unwrap(), LanguageCode::Car);
2183 assert_eq!(LanguageCode::from_str("CAT").unwrap(), LanguageCode::Cat);
2184 assert_eq!(LanguageCode::from_str("CAU").unwrap(), LanguageCode::Cau);
2185 assert_eq!(LanguageCode::from_str("CEB").unwrap(), LanguageCode::Ceb);
2186 assert_eq!(LanguageCode::from_str("CEL").unwrap(), LanguageCode::Cel);
2187 assert_eq!(LanguageCode::from_str("CHA").unwrap(), LanguageCode::Cha);
2188 assert_eq!(LanguageCode::from_str("CHB").unwrap(), LanguageCode::Chb);
2189 assert_eq!(LanguageCode::from_str("CHE").unwrap(), LanguageCode::Che);
2190 assert_eq!(LanguageCode::from_str("CHG").unwrap(), LanguageCode::Chg);
2191 assert_eq!(LanguageCode::from_str("CHI").unwrap(), LanguageCode::Chi);
2192 assert_eq!(LanguageCode::from_str("CHK").unwrap(), LanguageCode::Chk);
2193 assert_eq!(LanguageCode::from_str("CHM").unwrap(), LanguageCode::Chm);
2194 assert_eq!(LanguageCode::from_str("CHN").unwrap(), LanguageCode::Chn);
2195 assert_eq!(LanguageCode::from_str("CHO").unwrap(), LanguageCode::Cho);
2196 assert_eq!(LanguageCode::from_str("CHP").unwrap(), LanguageCode::Chp);
2197 assert_eq!(LanguageCode::from_str("CHR").unwrap(), LanguageCode::Chr);
2198 assert_eq!(LanguageCode::from_str("CHU").unwrap(), LanguageCode::Chu);
2199 assert_eq!(LanguageCode::from_str("CHV").unwrap(), LanguageCode::Chv);
2200 assert_eq!(LanguageCode::from_str("CHY").unwrap(), LanguageCode::Chy);
2201 assert_eq!(LanguageCode::from_str("CMC").unwrap(), LanguageCode::Cmc);
2202 assert_eq!(LanguageCode::from_str("CNR").unwrap(), LanguageCode::Cnr);
2203 assert_eq!(LanguageCode::from_str("COP").unwrap(), LanguageCode::Cop);
2204 assert_eq!(LanguageCode::from_str("COR").unwrap(), LanguageCode::Cor);
2205 assert_eq!(LanguageCode::from_str("COS").unwrap(), LanguageCode::Cos);
2206 assert_eq!(LanguageCode::from_str("CPE").unwrap(), LanguageCode::Cpe);
2207 assert_eq!(LanguageCode::from_str("CPF").unwrap(), LanguageCode::Cpf);
2208 assert_eq!(LanguageCode::from_str("CPP").unwrap(), LanguageCode::Cpp);
2209 assert_eq!(LanguageCode::from_str("CRE").unwrap(), LanguageCode::Cre);
2210 assert_eq!(LanguageCode::from_str("CRH").unwrap(), LanguageCode::Crh);
2211 assert_eq!(LanguageCode::from_str("CRP").unwrap(), LanguageCode::Crp);
2212 assert_eq!(LanguageCode::from_str("CSB").unwrap(), LanguageCode::Csb);
2213 assert_eq!(LanguageCode::from_str("CUS").unwrap(), LanguageCode::Cus);
2214 assert_eq!(LanguageCode::from_str("CZE").unwrap(), LanguageCode::Cze);
2215 assert_eq!(LanguageCode::from_str("DAK").unwrap(), LanguageCode::Dak);
2216 assert_eq!(LanguageCode::from_str("DAN").unwrap(), LanguageCode::Dan);
2217 assert_eq!(LanguageCode::from_str("DAR").unwrap(), LanguageCode::Dar);
2218 assert_eq!(LanguageCode::from_str("DAY").unwrap(), LanguageCode::Day);
2219 assert_eq!(LanguageCode::from_str("DEL").unwrap(), LanguageCode::Del);
2220 assert_eq!(LanguageCode::from_str("DEN").unwrap(), LanguageCode::Den);
2221 assert_eq!(LanguageCode::from_str("DGR").unwrap(), LanguageCode::Dgr);
2222 assert_eq!(LanguageCode::from_str("DIN").unwrap(), LanguageCode::Din);
2223 assert_eq!(LanguageCode::from_str("DIV").unwrap(), LanguageCode::Div);
2224 assert_eq!(LanguageCode::from_str("DOI").unwrap(), LanguageCode::Doi);
2225 assert_eq!(LanguageCode::from_str("DRA").unwrap(), LanguageCode::Dra);
2226 assert_eq!(LanguageCode::from_str("DSB").unwrap(), LanguageCode::Dsb);
2227 assert_eq!(LanguageCode::from_str("DUA").unwrap(), LanguageCode::Dua);
2228 assert_eq!(LanguageCode::from_str("DUM").unwrap(), LanguageCode::Dum);
2229 assert_eq!(LanguageCode::from_str("DUT").unwrap(), LanguageCode::Dut);
2230 assert_eq!(LanguageCode::from_str("DYU").unwrap(), LanguageCode::Dyu);
2231 assert_eq!(LanguageCode::from_str("DZO").unwrap(), LanguageCode::Dzo);
2232 assert_eq!(LanguageCode::from_str("EFI").unwrap(), LanguageCode::Efi);
2233 assert_eq!(LanguageCode::from_str("EGY").unwrap(), LanguageCode::Egy);
2234 assert_eq!(LanguageCode::from_str("EKA").unwrap(), LanguageCode::Eka);
2235 assert_eq!(LanguageCode::from_str("ELX").unwrap(), LanguageCode::Elx);
2236 assert_eq!(LanguageCode::from_str("ENG").unwrap(), LanguageCode::Eng);
2237 assert_eq!(LanguageCode::from_str("ENM").unwrap(), LanguageCode::Enm);
2238 assert_eq!(LanguageCode::from_str("EPO").unwrap(), LanguageCode::Epo);
2239 assert_eq!(LanguageCode::from_str("EST").unwrap(), LanguageCode::Est);
2240 assert_eq!(LanguageCode::from_str("EWE").unwrap(), LanguageCode::Ewe);
2241 assert_eq!(LanguageCode::from_str("EWO").unwrap(), LanguageCode::Ewo);
2242 assert_eq!(LanguageCode::from_str("FAN").unwrap(), LanguageCode::Fan);
2243 assert_eq!(LanguageCode::from_str("FAO").unwrap(), LanguageCode::Fao);
2244 assert_eq!(LanguageCode::from_str("FAT").unwrap(), LanguageCode::Fat);
2245 assert_eq!(LanguageCode::from_str("FIJ").unwrap(), LanguageCode::Fij);
2246 assert_eq!(LanguageCode::from_str("FIL").unwrap(), LanguageCode::Fil);
2247 assert_eq!(LanguageCode::from_str("FIN").unwrap(), LanguageCode::Fin);
2248 assert_eq!(LanguageCode::from_str("FIU").unwrap(), LanguageCode::Fiu);
2249 assert_eq!(LanguageCode::from_str("FON").unwrap(), LanguageCode::Fon);
2250 assert_eq!(LanguageCode::from_str("FRE").unwrap(), LanguageCode::Fre);
2251 assert_eq!(LanguageCode::from_str("FRM").unwrap(), LanguageCode::Frm);
2252 assert_eq!(LanguageCode::from_str("FRO").unwrap(), LanguageCode::Fro);
2253 assert_eq!(LanguageCode::from_str("FRR").unwrap(), LanguageCode::Frr);
2254 assert_eq!(LanguageCode::from_str("FRS").unwrap(), LanguageCode::Frs);
2255 assert_eq!(LanguageCode::from_str("FRY").unwrap(), LanguageCode::Fry);
2256 assert_eq!(LanguageCode::from_str("FUL").unwrap(), LanguageCode::Ful);
2257 assert_eq!(LanguageCode::from_str("FUR").unwrap(), LanguageCode::Fur);
2258 assert_eq!(LanguageCode::from_str("GAA").unwrap(), LanguageCode::Gaa);
2259 assert_eq!(LanguageCode::from_str("GAY").unwrap(), LanguageCode::Gay);
2260 assert_eq!(LanguageCode::from_str("GBA").unwrap(), LanguageCode::Gba);
2261 assert_eq!(LanguageCode::from_str("GEM").unwrap(), LanguageCode::Gem);
2262 assert_eq!(LanguageCode::from_str("GEO").unwrap(), LanguageCode::Geo);
2263 assert_eq!(LanguageCode::from_str("GER").unwrap(), LanguageCode::Ger);
2264 assert_eq!(LanguageCode::from_str("GEZ").unwrap(), LanguageCode::Gez);
2265 assert_eq!(LanguageCode::from_str("GIL").unwrap(), LanguageCode::Gil);
2266 assert_eq!(LanguageCode::from_str("GLA").unwrap(), LanguageCode::Gla);
2267 assert_eq!(LanguageCode::from_str("GLE").unwrap(), LanguageCode::Gle);
2268 assert_eq!(LanguageCode::from_str("GLG").unwrap(), LanguageCode::Glg);
2269 assert_eq!(LanguageCode::from_str("GLV").unwrap(), LanguageCode::Glv);
2270 assert_eq!(LanguageCode::from_str("GMH").unwrap(), LanguageCode::Gmh);
2271 assert_eq!(LanguageCode::from_str("GOH").unwrap(), LanguageCode::Goh);
2272 assert_eq!(LanguageCode::from_str("GON").unwrap(), LanguageCode::Gon);
2273 assert_eq!(LanguageCode::from_str("GOR").unwrap(), LanguageCode::Gor);
2274 assert_eq!(LanguageCode::from_str("GOT").unwrap(), LanguageCode::Got);
2275 assert_eq!(LanguageCode::from_str("GRB").unwrap(), LanguageCode::Grb);
2276 assert_eq!(LanguageCode::from_str("GRC").unwrap(), LanguageCode::Grc);
2277 assert_eq!(LanguageCode::from_str("GRE").unwrap(), LanguageCode::Gre);
2278 assert_eq!(LanguageCode::from_str("GRN").unwrap(), LanguageCode::Grn);
2279 assert_eq!(LanguageCode::from_str("GSW").unwrap(), LanguageCode::Gsw);
2280 assert_eq!(LanguageCode::from_str("GUJ").unwrap(), LanguageCode::Guj);
2281 assert_eq!(LanguageCode::from_str("GWI").unwrap(), LanguageCode::Gwi);
2282 assert_eq!(LanguageCode::from_str("HAI").unwrap(), LanguageCode::Hai);
2283 assert_eq!(LanguageCode::from_str("HAT").unwrap(), LanguageCode::Hat);
2284 assert_eq!(LanguageCode::from_str("HAU").unwrap(), LanguageCode::Hau);
2285 assert_eq!(LanguageCode::from_str("HAW").unwrap(), LanguageCode::Haw);
2286 assert_eq!(LanguageCode::from_str("HEB").unwrap(), LanguageCode::Heb);
2287 assert_eq!(LanguageCode::from_str("HER").unwrap(), LanguageCode::Her);
2288 assert_eq!(LanguageCode::from_str("HIL").unwrap(), LanguageCode::Hil);
2289 assert_eq!(LanguageCode::from_str("HIM").unwrap(), LanguageCode::Him);
2290 assert_eq!(LanguageCode::from_str("HIN").unwrap(), LanguageCode::Hin);
2291 assert_eq!(LanguageCode::from_str("HIT").unwrap(), LanguageCode::Hit);
2292 assert_eq!(LanguageCode::from_str("HMN").unwrap(), LanguageCode::Hmn);
2293 assert_eq!(LanguageCode::from_str("HMO").unwrap(), LanguageCode::Hmo);
2294 assert_eq!(LanguageCode::from_str("HRV").unwrap(), LanguageCode::Hrv);
2295 assert_eq!(LanguageCode::from_str("HSB").unwrap(), LanguageCode::Hsb);
2296 assert_eq!(LanguageCode::from_str("HUN").unwrap(), LanguageCode::Hun);
2297 assert_eq!(LanguageCode::from_str("HUP").unwrap(), LanguageCode::Hup);
2298 assert_eq!(LanguageCode::from_str("IBA").unwrap(), LanguageCode::Iba);
2299 assert_eq!(LanguageCode::from_str("IBO").unwrap(), LanguageCode::Ibo);
2300 assert_eq!(LanguageCode::from_str("ICE").unwrap(), LanguageCode::Ice);
2301 assert_eq!(LanguageCode::from_str("IDO").unwrap(), LanguageCode::Ido);
2302 assert_eq!(LanguageCode::from_str("III").unwrap(), LanguageCode::Iii);
2303 assert_eq!(LanguageCode::from_str("IJO").unwrap(), LanguageCode::Ijo);
2304 assert_eq!(LanguageCode::from_str("IKU").unwrap(), LanguageCode::Iku);
2305 assert_eq!(LanguageCode::from_str("ILE").unwrap(), LanguageCode::Ile);
2306 assert_eq!(LanguageCode::from_str("ILO").unwrap(), LanguageCode::Ilo);
2307 assert_eq!(LanguageCode::from_str("INA").unwrap(), LanguageCode::Ina);
2308 assert_eq!(LanguageCode::from_str("INC").unwrap(), LanguageCode::Inc);
2309 assert_eq!(LanguageCode::from_str("IND").unwrap(), LanguageCode::Ind);
2310 assert_eq!(LanguageCode::from_str("INE").unwrap(), LanguageCode::Ine);
2311 assert_eq!(LanguageCode::from_str("INH").unwrap(), LanguageCode::Inh);
2312 assert_eq!(LanguageCode::from_str("IPK").unwrap(), LanguageCode::Ipk);
2313 assert_eq!(LanguageCode::from_str("IRA").unwrap(), LanguageCode::Ira);
2314 assert_eq!(LanguageCode::from_str("IRO").unwrap(), LanguageCode::Iro);
2315 assert_eq!(LanguageCode::from_str("ITA").unwrap(), LanguageCode::Ita);
2316 assert_eq!(LanguageCode::from_str("JAV").unwrap(), LanguageCode::Jav);
2317 assert_eq!(LanguageCode::from_str("JBO").unwrap(), LanguageCode::Jbo);
2318 assert_eq!(LanguageCode::from_str("JPN").unwrap(), LanguageCode::Jpn);
2319 assert_eq!(LanguageCode::from_str("JPR").unwrap(), LanguageCode::Jpr);
2320 assert_eq!(LanguageCode::from_str("JRB").unwrap(), LanguageCode::Jrb);
2321 assert_eq!(LanguageCode::from_str("KAA").unwrap(), LanguageCode::Kaa);
2322 assert_eq!(LanguageCode::from_str("KAB").unwrap(), LanguageCode::Kab);
2323 assert_eq!(LanguageCode::from_str("KAC").unwrap(), LanguageCode::Kac);
2324 assert_eq!(LanguageCode::from_str("KAL").unwrap(), LanguageCode::Kal);
2325 assert_eq!(LanguageCode::from_str("KAM").unwrap(), LanguageCode::Kam);
2326 assert_eq!(LanguageCode::from_str("KAN").unwrap(), LanguageCode::Kan);
2327 assert_eq!(LanguageCode::from_str("KAR").unwrap(), LanguageCode::Kar);
2328 assert_eq!(LanguageCode::from_str("KAS").unwrap(), LanguageCode::Kas);
2329 assert_eq!(LanguageCode::from_str("KAU").unwrap(), LanguageCode::Kau);
2330 assert_eq!(LanguageCode::from_str("KAW").unwrap(), LanguageCode::Kaw);
2331 assert_eq!(LanguageCode::from_str("KAZ").unwrap(), LanguageCode::Kaz);
2332 assert_eq!(LanguageCode::from_str("KBD").unwrap(), LanguageCode::Kbd);
2333 assert_eq!(LanguageCode::from_str("KHA").unwrap(), LanguageCode::Kha);
2334 assert_eq!(LanguageCode::from_str("KHI").unwrap(), LanguageCode::Khi);
2335 assert_eq!(LanguageCode::from_str("KHM").unwrap(), LanguageCode::Khm);
2336 assert_eq!(LanguageCode::from_str("KHO").unwrap(), LanguageCode::Kho);
2337 assert_eq!(LanguageCode::from_str("KIK").unwrap(), LanguageCode::Kik);
2338 assert_eq!(LanguageCode::from_str("KIN").unwrap(), LanguageCode::Kin);
2339 assert_eq!(LanguageCode::from_str("KIR").unwrap(), LanguageCode::Kir);
2340 assert_eq!(LanguageCode::from_str("KMB").unwrap(), LanguageCode::Kmb);
2341 assert_eq!(LanguageCode::from_str("KOK").unwrap(), LanguageCode::Kok);
2342 assert_eq!(LanguageCode::from_str("KOM").unwrap(), LanguageCode::Kom);
2343 assert_eq!(LanguageCode::from_str("KON").unwrap(), LanguageCode::Kon);
2344 assert_eq!(LanguageCode::from_str("KOR").unwrap(), LanguageCode::Kor);
2345 assert_eq!(LanguageCode::from_str("KOS").unwrap(), LanguageCode::Kos);
2346 assert_eq!(LanguageCode::from_str("KPE").unwrap(), LanguageCode::Kpe);
2347 assert_eq!(LanguageCode::from_str("KRC").unwrap(), LanguageCode::Krc);
2348 assert_eq!(LanguageCode::from_str("KRL").unwrap(), LanguageCode::Krl);
2349 assert_eq!(LanguageCode::from_str("KRO").unwrap(), LanguageCode::Kro);
2350 assert_eq!(LanguageCode::from_str("KRU").unwrap(), LanguageCode::Kru);
2351 assert_eq!(LanguageCode::from_str("KUA").unwrap(), LanguageCode::Kua);
2352 assert_eq!(LanguageCode::from_str("KUM").unwrap(), LanguageCode::Kum);
2353 assert_eq!(LanguageCode::from_str("KUR").unwrap(), LanguageCode::Kur);
2354 assert_eq!(LanguageCode::from_str("KUT").unwrap(), LanguageCode::Kut);
2355 assert_eq!(LanguageCode::from_str("LAD").unwrap(), LanguageCode::Lad);
2356 assert_eq!(LanguageCode::from_str("LAH").unwrap(), LanguageCode::Lah);
2357 assert_eq!(LanguageCode::from_str("LAM").unwrap(), LanguageCode::Lam);
2358 assert_eq!(LanguageCode::from_str("LAO").unwrap(), LanguageCode::Lao);
2359 assert_eq!(LanguageCode::from_str("LAT").unwrap(), LanguageCode::Lat);
2360 assert_eq!(LanguageCode::from_str("LAV").unwrap(), LanguageCode::Lav);
2361 assert_eq!(LanguageCode::from_str("LEZ").unwrap(), LanguageCode::Lez);
2362 assert_eq!(LanguageCode::from_str("LIM").unwrap(), LanguageCode::Lim);
2363 assert_eq!(LanguageCode::from_str("LIN").unwrap(), LanguageCode::Lin);
2364 assert_eq!(LanguageCode::from_str("LIT").unwrap(), LanguageCode::Lit);
2365 assert_eq!(LanguageCode::from_str("LOL").unwrap(), LanguageCode::Lol);
2366 assert_eq!(LanguageCode::from_str("LOZ").unwrap(), LanguageCode::Loz);
2367 assert_eq!(LanguageCode::from_str("LTZ").unwrap(), LanguageCode::Ltz);
2368 assert_eq!(LanguageCode::from_str("LUA").unwrap(), LanguageCode::Lua);
2369 assert_eq!(LanguageCode::from_str("LUB").unwrap(), LanguageCode::Lub);
2370 assert_eq!(LanguageCode::from_str("LUG").unwrap(), LanguageCode::Lug);
2371 assert_eq!(LanguageCode::from_str("LUI").unwrap(), LanguageCode::Lui);
2372 assert_eq!(LanguageCode::from_str("LUN").unwrap(), LanguageCode::Lun);
2373 assert_eq!(LanguageCode::from_str("LUO").unwrap(), LanguageCode::Luo);
2374 assert_eq!(LanguageCode::from_str("LUS").unwrap(), LanguageCode::Lus);
2375 assert_eq!(LanguageCode::from_str("MAC").unwrap(), LanguageCode::Mac);
2376 assert_eq!(LanguageCode::from_str("MAD").unwrap(), LanguageCode::Mad);
2377 assert_eq!(LanguageCode::from_str("MAG").unwrap(), LanguageCode::Mag);
2378 assert_eq!(LanguageCode::from_str("MAH").unwrap(), LanguageCode::Mah);
2379 assert_eq!(LanguageCode::from_str("MAI").unwrap(), LanguageCode::Mai);
2380 assert_eq!(LanguageCode::from_str("MAK").unwrap(), LanguageCode::Mak);
2381 assert_eq!(LanguageCode::from_str("MAL").unwrap(), LanguageCode::Mal);
2382 assert_eq!(LanguageCode::from_str("MAN").unwrap(), LanguageCode::Man);
2383 assert_eq!(LanguageCode::from_str("MAO").unwrap(), LanguageCode::Mao);
2384 assert_eq!(LanguageCode::from_str("MAP").unwrap(), LanguageCode::Map);
2385 assert_eq!(LanguageCode::from_str("MAR").unwrap(), LanguageCode::Mar);
2386 assert_eq!(LanguageCode::from_str("MAS").unwrap(), LanguageCode::Mas);
2387 assert_eq!(LanguageCode::from_str("MAY").unwrap(), LanguageCode::May);
2388 assert_eq!(LanguageCode::from_str("MDF").unwrap(), LanguageCode::Mdf);
2389 assert_eq!(LanguageCode::from_str("MDR").unwrap(), LanguageCode::Mdr);
2390 assert_eq!(LanguageCode::from_str("MEN").unwrap(), LanguageCode::Men);
2391 assert_eq!(LanguageCode::from_str("MGA").unwrap(), LanguageCode::Mga);
2392 assert_eq!(LanguageCode::from_str("MIC").unwrap(), LanguageCode::Mic);
2393 assert_eq!(LanguageCode::from_str("MIN").unwrap(), LanguageCode::Min);
2394 assert_eq!(LanguageCode::from_str("MIS").unwrap(), LanguageCode::Mis);
2395 assert_eq!(LanguageCode::from_str("MKH").unwrap(), LanguageCode::Mkh);
2396 assert_eq!(LanguageCode::from_str("MLG").unwrap(), LanguageCode::Mlg);
2397 assert_eq!(LanguageCode::from_str("MLT").unwrap(), LanguageCode::Mlt);
2398 assert_eq!(LanguageCode::from_str("MNC").unwrap(), LanguageCode::Mnc);
2399 assert_eq!(LanguageCode::from_str("MNI").unwrap(), LanguageCode::Mni);
2400 assert_eq!(LanguageCode::from_str("MNO").unwrap(), LanguageCode::Mno);
2401 assert_eq!(LanguageCode::from_str("MOH").unwrap(), LanguageCode::Moh);
2402 assert_eq!(LanguageCode::from_str("MON").unwrap(), LanguageCode::Mon);
2403 assert_eq!(LanguageCode::from_str("MOS").unwrap(), LanguageCode::Mos);
2404 assert_eq!(LanguageCode::from_str("MUL").unwrap(), LanguageCode::Mul);
2405 assert_eq!(LanguageCode::from_str("MUN").unwrap(), LanguageCode::Mun);
2406 assert_eq!(LanguageCode::from_str("MUS").unwrap(), LanguageCode::Mus);
2407 assert_eq!(LanguageCode::from_str("MWL").unwrap(), LanguageCode::Mwl);
2408 assert_eq!(LanguageCode::from_str("MWR").unwrap(), LanguageCode::Mwr);
2409 assert_eq!(LanguageCode::from_str("MYN").unwrap(), LanguageCode::Myn);
2410 assert_eq!(LanguageCode::from_str("MYV").unwrap(), LanguageCode::Myv);
2411 assert_eq!(LanguageCode::from_str("NAH").unwrap(), LanguageCode::Nah);
2412 assert_eq!(LanguageCode::from_str("NAI").unwrap(), LanguageCode::Nai);
2413 assert_eq!(LanguageCode::from_str("NAP").unwrap(), LanguageCode::Nap);
2414 assert_eq!(LanguageCode::from_str("NAU").unwrap(), LanguageCode::Nau);
2415 assert_eq!(LanguageCode::from_str("NAV").unwrap(), LanguageCode::Nav);
2416 assert_eq!(LanguageCode::from_str("NBL").unwrap(), LanguageCode::Nbl);
2417 assert_eq!(LanguageCode::from_str("NDE").unwrap(), LanguageCode::Nde);
2418 assert_eq!(LanguageCode::from_str("NDO").unwrap(), LanguageCode::Ndo);
2419 assert_eq!(LanguageCode::from_str("NDS").unwrap(), LanguageCode::Nds);
2420 assert_eq!(LanguageCode::from_str("NEP").unwrap(), LanguageCode::Nep);
2421 assert_eq!(LanguageCode::from_str("NEW").unwrap(), LanguageCode::New);
2422 assert_eq!(LanguageCode::from_str("NIA").unwrap(), LanguageCode::Nia);
2423 assert_eq!(LanguageCode::from_str("NIC").unwrap(), LanguageCode::Nic);
2424 assert_eq!(LanguageCode::from_str("NIU").unwrap(), LanguageCode::Niu);
2425 assert_eq!(LanguageCode::from_str("NNO").unwrap(), LanguageCode::Nno);
2426 assert_eq!(LanguageCode::from_str("NOB").unwrap(), LanguageCode::Nob);
2427 assert_eq!(LanguageCode::from_str("NOG").unwrap(), LanguageCode::Nog);
2428 assert_eq!(LanguageCode::from_str("NON").unwrap(), LanguageCode::Non);
2429 assert_eq!(LanguageCode::from_str("NOR").unwrap(), LanguageCode::Nor);
2430 assert_eq!(LanguageCode::from_str("NQO").unwrap(), LanguageCode::Nqo);
2431 assert_eq!(LanguageCode::from_str("NSO").unwrap(), LanguageCode::Nso);
2432 assert_eq!(LanguageCode::from_str("NUB").unwrap(), LanguageCode::Nub);
2433 assert_eq!(LanguageCode::from_str("NWC").unwrap(), LanguageCode::Nwc);
2434 assert_eq!(LanguageCode::from_str("NYA").unwrap(), LanguageCode::Nya);
2435 assert_eq!(LanguageCode::from_str("NYM").unwrap(), LanguageCode::Nym);
2436 assert_eq!(LanguageCode::from_str("NYN").unwrap(), LanguageCode::Nyn);
2437 assert_eq!(LanguageCode::from_str("NYO").unwrap(), LanguageCode::Nyo);
2438 assert_eq!(LanguageCode::from_str("NZI").unwrap(), LanguageCode::Nzi);
2439 assert_eq!(LanguageCode::from_str("OCI").unwrap(), LanguageCode::Oci);
2440 assert_eq!(LanguageCode::from_str("OJI").unwrap(), LanguageCode::Oji);
2441 assert_eq!(LanguageCode::from_str("ORI").unwrap(), LanguageCode::Ori);
2442 assert_eq!(LanguageCode::from_str("ORM").unwrap(), LanguageCode::Orm);
2443 assert_eq!(LanguageCode::from_str("OSA").unwrap(), LanguageCode::Osa);
2444 assert_eq!(LanguageCode::from_str("OSS").unwrap(), LanguageCode::Oss);
2445 assert_eq!(LanguageCode::from_str("OTA").unwrap(), LanguageCode::Ota);
2446 assert_eq!(LanguageCode::from_str("OTO").unwrap(), LanguageCode::Oto);
2447 assert_eq!(LanguageCode::from_str("PAA").unwrap(), LanguageCode::Paa);
2448 assert_eq!(LanguageCode::from_str("PAG").unwrap(), LanguageCode::Pag);
2449 assert_eq!(LanguageCode::from_str("PAL").unwrap(), LanguageCode::Pal);
2450 assert_eq!(LanguageCode::from_str("PAM").unwrap(), LanguageCode::Pam);
2451 assert_eq!(LanguageCode::from_str("PAN").unwrap(), LanguageCode::Pan);
2452 assert_eq!(LanguageCode::from_str("PAP").unwrap(), LanguageCode::Pap);
2453 assert_eq!(LanguageCode::from_str("PAU").unwrap(), LanguageCode::Pau);
2454 assert_eq!(LanguageCode::from_str("PEO").unwrap(), LanguageCode::Peo);
2455 assert_eq!(LanguageCode::from_str("PER").unwrap(), LanguageCode::Per);
2456 assert_eq!(LanguageCode::from_str("PHI").unwrap(), LanguageCode::Phi);
2457 assert_eq!(LanguageCode::from_str("PHN").unwrap(), LanguageCode::Phn);
2458 assert_eq!(LanguageCode::from_str("PLI").unwrap(), LanguageCode::Pli);
2459 assert_eq!(LanguageCode::from_str("POL").unwrap(), LanguageCode::Pol);
2460 assert_eq!(LanguageCode::from_str("PON").unwrap(), LanguageCode::Pon);
2461 assert_eq!(LanguageCode::from_str("POR").unwrap(), LanguageCode::Por);
2462 assert_eq!(LanguageCode::from_str("PRA").unwrap(), LanguageCode::Pra);
2463 assert_eq!(LanguageCode::from_str("PRO").unwrap(), LanguageCode::Pro);
2464 assert_eq!(LanguageCode::from_str("PUS").unwrap(), LanguageCode::Pus);
2465 assert_eq!(LanguageCode::from_str("QAA").unwrap(), LanguageCode::Qaa);
2466 assert_eq!(LanguageCode::from_str("QUE").unwrap(), LanguageCode::Que);
2467 assert_eq!(LanguageCode::from_str("RAJ").unwrap(), LanguageCode::Raj);
2468 assert_eq!(LanguageCode::from_str("RAP").unwrap(), LanguageCode::Rap);
2469 assert_eq!(LanguageCode::from_str("RAR").unwrap(), LanguageCode::Rar);
2470 assert_eq!(LanguageCode::from_str("ROA").unwrap(), LanguageCode::Roa);
2471 assert_eq!(LanguageCode::from_str("ROH").unwrap(), LanguageCode::Roh);
2472 assert_eq!(LanguageCode::from_str("ROM").unwrap(), LanguageCode::Rom);
2473 assert_eq!(LanguageCode::from_str("RUM").unwrap(), LanguageCode::Rum);
2474 assert_eq!(LanguageCode::from_str("RUN").unwrap(), LanguageCode::Run);
2475 assert_eq!(LanguageCode::from_str("RUP").unwrap(), LanguageCode::Rup);
2476 assert_eq!(LanguageCode::from_str("RUS").unwrap(), LanguageCode::Rus);
2477 assert_eq!(LanguageCode::from_str("SAD").unwrap(), LanguageCode::Sad);
2478 assert_eq!(LanguageCode::from_str("SAG").unwrap(), LanguageCode::Sag);
2479 assert_eq!(LanguageCode::from_str("SAH").unwrap(), LanguageCode::Sah);
2480 assert_eq!(LanguageCode::from_str("SAI").unwrap(), LanguageCode::Sai);
2481 assert_eq!(LanguageCode::from_str("SAL").unwrap(), LanguageCode::Sal);
2482 assert_eq!(LanguageCode::from_str("SAM").unwrap(), LanguageCode::Sam);
2483 assert_eq!(LanguageCode::from_str("SAN").unwrap(), LanguageCode::San);
2484 assert_eq!(LanguageCode::from_str("SAS").unwrap(), LanguageCode::Sas);
2485 assert_eq!(LanguageCode::from_str("SAT").unwrap(), LanguageCode::Sat);
2486 assert_eq!(LanguageCode::from_str("SCN").unwrap(), LanguageCode::Scn);
2487 assert_eq!(LanguageCode::from_str("SCO").unwrap(), LanguageCode::Sco);
2488 assert_eq!(LanguageCode::from_str("SEL").unwrap(), LanguageCode::Sel);
2489 assert_eq!(LanguageCode::from_str("SEM").unwrap(), LanguageCode::Sem);
2490 assert_eq!(LanguageCode::from_str("SGA").unwrap(), LanguageCode::Sga);
2491 assert_eq!(LanguageCode::from_str("SGN").unwrap(), LanguageCode::Sgn);
2492 assert_eq!(LanguageCode::from_str("SHN").unwrap(), LanguageCode::Shn);
2493 assert_eq!(LanguageCode::from_str("SID").unwrap(), LanguageCode::Sid);
2494 assert_eq!(LanguageCode::from_str("SIN").unwrap(), LanguageCode::Sin);
2495 assert_eq!(LanguageCode::from_str("SIO").unwrap(), LanguageCode::Sio);
2496 assert_eq!(LanguageCode::from_str("SIT").unwrap(), LanguageCode::Sit);
2497 assert_eq!(LanguageCode::from_str("SLA").unwrap(), LanguageCode::Sla);
2498 assert_eq!(LanguageCode::from_str("SLO").unwrap(), LanguageCode::Slo);
2499 assert_eq!(LanguageCode::from_str("SLV").unwrap(), LanguageCode::Slv);
2500 assert_eq!(LanguageCode::from_str("SMA").unwrap(), LanguageCode::Sma);
2501 assert_eq!(LanguageCode::from_str("SME").unwrap(), LanguageCode::Sme);
2502 assert_eq!(LanguageCode::from_str("SMI").unwrap(), LanguageCode::Smi);
2503 assert_eq!(LanguageCode::from_str("SMJ").unwrap(), LanguageCode::Smj);
2504 assert_eq!(LanguageCode::from_str("SMN").unwrap(), LanguageCode::Smn);
2505 assert_eq!(LanguageCode::from_str("SMO").unwrap(), LanguageCode::Smo);
2506 assert_eq!(LanguageCode::from_str("SMS").unwrap(), LanguageCode::Sms);
2507 assert_eq!(LanguageCode::from_str("SNA").unwrap(), LanguageCode::Sna);
2508 assert_eq!(LanguageCode::from_str("SND").unwrap(), LanguageCode::Snd);
2509 assert_eq!(LanguageCode::from_str("SNK").unwrap(), LanguageCode::Snk);
2510 assert_eq!(LanguageCode::from_str("SOG").unwrap(), LanguageCode::Sog);
2511 assert_eq!(LanguageCode::from_str("SOM").unwrap(), LanguageCode::Som);
2512 assert_eq!(LanguageCode::from_str("SON").unwrap(), LanguageCode::Son);
2513 assert_eq!(LanguageCode::from_str("SOT").unwrap(), LanguageCode::Sot);
2514 assert_eq!(LanguageCode::from_str("SPA").unwrap(), LanguageCode::Spa);
2515 assert_eq!(LanguageCode::from_str("SRD").unwrap(), LanguageCode::Srd);
2516 assert_eq!(LanguageCode::from_str("SRN").unwrap(), LanguageCode::Srn);
2517 assert_eq!(LanguageCode::from_str("SRP").unwrap(), LanguageCode::Srp);
2518 assert_eq!(LanguageCode::from_str("SRR").unwrap(), LanguageCode::Srr);
2519 assert_eq!(LanguageCode::from_str("SSA").unwrap(), LanguageCode::Ssa);
2520 assert_eq!(LanguageCode::from_str("SSW").unwrap(), LanguageCode::Ssw);
2521 assert_eq!(LanguageCode::from_str("SUK").unwrap(), LanguageCode::Suk);
2522 assert_eq!(LanguageCode::from_str("SUN").unwrap(), LanguageCode::Sun);
2523 assert_eq!(LanguageCode::from_str("SUS").unwrap(), LanguageCode::Sus);
2524 assert_eq!(LanguageCode::from_str("SUX").unwrap(), LanguageCode::Sux);
2525 assert_eq!(LanguageCode::from_str("SWA").unwrap(), LanguageCode::Swa);
2526 assert_eq!(LanguageCode::from_str("SWE").unwrap(), LanguageCode::Swe);
2527 assert_eq!(LanguageCode::from_str("SYC").unwrap(), LanguageCode::Syc);
2528 assert_eq!(LanguageCode::from_str("SYR").unwrap(), LanguageCode::Syr);
2529 assert_eq!(LanguageCode::from_str("TAH").unwrap(), LanguageCode::Tah);
2530 assert_eq!(LanguageCode::from_str("TAI").unwrap(), LanguageCode::Tai);
2531 assert_eq!(LanguageCode::from_str("TAM").unwrap(), LanguageCode::Tam);
2532 assert_eq!(LanguageCode::from_str("TAT").unwrap(), LanguageCode::Tat);
2533 assert_eq!(LanguageCode::from_str("TEL").unwrap(), LanguageCode::Tel);
2534 assert_eq!(LanguageCode::from_str("TEM").unwrap(), LanguageCode::Tem);
2535 assert_eq!(LanguageCode::from_str("TER").unwrap(), LanguageCode::Ter);
2536 assert_eq!(LanguageCode::from_str("TET").unwrap(), LanguageCode::Tet);
2537 assert_eq!(LanguageCode::from_str("TGK").unwrap(), LanguageCode::Tgk);
2538 assert_eq!(LanguageCode::from_str("TGL").unwrap(), LanguageCode::Tgl);
2539 assert_eq!(LanguageCode::from_str("THA").unwrap(), LanguageCode::Tha);
2540 assert_eq!(LanguageCode::from_str("TIB").unwrap(), LanguageCode::Tib);
2541 assert_eq!(LanguageCode::from_str("TIG").unwrap(), LanguageCode::Tig);
2542 assert_eq!(LanguageCode::from_str("TIR").unwrap(), LanguageCode::Tir);
2543 assert_eq!(LanguageCode::from_str("TIV").unwrap(), LanguageCode::Tiv);
2544 assert_eq!(LanguageCode::from_str("TKL").unwrap(), LanguageCode::Tkl);
2545 assert_eq!(LanguageCode::from_str("TLH").unwrap(), LanguageCode::Tlh);
2546 assert_eq!(LanguageCode::from_str("TLI").unwrap(), LanguageCode::Tli);
2547 assert_eq!(LanguageCode::from_str("TMH").unwrap(), LanguageCode::Tmh);
2548 assert_eq!(LanguageCode::from_str("TOG").unwrap(), LanguageCode::Tog);
2549 assert_eq!(LanguageCode::from_str("TON").unwrap(), LanguageCode::Ton);
2550 assert_eq!(LanguageCode::from_str("TPI").unwrap(), LanguageCode::Tpi);
2551 assert_eq!(LanguageCode::from_str("TSI").unwrap(), LanguageCode::Tsi);
2552 assert_eq!(LanguageCode::from_str("TSN").unwrap(), LanguageCode::Tsn);
2553 assert_eq!(LanguageCode::from_str("TSO").unwrap(), LanguageCode::Tso);
2554 assert_eq!(LanguageCode::from_str("TUK").unwrap(), LanguageCode::Tuk);
2555 assert_eq!(LanguageCode::from_str("TUM").unwrap(), LanguageCode::Tum);
2556 assert_eq!(LanguageCode::from_str("TUP").unwrap(), LanguageCode::Tup);
2557 assert_eq!(LanguageCode::from_str("TUR").unwrap(), LanguageCode::Tur);
2558 assert_eq!(LanguageCode::from_str("TUT").unwrap(), LanguageCode::Tut);
2559 assert_eq!(LanguageCode::from_str("TVL").unwrap(), LanguageCode::Tvl);
2560 assert_eq!(LanguageCode::from_str("TWI").unwrap(), LanguageCode::Twi);
2561 assert_eq!(LanguageCode::from_str("TYV").unwrap(), LanguageCode::Tyv);
2562 assert_eq!(LanguageCode::from_str("UDM").unwrap(), LanguageCode::Udm);
2563 assert_eq!(LanguageCode::from_str("UGA").unwrap(), LanguageCode::Uga);
2564 assert_eq!(LanguageCode::from_str("UIG").unwrap(), LanguageCode::Uig);
2565 assert_eq!(LanguageCode::from_str("UKR").unwrap(), LanguageCode::Ukr);
2566 assert_eq!(LanguageCode::from_str("UMB").unwrap(), LanguageCode::Umb);
2567 assert_eq!(LanguageCode::from_str("UND").unwrap(), LanguageCode::Und);
2568 assert_eq!(LanguageCode::from_str("URD").unwrap(), LanguageCode::Urd);
2569 assert_eq!(LanguageCode::from_str("UZB").unwrap(), LanguageCode::Uzb);
2570 assert_eq!(LanguageCode::from_str("VAI").unwrap(), LanguageCode::Vai);
2571 assert_eq!(LanguageCode::from_str("VEN").unwrap(), LanguageCode::Ven);
2572 assert_eq!(LanguageCode::from_str("VIE").unwrap(), LanguageCode::Vie);
2573 assert_eq!(LanguageCode::from_str("VOL").unwrap(), LanguageCode::Vol);
2574 assert_eq!(LanguageCode::from_str("VOT").unwrap(), LanguageCode::Vot);
2575 assert_eq!(LanguageCode::from_str("WAK").unwrap(), LanguageCode::Wak);
2576 assert_eq!(LanguageCode::from_str("WAL").unwrap(), LanguageCode::Wal);
2577 assert_eq!(LanguageCode::from_str("WAR").unwrap(), LanguageCode::War);
2578 assert_eq!(LanguageCode::from_str("WAS").unwrap(), LanguageCode::Was);
2579 assert_eq!(LanguageCode::from_str("WEL").unwrap(), LanguageCode::Wel);
2580 assert_eq!(LanguageCode::from_str("WEN").unwrap(), LanguageCode::Wen);
2581 assert_eq!(LanguageCode::from_str("WLN").unwrap(), LanguageCode::Wln);
2582 assert_eq!(LanguageCode::from_str("WOL").unwrap(), LanguageCode::Wol);
2583 assert_eq!(LanguageCode::from_str("XAL").unwrap(), LanguageCode::Xal);
2584 assert_eq!(LanguageCode::from_str("XHO").unwrap(), LanguageCode::Xho);
2585 assert_eq!(LanguageCode::from_str("YAO").unwrap(), LanguageCode::Yao);
2586 assert_eq!(LanguageCode::from_str("YAP").unwrap(), LanguageCode::Yap);
2587 assert_eq!(LanguageCode::from_str("YID").unwrap(), LanguageCode::Yid);
2588 assert_eq!(LanguageCode::from_str("YOR").unwrap(), LanguageCode::Yor);
2589 assert_eq!(LanguageCode::from_str("YPK").unwrap(), LanguageCode::Ypk);
2590 assert_eq!(LanguageCode::from_str("ZAP").unwrap(), LanguageCode::Zap);
2591 assert_eq!(LanguageCode::from_str("ZBL").unwrap(), LanguageCode::Zbl);
2592 assert_eq!(LanguageCode::from_str("ZEN").unwrap(), LanguageCode::Zen);
2593 assert_eq!(LanguageCode::from_str("ZGH").unwrap(), LanguageCode::Zgh);
2594 assert_eq!(LanguageCode::from_str("ZHA").unwrap(), LanguageCode::Zha);
2595 assert_eq!(LanguageCode::from_str("ZND").unwrap(), LanguageCode::Znd);
2596 assert_eq!(LanguageCode::from_str("ZUL").unwrap(), LanguageCode::Zul);
2597 assert_eq!(LanguageCode::from_str("ZUN").unwrap(), LanguageCode::Zun);
2598 assert_eq!(LanguageCode::from_str("ZXX").unwrap(), LanguageCode::Zxx);
2599 assert_eq!(LanguageCode::from_str("ZZA").unwrap(), LanguageCode::Zza);
2600
2601 assert!(LanguageRelation::from_str("ESP").is_err());
2602 assert!(LanguageRelation::from_str("ZZZ").is_err());
2603}