phonenumber_fixed/
country.rs

1// Copyright (C) 2017 1aim GmbH
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Country related types.
16
17use std::str;
18
19#[derive(Copy, Clone, Eq, PartialEq, Serialize, Deserialize, Hash, Debug)]
20pub struct Code {
21	/// The country code value.
22	pub(crate) value: u16,
23
24	/// The source from which the country code is derived.
25	pub(crate) source: Source,
26}
27
28/// The source from which the country code is derived. This is not set in the
29/// general parsing method, but in the method that parses and keeps raw_input.
30#[derive(Eq, PartialEq, Copy, Clone, Serialize, Deserialize, Hash, Debug)]
31#[serde(rename_all = "snake_case")]
32pub enum Source {
33	/// The country code is derived based on a phone number with a leading "+",
34	/// e.g. the French number "+33 1 42 68 53 00".
35	Plus,
36
37	/// The country code is derived based on a phone number with a leading IDD,
38	/// e.g. the French number "011 33 1 42 68 53 00", as it is dialled from US.
39	Idd,
40
41	/// The country code is derived based on a phone number without a leading
42	/// "+", e.g. the French number "33 1 42 68 53 00" when the default country
43	/// is supplied as France.
44	Number,
45
46	/// The country code is derived NOT based on the phone number itself, but
47	/// from the default country parameter provided in the parsing function by
48	/// the clients. This happens mostly for numbers written in the national
49	/// format (without country code). For example, this would be set when
50	/// parsing the French number "01 42 68 53 00", when the default country is
51	/// supplied as France.
52	Default,
53}
54
55impl Default for Source {
56	fn default() -> Self {
57		Source::Default
58	}
59}
60
61impl Code {
62	/// The country code number.
63	pub fn value(&self) -> u16 {
64		self.value
65	}
66
67	/// How the country was inferred.
68	pub fn source(&self) -> Source {
69		self.source
70	}
71}
72
73impl Into<u16> for Code {
74	fn into(self) -> u16 {
75		self.value
76	}
77}
78
79/// CLDR country IDs.
80#[derive(Eq, PartialEq, Copy, Clone, Serialize, Deserialize, Hash, Debug)]
81pub enum Id {
82	AC,
83	AD,
84	AE,
85	AF,
86	AG,
87	AI,
88	AL,
89	AM,
90	AO,
91	AR,
92	AS,
93	AT,
94	AU,
95	AW,
96	AX,
97	AZ,
98	BA,
99	BB,
100	BD,
101	BE,
102	BF,
103	BG,
104	BH,
105	BI,
106	BJ,
107	BL,
108	BM,
109	BN,
110	BO,
111	BQ,
112	BR,
113	BS,
114	BT,
115	BW,
116	BY,
117	BZ,
118	CA,
119	CC,
120	CD,
121	CF,
122	CG,
123	CH,
124	CI,
125	CK,
126	CL,
127	CM,
128	CN,
129	CO,
130	CR,
131	CU,
132	CV,
133	CW,
134	CX,
135	CY,
136	CZ,
137	DE,
138	DJ,
139	DK,
140	DM,
141	DO,
142	DZ,
143	EC,
144	EE,
145	EG,
146	EH,
147	ER,
148	ES,
149	ET,
150	FI,
151	FJ,
152	FK,
153	FM,
154	FO,
155	FR,
156	GA,
157	GB,
158	GD,
159	GE,
160	GF,
161	GG,
162	GH,
163	GI,
164	GL,
165	GM,
166	GN,
167	GP,
168	GQ,
169	GR,
170	GT,
171	GU,
172	GW,
173	GY,
174	HK,
175	HN,
176	HR,
177	HT,
178	HU,
179	ID,
180	IE,
181	IL,
182	IM,
183	IN,
184	IO,
185	IQ,
186	IR,
187	IS,
188	IT,
189	JE,
190	JM,
191	JO,
192	JP,
193	KE,
194	KG,
195	KH,
196	KI,
197	KM,
198	KN,
199	KP,
200	KR,
201	KW,
202	KY,
203	KZ,
204	LA,
205	LB,
206	LC,
207	LI,
208	LK,
209	LR,
210	LS,
211	LT,
212	LU,
213	LV,
214	LY,
215	MA,
216	MC,
217	MD,
218	ME,
219	MF,
220	MG,
221	MH,
222	MK,
223	ML,
224	MM,
225	MN,
226	MO,
227	MP,
228	MQ,
229	MR,
230	MS,
231	MT,
232	MU,
233	MV,
234	MW,
235	MX,
236	MY,
237	MZ,
238	NA,
239	NC,
240	NE,
241	NF,
242	NG,
243	NI,
244	NL,
245	NO,
246	NP,
247	NR,
248	NU,
249	NZ,
250	OM,
251	PA,
252	PE,
253	PF,
254	PG,
255	PH,
256	PK,
257	PL,
258	PM,
259	PR,
260	PS,
261	PT,
262	PW,
263	PY,
264	QA,
265	RE,
266	RO,
267	RS,
268	RU,
269	RW,
270	SA,
271	SB,
272	SC,
273	SD,
274	SE,
275	SG,
276	SH,
277	SI,
278	SJ,
279	SK,
280	SL,
281	SM,
282	SN,
283	SO,
284	SR,
285	SS,
286	ST,
287	SV,
288	SX,
289	SY,
290	SZ,
291	TA,
292	TC,
293	TD,
294	TG,
295	TH,
296	TJ,
297	TK,
298	TL,
299	TM,
300	TN,
301	TO,
302	TR,
303	TT,
304	TV,
305	TW,
306	TZ,
307	UA,
308	UG,
309	US,
310	UY,
311	UZ,
312	VA,
313	VC,
314	VE,
315	VG,
316	VI,
317	VN,
318	VU,
319	WF,
320	WS,
321	XK,
322	YE,
323	YT,
324	ZA,
325	ZM,
326	ZW,
327}
328
329pub use self::Id::*;
330
331impl str::FromStr for Id {
332	type Err = ();
333
334	fn from_str(value: &str) -> Result<Id, ()> {
335		match value {
336			"AC" => Ok(Id::AC),
337			"AD" => Ok(Id::AD),
338			"AE" => Ok(Id::AE),
339			"AF" => Ok(Id::AF),
340			"AG" => Ok(Id::AG),
341			"AI" => Ok(Id::AI),
342			"AL" => Ok(Id::AL),
343			"AM" => Ok(Id::AM),
344			"AO" => Ok(Id::AO),
345			"AR" => Ok(Id::AR),
346			"AS" => Ok(Id::AS),
347			"AT" => Ok(Id::AT),
348			"AU" => Ok(Id::AU),
349			"AW" => Ok(Id::AW),
350			"AX" => Ok(Id::AX),
351			"AZ" => Ok(Id::AZ),
352			"BA" => Ok(Id::BA),
353			"BB" => Ok(Id::BB),
354			"BD" => Ok(Id::BD),
355			"BE" => Ok(Id::BE),
356			"BF" => Ok(Id::BF),
357			"BG" => Ok(Id::BG),
358			"BH" => Ok(Id::BH),
359			"BI" => Ok(Id::BI),
360			"BJ" => Ok(Id::BJ),
361			"BL" => Ok(Id::BL),
362			"BM" => Ok(Id::BM),
363			"BN" => Ok(Id::BN),
364			"BO" => Ok(Id::BO),
365			"BQ" => Ok(Id::BQ),
366			"BR" => Ok(Id::BR),
367			"BS" => Ok(Id::BS),
368			"BT" => Ok(Id::BT),
369			"BW" => Ok(Id::BW),
370			"BY" => Ok(Id::BY),
371			"BZ" => Ok(Id::BZ),
372			"CA" => Ok(Id::CA),
373			"CC" => Ok(Id::CC),
374			"CD" => Ok(Id::CD),
375			"CF" => Ok(Id::CF),
376			"CG" => Ok(Id::CG),
377			"CH" => Ok(Id::CH),
378			"CI" => Ok(Id::CI),
379			"CK" => Ok(Id::CK),
380			"CL" => Ok(Id::CL),
381			"CM" => Ok(Id::CM),
382			"CN" => Ok(Id::CN),
383			"CO" => Ok(Id::CO),
384			"CR" => Ok(Id::CR),
385			"CU" => Ok(Id::CU),
386			"CV" => Ok(Id::CV),
387			"CW" => Ok(Id::CW),
388			"CX" => Ok(Id::CX),
389			"CY" => Ok(Id::CY),
390			"CZ" => Ok(Id::CZ),
391			"DE" => Ok(Id::DE),
392			"DJ" => Ok(Id::DJ),
393			"DK" => Ok(Id::DK),
394			"DM" => Ok(Id::DM),
395			"DO" => Ok(Id::DO),
396			"DZ" => Ok(Id::DZ),
397			"EC" => Ok(Id::EC),
398			"EE" => Ok(Id::EE),
399			"EG" => Ok(Id::EG),
400			"EH" => Ok(Id::EH),
401			"ER" => Ok(Id::ER),
402			"ES" => Ok(Id::ES),
403			"ET" => Ok(Id::ET),
404			"FI" => Ok(Id::FI),
405			"FJ" => Ok(Id::FJ),
406			"FK" => Ok(Id::FK),
407			"FM" => Ok(Id::FM),
408			"FO" => Ok(Id::FO),
409			"FR" => Ok(Id::FR),
410			"GA" => Ok(Id::GA),
411			"GB" => Ok(Id::GB),
412			"GD" => Ok(Id::GD),
413			"GE" => Ok(Id::GE),
414			"GF" => Ok(Id::GF),
415			"GG" => Ok(Id::GG),
416			"GH" => Ok(Id::GH),
417			"GI" => Ok(Id::GI),
418			"GL" => Ok(Id::GL),
419			"GM" => Ok(Id::GM),
420			"GN" => Ok(Id::GN),
421			"GP" => Ok(Id::GP),
422			"GQ" => Ok(Id::GQ),
423			"GR" => Ok(Id::GR),
424			"GT" => Ok(Id::GT),
425			"GU" => Ok(Id::GU),
426			"GW" => Ok(Id::GW),
427			"GY" => Ok(Id::GY),
428			"HK" => Ok(Id::HK),
429			"HN" => Ok(Id::HN),
430			"HR" => Ok(Id::HR),
431			"HT" => Ok(Id::HT),
432			"HU" => Ok(Id::HU),
433			"ID" => Ok(Id::ID),
434			"IE" => Ok(Id::IE),
435			"IL" => Ok(Id::IL),
436			"IM" => Ok(Id::IM),
437			"IN" => Ok(Id::IN),
438			"IO" => Ok(Id::IO),
439			"IQ" => Ok(Id::IQ),
440			"IR" => Ok(Id::IR),
441			"IS" => Ok(Id::IS),
442			"IT" => Ok(Id::IT),
443			"JE" => Ok(Id::JE),
444			"JM" => Ok(Id::JM),
445			"JO" => Ok(Id::JO),
446			"JP" => Ok(Id::JP),
447			"KE" => Ok(Id::KE),
448			"KG" => Ok(Id::KG),
449			"KH" => Ok(Id::KH),
450			"KI" => Ok(Id::KI),
451			"KM" => Ok(Id::KM),
452			"KN" => Ok(Id::KN),
453			"KP" => Ok(Id::KP),
454			"KR" => Ok(Id::KR),
455			"KW" => Ok(Id::KW),
456			"KY" => Ok(Id::KY),
457			"KZ" => Ok(Id::KZ),
458			"LA" => Ok(Id::LA),
459			"LB" => Ok(Id::LB),
460			"LC" => Ok(Id::LC),
461			"LI" => Ok(Id::LI),
462			"LK" => Ok(Id::LK),
463			"LR" => Ok(Id::LR),
464			"LS" => Ok(Id::LS),
465			"LT" => Ok(Id::LT),
466			"LU" => Ok(Id::LU),
467			"LV" => Ok(Id::LV),
468			"LY" => Ok(Id::LY),
469			"MA" => Ok(Id::MA),
470			"MC" => Ok(Id::MC),
471			"MD" => Ok(Id::MD),
472			"ME" => Ok(Id::ME),
473			"MF" => Ok(Id::MF),
474			"MG" => Ok(Id::MG),
475			"MH" => Ok(Id::MH),
476			"MK" => Ok(Id::MK),
477			"ML" => Ok(Id::ML),
478			"MM" => Ok(Id::MM),
479			"MN" => Ok(Id::MN),
480			"MO" => Ok(Id::MO),
481			"MP" => Ok(Id::MP),
482			"MQ" => Ok(Id::MQ),
483			"MR" => Ok(Id::MR),
484			"MS" => Ok(Id::MS),
485			"MT" => Ok(Id::MT),
486			"MU" => Ok(Id::MU),
487			"MV" => Ok(Id::MV),
488			"MW" => Ok(Id::MW),
489			"MX" => Ok(Id::MX),
490			"MY" => Ok(Id::MY),
491			"MZ" => Ok(Id::MZ),
492			"NA" => Ok(Id::NA),
493			"NC" => Ok(Id::NC),
494			"NE" => Ok(Id::NE),
495			"NF" => Ok(Id::NF),
496			"NG" => Ok(Id::NG),
497			"NI" => Ok(Id::NI),
498			"NL" => Ok(Id::NL),
499			"NO" => Ok(Id::NO),
500			"NP" => Ok(Id::NP),
501			"NR" => Ok(Id::NR),
502			"NU" => Ok(Id::NU),
503			"NZ" => Ok(Id::NZ),
504			"OM" => Ok(Id::OM),
505			"PA" => Ok(Id::PA),
506			"PE" => Ok(Id::PE),
507			"PF" => Ok(Id::PF),
508			"PG" => Ok(Id::PG),
509			"PH" => Ok(Id::PH),
510			"PK" => Ok(Id::PK),
511			"PL" => Ok(Id::PL),
512			"PM" => Ok(Id::PM),
513			"PR" => Ok(Id::PR),
514			"PS" => Ok(Id::PS),
515			"PT" => Ok(Id::PT),
516			"PW" => Ok(Id::PW),
517			"PY" => Ok(Id::PY),
518			"QA" => Ok(Id::QA),
519			"RE" => Ok(Id::RE),
520			"RO" => Ok(Id::RO),
521			"RS" => Ok(Id::RS),
522			"RU" => Ok(Id::RU),
523			"RW" => Ok(Id::RW),
524			"SA" => Ok(Id::SA),
525			"SB" => Ok(Id::SB),
526			"SC" => Ok(Id::SC),
527			"SD" => Ok(Id::SD),
528			"SE" => Ok(Id::SE),
529			"SG" => Ok(Id::SG),
530			"SH" => Ok(Id::SH),
531			"SI" => Ok(Id::SI),
532			"SJ" => Ok(Id::SJ),
533			"SK" => Ok(Id::SK),
534			"SL" => Ok(Id::SL),
535			"SM" => Ok(Id::SM),
536			"SN" => Ok(Id::SN),
537			"SO" => Ok(Id::SO),
538			"SR" => Ok(Id::SR),
539			"SS" => Ok(Id::SS),
540			"ST" => Ok(Id::ST),
541			"SV" => Ok(Id::SV),
542			"SX" => Ok(Id::SX),
543			"SY" => Ok(Id::SY),
544			"SZ" => Ok(Id::SZ),
545			"TA" => Ok(Id::TA),
546			"TC" => Ok(Id::TC),
547			"TD" => Ok(Id::TD),
548			"TG" => Ok(Id::TG),
549			"TH" => Ok(Id::TH),
550			"TJ" => Ok(Id::TJ),
551			"TK" => Ok(Id::TK),
552			"TL" => Ok(Id::TL),
553			"TM" => Ok(Id::TM),
554			"TN" => Ok(Id::TN),
555			"TO" => Ok(Id::TO),
556			"TR" => Ok(Id::TR),
557			"TT" => Ok(Id::TT),
558			"TV" => Ok(Id::TV),
559			"TW" => Ok(Id::TW),
560			"TZ" => Ok(Id::TZ),
561			"UA" => Ok(Id::UA),
562			"UG" => Ok(Id::UG),
563			"US" => Ok(Id::US),
564			"UY" => Ok(Id::UY),
565			"UZ" => Ok(Id::UZ),
566			"VA" => Ok(Id::VA),
567			"VC" => Ok(Id::VC),
568			"VE" => Ok(Id::VE),
569			"VG" => Ok(Id::VG),
570			"VI" => Ok(Id::VI),
571			"VN" => Ok(Id::VN),
572			"VU" => Ok(Id::VU),
573			"WF" => Ok(Id::WF),
574			"WS" => Ok(Id::WS),
575			"XK" => Ok(Id::XK),
576			"YE" => Ok(Id::YE),
577			"YT" => Ok(Id::YT),
578			"ZA" => Ok(Id::ZA),
579			"ZM" => Ok(Id::ZM),
580			"ZW" => Ok(Id::ZW),
581			_    => Err(()),
582		}
583	}
584}
585
586impl AsRef<str> for Id {
587	fn as_ref(&self) -> &str {
588		match *self {
589			Id::AC => "AC",
590			Id::AD => "AD",
591			Id::AE => "AE",
592			Id::AF => "AF",
593			Id::AG => "AG",
594			Id::AI => "AI",
595			Id::AL => "AL",
596			Id::AM => "AM",
597			Id::AO => "AO",
598			Id::AR => "AR",
599			Id::AS => "AS",
600			Id::AT => "AT",
601			Id::AU => "AU",
602			Id::AW => "AW",
603			Id::AX => "AX",
604			Id::AZ => "AZ",
605			Id::BA => "BA",
606			Id::BB => "BB",
607			Id::BD => "BD",
608			Id::BE => "BE",
609			Id::BF => "BF",
610			Id::BG => "BG",
611			Id::BH => "BH",
612			Id::BI => "BI",
613			Id::BJ => "BJ",
614			Id::BL => "BL",
615			Id::BM => "BM",
616			Id::BN => "BN",
617			Id::BO => "BO",
618			Id::BQ => "BQ",
619			Id::BR => "BR",
620			Id::BS => "BS",
621			Id::BT => "BT",
622			Id::BW => "BW",
623			Id::BY => "BY",
624			Id::BZ => "BZ",
625			Id::CA => "CA",
626			Id::CC => "CC",
627			Id::CD => "CD",
628			Id::CF => "CF",
629			Id::CG => "CG",
630			Id::CH => "CH",
631			Id::CI => "CI",
632			Id::CK => "CK",
633			Id::CL => "CL",
634			Id::CM => "CM",
635			Id::CN => "CN",
636			Id::CO => "CO",
637			Id::CR => "CR",
638			Id::CU => "CU",
639			Id::CV => "CV",
640			Id::CW => "CW",
641			Id::CX => "CX",
642			Id::CY => "CY",
643			Id::CZ => "CZ",
644			Id::DE => "DE",
645			Id::DJ => "DJ",
646			Id::DK => "DK",
647			Id::DM => "DM",
648			Id::DO => "DO",
649			Id::DZ => "DZ",
650			Id::EC => "EC",
651			Id::EE => "EE",
652			Id::EG => "EG",
653			Id::EH => "EH",
654			Id::ER => "ER",
655			Id::ES => "ES",
656			Id::ET => "ET",
657			Id::FI => "FI",
658			Id::FJ => "FJ",
659			Id::FK => "FK",
660			Id::FM => "FM",
661			Id::FO => "FO",
662			Id::FR => "FR",
663			Id::GA => "GA",
664			Id::GB => "GB",
665			Id::GD => "GD",
666			Id::GE => "GE",
667			Id::GF => "GF",
668			Id::GG => "GG",
669			Id::GH => "GH",
670			Id::GI => "GI",
671			Id::GL => "GL",
672			Id::GM => "GM",
673			Id::GN => "GN",
674			Id::GP => "GP",
675			Id::GQ => "GQ",
676			Id::GR => "GR",
677			Id::GT => "GT",
678			Id::GU => "GU",
679			Id::GW => "GW",
680			Id::GY => "GY",
681			Id::HK => "HK",
682			Id::HN => "HN",
683			Id::HR => "HR",
684			Id::HT => "HT",
685			Id::HU => "HU",
686			Id::ID => "ID",
687			Id::IE => "IE",
688			Id::IL => "IL",
689			Id::IM => "IM",
690			Id::IN => "IN",
691			Id::IO => "IO",
692			Id::IQ => "IQ",
693			Id::IR => "IR",
694			Id::IS => "IS",
695			Id::IT => "IT",
696			Id::JE => "JE",
697			Id::JM => "JM",
698			Id::JO => "JO",
699			Id::JP => "JP",
700			Id::KE => "KE",
701			Id::KG => "KG",
702			Id::KH => "KH",
703			Id::KI => "KI",
704			Id::KM => "KM",
705			Id::KN => "KN",
706			Id::KP => "KP",
707			Id::KR => "KR",
708			Id::KW => "KW",
709			Id::KY => "KY",
710			Id::KZ => "KZ",
711			Id::LA => "LA",
712			Id::LB => "LB",
713			Id::LC => "LC",
714			Id::LI => "LI",
715			Id::LK => "LK",
716			Id::LR => "LR",
717			Id::LS => "LS",
718			Id::LT => "LT",
719			Id::LU => "LU",
720			Id::LV => "LV",
721			Id::LY => "LY",
722			Id::MA => "MA",
723			Id::MC => "MC",
724			Id::MD => "MD",
725			Id::ME => "ME",
726			Id::MF => "MF",
727			Id::MG => "MG",
728			Id::MH => "MH",
729			Id::MK => "MK",
730			Id::ML => "ML",
731			Id::MM => "MM",
732			Id::MN => "MN",
733			Id::MO => "MO",
734			Id::MP => "MP",
735			Id::MQ => "MQ",
736			Id::MR => "MR",
737			Id::MS => "MS",
738			Id::MT => "MT",
739			Id::MU => "MU",
740			Id::MV => "MV",
741			Id::MW => "MW",
742			Id::MX => "MX",
743			Id::MY => "MY",
744			Id::MZ => "MZ",
745			Id::NA => "NA",
746			Id::NC => "NC",
747			Id::NE => "NE",
748			Id::NF => "NF",
749			Id::NG => "NG",
750			Id::NI => "NI",
751			Id::NL => "NL",
752			Id::NO => "NO",
753			Id::NP => "NP",
754			Id::NR => "NR",
755			Id::NU => "NU",
756			Id::NZ => "NZ",
757			Id::OM => "OM",
758			Id::PA => "PA",
759			Id::PE => "PE",
760			Id::PF => "PF",
761			Id::PG => "PG",
762			Id::PH => "PH",
763			Id::PK => "PK",
764			Id::PL => "PL",
765			Id::PM => "PM",
766			Id::PR => "PR",
767			Id::PS => "PS",
768			Id::PT => "PT",
769			Id::PW => "PW",
770			Id::PY => "PY",
771			Id::QA => "QA",
772			Id::RE => "RE",
773			Id::RO => "RO",
774			Id::RS => "RS",
775			Id::RU => "RU",
776			Id::RW => "RW",
777			Id::SA => "SA",
778			Id::SB => "SB",
779			Id::SC => "SC",
780			Id::SD => "SD",
781			Id::SE => "SE",
782			Id::SG => "SG",
783			Id::SH => "SH",
784			Id::SI => "SI",
785			Id::SJ => "SJ",
786			Id::SK => "SK",
787			Id::SL => "SL",
788			Id::SM => "SM",
789			Id::SN => "SN",
790			Id::SO => "SO",
791			Id::SR => "SR",
792			Id::SS => "SS",
793			Id::ST => "ST",
794			Id::SV => "SV",
795			Id::SX => "SX",
796			Id::SY => "SY",
797			Id::SZ => "SZ",
798			Id::TA => "TA",
799			Id::TC => "TC",
800			Id::TD => "TD",
801			Id::TG => "TG",
802			Id::TH => "TH",
803			Id::TJ => "TJ",
804			Id::TK => "TK",
805			Id::TL => "TL",
806			Id::TM => "TM",
807			Id::TN => "TN",
808			Id::TO => "TO",
809			Id::TR => "TR",
810			Id::TT => "TT",
811			Id::TV => "TV",
812			Id::TW => "TW",
813			Id::TZ => "TZ",
814			Id::UA => "UA",
815			Id::UG => "UG",
816			Id::US => "US",
817			Id::UY => "UY",
818			Id::UZ => "UZ",
819			Id::VA => "VA",
820			Id::VC => "VC",
821			Id::VE => "VE",
822			Id::VG => "VG",
823			Id::VI => "VI",
824			Id::VN => "VN",
825			Id::VU => "VU",
826			Id::WF => "WF",
827			Id::WS => "WS",
828			Id::XK => "XK",
829			Id::YE => "YE",
830			Id::YT => "YT",
831			Id::ZA => "ZA",
832			Id::ZM => "ZM",
833			Id::ZW => "ZW",
834		}
835	}
836}