1use core::fmt;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
11#[non_exhaustive]
12pub enum LocationHint {
13 Afr,
15 Apac,
17 EEur,
19 ENam,
21 Me,
23 Oc,
25 Sam,
27 WEur,
29 WNam,
31}
32
33impl LocationHint {
34 #[inline]
36 pub const fn as_str(&self) -> &'static str {
37 match self {
38 Self::Afr => "afr",
39 Self::Apac => "apac",
40 Self::EEur => "eeur",
41 Self::ENam => "enam",
42 Self::Me => "me",
43 Self::Oc => "oc",
44 Self::Sam => "sam",
45 Self::WEur => "weur",
46 Self::WNam => "wnam",
47 }
48 }
49
50 #[inline]
52 pub const fn name(&self) -> &'static str {
53 match self {
54 Self::Afr => "Africa",
55 Self::Apac => "Asia-Pacific",
56 Self::EEur => "Eastern Europe",
57 Self::ENam => "Eastern North America",
58 Self::Me => "Middle East",
59 Self::Oc => "Oceania",
60 Self::Sam => "South America",
61 Self::WEur => "Western Europe",
62 Self::WNam => "Western North America",
63 }
64 }
65
66 pub const ALL: &'static [LocationHint] = &[
68 Self::Afr,
69 Self::Apac,
70 Self::EEur,
71 Self::ENam,
72 Self::Me,
73 Self::Oc,
74 Self::Sam,
75 Self::WEur,
76 Self::WNam,
77 ];
78
79 pub fn parse(s: &str) -> Option<Self> {
81 match s {
82 "afr" => Some(Self::Afr),
83 "apac" => Some(Self::Apac),
84 "eeur" => Some(Self::EEur),
85 "enam" => Some(Self::ENam),
86 "me" => Some(Self::Me),
87 "oc" => Some(Self::Oc),
88 "sam" => Some(Self::Sam),
89 "weur" => Some(Self::WEur),
90 "wnam" => Some(Self::WNam),
91 _ => None,
92 }
93 }
94}
95
96impl fmt::Display for LocationHint {
97 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
98 f.write_str(self.as_str())
99 }
100}
101
102#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
106#[non_exhaustive]
107pub enum Colo {
108 AAE,
110 ABJ,
112 ABQ,
114 ACC,
116 ACX,
118 ADB,
120 ADD,
122 ADL,
124 AGR,
126 AKL,
128 AKX,
130 ALA,
132 ALG,
134 AMD,
136 AMM,
138 AMS,
140 ANC,
142 ARI,
144 ARN,
146 ARU,
148 ASK,
150 ASU,
152 ATH,
154 ATL,
156 AUS,
158 BAH,
160 BAQ,
162 BBI,
164 BCN,
166 BEG,
168 BEL,
170 BEY,
172 BGI,
174 BGR,
176 BGW,
178 BHY,
180 BKK,
182 BLR,
184 BNA,
186 BNE,
188 BNU,
190 BOD,
192 BOG,
194 BOM,
196 BOS,
198 BRU,
200 BSB,
202 BSR,
204 BTS,
206 BUD,
208 BUF,
210 BWN,
212 CAI,
214 CAN,
216 CAW,
218 CBR,
220 CCP,
222 CCU,
224 CDG,
226 CEB,
228 CFC,
230 CGB,
232 CGD,
234 CGK,
236 CGO,
238 CGP,
240 CGY,
242 CHC,
244 CJB,
246 CKG,
248 CLE,
250 CLO,
252 CLT,
254 CMB,
256 CMH,
258 CNF,
260 CNI,
262 CNN,
264 CNX,
266 COK,
268 COR,
270 CPH,
272 CPT,
274 CRK,
276 CSX,
278 CTU,
280 CWB,
282 CZL,
284 CZX,
286 DAC,
288 DAD,
290 DAR,
292 DEL,
294 DEN,
296 DEX,
298 DFW,
300 DKR,
302 DLC,
304 DLP,
306 DME,
308 DMM,
310 DOH,
312 DPS,
314 DTW,
316 DUB,
318 DUR,
320 DUS,
322 DXB,
324 EBB,
326 EBL,
328 EVN,
330 EWR,
332 EZE,
334 FCO,
336 FIH,
338 FLN,
340 FOC,
342 FOR,
344 FRA,
346 FRU,
348 FSD,
350 FUK,
352 FUO,
354 GBE,
356 GDL,
358 GEO,
360 GIG,
362 GND,
364 GOT,
366 GRU,
368 GUA,
370 GUM,
372 GVA,
374 GYD,
376 GYE,
378 GYN,
380 HAK,
382 HAM,
384 HAN,
386 HBA,
388 HEL,
390 HFA,
392 HGH,
394 HKG,
396 HNL,
398 HRE,
400 HYD,
402 HYN,
404 IAD,
406 IAH,
408 ICN,
410 IND,
412 ISB,
414 IST,
416 ISU,
418 IXC,
420 JAX,
422 JDO,
424 JED,
426 JHB,
428 JIB,
430 JNB,
432 JOG,
434 JOI,
436 JXG,
438 KBP,
440 KCH,
442 KEF,
444 KGL,
446 KHH,
448 KHI,
450 KHN,
452 KIN,
454 KIV,
456 KIX,
458 KJA,
460 KMG,
462 KNU,
464 KTM,
466 KUL,
468 KWE,
470 KWI,
472 LAD,
474 LAS,
476 LAX,
478 LCA,
480 LED,
482 LHE,
484 LHR,
486 LIM,
488 LIS,
490 LJU,
492 LLK,
494 LLW,
496 LOS,
498 LPB,
500 LUN,
502 LUX,
504 LYA,
506 LYS,
508 MAA,
510 MAD,
512 MAN,
514 MAO,
516 MBA,
518 MCI,
520 MCT,
522 MDE,
524 MEL,
526 MEM,
528 MEX,
530 MFM,
532 MIA,
534 MLA,
536 MLE,
538 MLG,
540 MNL,
542 MPM,
544 MRS,
546 MRU,
548 MSP,
550 MSQ,
552 MUC,
554 MXP,
556 NAG,
558 NBO,
560 NJF,
562 NOU,
564 NQN,
566 NQZ,
568 NRT,
570 NVT,
572 OKA,
574 OKC,
576 OMA,
578 ORD,
580 ORF,
582 ORN,
584 OSL,
586 OTP,
588 OUA,
590 PAT,
592 PBH,
594 PBM,
596 PDX,
598 PER,
600 PHL,
602 PHX,
604 PIT,
606 PKX,
608 PMO,
610 PMW,
612 PNH,
614 PNQ,
616 POA,
618 POS,
620 PPT,
622 PRG,
624 PTY,
626 QRO,
628 QWJ,
630 RAO,
632 RDU,
634 REC,
636 RIC,
638 RIX,
640 RUH,
642 RUN,
644 SAN,
646 SAP,
648 SAT,
650 SCL,
652 SDQ,
654 SEA,
656 SFO,
658 SGN,
660 SHA,
662 SIN,
664 SJC,
666 SJK,
668 SJO,
670 SJP,
672 SJU,
674 SJW,
676 SKG,
678 SKP,
680 SLC,
682 SMF,
684 SOD,
686 SOF,
688 SSA,
690 STI,
692 STL,
694 STR,
696 SUV,
698 SYD,
700 SZX,
702 TAO,
704 TBS,
706 TEN,
708 TGU,
710 TIA,
712 TLH,
714 TLL,
716 TLV,
718 TNA,
720 TNR,
722 TPA,
724 TPE,
726 TUN,
728 TXL,
730 TYN,
732 UDI,
734 UIO,
736 ULN,
738 URT,
740 VCP,
742 VIE,
744 VIX,
746 VNO,
748 VTE,
750 WAW,
752 WDH,
754 WLG,
756 WRO,
758 XAP,
760 XFN,
762 XIY,
764 XNH,
766 YHZ,
768 YOW,
770 YUL,
772 YVR,
774 YWG,
776 YXE,
778 YYC,
780 YYZ,
782 ZAG,
784 ZDM,
786 ZRH,
788}
789
790impl Colo {
791 #[inline]
793 pub const fn code(&self) -> &'static str {
794 match self {
795 Self::AAE => "AAE",
796 Self::ABJ => "ABJ",
797 Self::ABQ => "ABQ",
798 Self::ACC => "ACC",
799 Self::ACX => "ACX",
800 Self::ADB => "ADB",
801 Self::ADD => "ADD",
802 Self::ADL => "ADL",
803 Self::AGR => "AGR",
804 Self::AKL => "AKL",
805 Self::AKX => "AKX",
806 Self::ALA => "ALA",
807 Self::ALG => "ALG",
808 Self::AMD => "AMD",
809 Self::AMM => "AMM",
810 Self::AMS => "AMS",
811 Self::ANC => "ANC",
812 Self::ARI => "ARI",
813 Self::ARN => "ARN",
814 Self::ARU => "ARU",
815 Self::ASK => "ASK",
816 Self::ASU => "ASU",
817 Self::ATH => "ATH",
818 Self::ATL => "ATL",
819 Self::AUS => "AUS",
820 Self::BAH => "BAH",
821 Self::BAQ => "BAQ",
822 Self::BBI => "BBI",
823 Self::BCN => "BCN",
824 Self::BEG => "BEG",
825 Self::BEL => "BEL",
826 Self::BEY => "BEY",
827 Self::BGI => "BGI",
828 Self::BGR => "BGR",
829 Self::BGW => "BGW",
830 Self::BHY => "BHY",
831 Self::BKK => "BKK",
832 Self::BLR => "BLR",
833 Self::BNA => "BNA",
834 Self::BNE => "BNE",
835 Self::BNU => "BNU",
836 Self::BOD => "BOD",
837 Self::BOG => "BOG",
838 Self::BOM => "BOM",
839 Self::BOS => "BOS",
840 Self::BRU => "BRU",
841 Self::BSB => "BSB",
842 Self::BSR => "BSR",
843 Self::BTS => "BTS",
844 Self::BUD => "BUD",
845 Self::BUF => "BUF",
846 Self::BWN => "BWN",
847 Self::CAI => "CAI",
848 Self::CAN => "CAN",
849 Self::CAW => "CAW",
850 Self::CBR => "CBR",
851 Self::CCP => "CCP",
852 Self::CCU => "CCU",
853 Self::CDG => "CDG",
854 Self::CEB => "CEB",
855 Self::CFC => "CFC",
856 Self::CGB => "CGB",
857 Self::CGD => "CGD",
858 Self::CGK => "CGK",
859 Self::CGO => "CGO",
860 Self::CGP => "CGP",
861 Self::CGY => "CGY",
862 Self::CHC => "CHC",
863 Self::CJB => "CJB",
864 Self::CKG => "CKG",
865 Self::CLE => "CLE",
866 Self::CLO => "CLO",
867 Self::CLT => "CLT",
868 Self::CMB => "CMB",
869 Self::CMH => "CMH",
870 Self::CNF => "CNF",
871 Self::CNI => "CNI",
872 Self::CNN => "CNN",
873 Self::CNX => "CNX",
874 Self::COK => "COK",
875 Self::COR => "COR",
876 Self::CPH => "CPH",
877 Self::CPT => "CPT",
878 Self::CRK => "CRK",
879 Self::CSX => "CSX",
880 Self::CTU => "CTU",
881 Self::CWB => "CWB",
882 Self::CZL => "CZL",
883 Self::CZX => "CZX",
884 Self::DAC => "DAC",
885 Self::DAD => "DAD",
886 Self::DAR => "DAR",
887 Self::DEL => "DEL",
888 Self::DEN => "DEN",
889 Self::DEX => "DEX",
890 Self::DFW => "DFW",
891 Self::DKR => "DKR",
892 Self::DLC => "DLC",
893 Self::DLP => "DLP",
894 Self::DME => "DME",
895 Self::DMM => "DMM",
896 Self::DOH => "DOH",
897 Self::DPS => "DPS",
898 Self::DTW => "DTW",
899 Self::DUB => "DUB",
900 Self::DUR => "DUR",
901 Self::DUS => "DUS",
902 Self::DXB => "DXB",
903 Self::EBB => "EBB",
904 Self::EBL => "EBL",
905 Self::EVN => "EVN",
906 Self::EWR => "EWR",
907 Self::EZE => "EZE",
908 Self::FCO => "FCO",
909 Self::FIH => "FIH",
910 Self::FLN => "FLN",
911 Self::FOC => "FOC",
912 Self::FOR => "FOR",
913 Self::FRA => "FRA",
914 Self::FRU => "FRU",
915 Self::FSD => "FSD",
916 Self::FUK => "FUK",
917 Self::FUO => "FUO",
918 Self::GBE => "GBE",
919 Self::GDL => "GDL",
920 Self::GEO => "GEO",
921 Self::GIG => "GIG",
922 Self::GND => "GND",
923 Self::GOT => "GOT",
924 Self::GRU => "GRU",
925 Self::GUA => "GUA",
926 Self::GUM => "GUM",
927 Self::GVA => "GVA",
928 Self::GYD => "GYD",
929 Self::GYE => "GYE",
930 Self::GYN => "GYN",
931 Self::HAK => "HAK",
932 Self::HAM => "HAM",
933 Self::HAN => "HAN",
934 Self::HBA => "HBA",
935 Self::HEL => "HEL",
936 Self::HFA => "HFA",
937 Self::HGH => "HGH",
938 Self::HKG => "HKG",
939 Self::HNL => "HNL",
940 Self::HRE => "HRE",
941 Self::HYD => "HYD",
942 Self::HYN => "HYN",
943 Self::IAD => "IAD",
944 Self::IAH => "IAH",
945 Self::ICN => "ICN",
946 Self::IND => "IND",
947 Self::ISB => "ISB",
948 Self::IST => "IST",
949 Self::ISU => "ISU",
950 Self::IXC => "IXC",
951 Self::JAX => "JAX",
952 Self::JDO => "JDO",
953 Self::JED => "JED",
954 Self::JHB => "JHB",
955 Self::JIB => "JIB",
956 Self::JNB => "JNB",
957 Self::JOG => "JOG",
958 Self::JOI => "JOI",
959 Self::JXG => "JXG",
960 Self::KBP => "KBP",
961 Self::KCH => "KCH",
962 Self::KEF => "KEF",
963 Self::KGL => "KGL",
964 Self::KHH => "KHH",
965 Self::KHI => "KHI",
966 Self::KHN => "KHN",
967 Self::KIN => "KIN",
968 Self::KIV => "KIV",
969 Self::KIX => "KIX",
970 Self::KJA => "KJA",
971 Self::KMG => "KMG",
972 Self::KNU => "KNU",
973 Self::KTM => "KTM",
974 Self::KUL => "KUL",
975 Self::KWE => "KWE",
976 Self::KWI => "KWI",
977 Self::LAD => "LAD",
978 Self::LAS => "LAS",
979 Self::LAX => "LAX",
980 Self::LCA => "LCA",
981 Self::LED => "LED",
982 Self::LHE => "LHE",
983 Self::LHR => "LHR",
984 Self::LIM => "LIM",
985 Self::LIS => "LIS",
986 Self::LJU => "LJU",
987 Self::LLK => "LLK",
988 Self::LLW => "LLW",
989 Self::LOS => "LOS",
990 Self::LPB => "LPB",
991 Self::LUN => "LUN",
992 Self::LUX => "LUX",
993 Self::LYA => "LYA",
994 Self::LYS => "LYS",
995 Self::MAA => "MAA",
996 Self::MAD => "MAD",
997 Self::MAN => "MAN",
998 Self::MAO => "MAO",
999 Self::MBA => "MBA",
1000 Self::MCI => "MCI",
1001 Self::MCT => "MCT",
1002 Self::MDE => "MDE",
1003 Self::MEL => "MEL",
1004 Self::MEM => "MEM",
1005 Self::MEX => "MEX",
1006 Self::MFM => "MFM",
1007 Self::MIA => "MIA",
1008 Self::MLA => "MLA",
1009 Self::MLE => "MLE",
1010 Self::MLG => "MLG",
1011 Self::MNL => "MNL",
1012 Self::MPM => "MPM",
1013 Self::MRS => "MRS",
1014 Self::MRU => "MRU",
1015 Self::MSP => "MSP",
1016 Self::MSQ => "MSQ",
1017 Self::MUC => "MUC",
1018 Self::MXP => "MXP",
1019 Self::NAG => "NAG",
1020 Self::NBO => "NBO",
1021 Self::NJF => "NJF",
1022 Self::NOU => "NOU",
1023 Self::NQN => "NQN",
1024 Self::NQZ => "NQZ",
1025 Self::NRT => "NRT",
1026 Self::NVT => "NVT",
1027 Self::OKA => "OKA",
1028 Self::OKC => "OKC",
1029 Self::OMA => "OMA",
1030 Self::ORD => "ORD",
1031 Self::ORF => "ORF",
1032 Self::ORN => "ORN",
1033 Self::OSL => "OSL",
1034 Self::OTP => "OTP",
1035 Self::OUA => "OUA",
1036 Self::PAT => "PAT",
1037 Self::PBH => "PBH",
1038 Self::PBM => "PBM",
1039 Self::PDX => "PDX",
1040 Self::PER => "PER",
1041 Self::PHL => "PHL",
1042 Self::PHX => "PHX",
1043 Self::PIT => "PIT",
1044 Self::PKX => "PKX",
1045 Self::PMO => "PMO",
1046 Self::PMW => "PMW",
1047 Self::PNH => "PNH",
1048 Self::PNQ => "PNQ",
1049 Self::POA => "POA",
1050 Self::POS => "POS",
1051 Self::PPT => "PPT",
1052 Self::PRG => "PRG",
1053 Self::PTY => "PTY",
1054 Self::QRO => "QRO",
1055 Self::QWJ => "QWJ",
1056 Self::RAO => "RAO",
1057 Self::RDU => "RDU",
1058 Self::REC => "REC",
1059 Self::RIC => "RIC",
1060 Self::RIX => "RIX",
1061 Self::RUH => "RUH",
1062 Self::RUN => "RUN",
1063 Self::SAN => "SAN",
1064 Self::SAP => "SAP",
1065 Self::SAT => "SAT",
1066 Self::SCL => "SCL",
1067 Self::SDQ => "SDQ",
1068 Self::SEA => "SEA",
1069 Self::SFO => "SFO",
1070 Self::SGN => "SGN",
1071 Self::SHA => "SHA",
1072 Self::SIN => "SIN",
1073 Self::SJC => "SJC",
1074 Self::SJK => "SJK",
1075 Self::SJO => "SJO",
1076 Self::SJP => "SJP",
1077 Self::SJU => "SJU",
1078 Self::SJW => "SJW",
1079 Self::SKG => "SKG",
1080 Self::SKP => "SKP",
1081 Self::SLC => "SLC",
1082 Self::SMF => "SMF",
1083 Self::SOD => "SOD",
1084 Self::SOF => "SOF",
1085 Self::SSA => "SSA",
1086 Self::STI => "STI",
1087 Self::STL => "STL",
1088 Self::STR => "STR",
1089 Self::SUV => "SUV",
1090 Self::SYD => "SYD",
1091 Self::SZX => "SZX",
1092 Self::TAO => "TAO",
1093 Self::TBS => "TBS",
1094 Self::TEN => "TEN",
1095 Self::TGU => "TGU",
1096 Self::TIA => "TIA",
1097 Self::TLH => "TLH",
1098 Self::TLL => "TLL",
1099 Self::TLV => "TLV",
1100 Self::TNA => "TNA",
1101 Self::TNR => "TNR",
1102 Self::TPA => "TPA",
1103 Self::TPE => "TPE",
1104 Self::TUN => "TUN",
1105 Self::TXL => "TXL",
1106 Self::TYN => "TYN",
1107 Self::UDI => "UDI",
1108 Self::UIO => "UIO",
1109 Self::ULN => "ULN",
1110 Self::URT => "URT",
1111 Self::VCP => "VCP",
1112 Self::VIE => "VIE",
1113 Self::VIX => "VIX",
1114 Self::VNO => "VNO",
1115 Self::VTE => "VTE",
1116 Self::WAW => "WAW",
1117 Self::WDH => "WDH",
1118 Self::WLG => "WLG",
1119 Self::WRO => "WRO",
1120 Self::XAP => "XAP",
1121 Self::XFN => "XFN",
1122 Self::XIY => "XIY",
1123 Self::XNH => "XNH",
1124 Self::YHZ => "YHZ",
1125 Self::YOW => "YOW",
1126 Self::YUL => "YUL",
1127 Self::YVR => "YVR",
1128 Self::YWG => "YWG",
1129 Self::YXE => "YXE",
1130 Self::YYC => "YYC",
1131 Self::YYZ => "YYZ",
1132 Self::ZAG => "ZAG",
1133 Self::ZDM => "ZDM",
1134 Self::ZRH => "ZRH",
1135 }
1136 }
1137
1138 #[inline]
1140 pub const fn name(&self) -> &'static str {
1141 match self {
1142 Self::AAE => "Annaba, Algeria",
1143 Self::ABJ => "Abidjan, Ivory Coast",
1144 Self::ABQ => "Albuquerque, NM, United States",
1145 Self::ACC => "Accra, Ghana",
1146 Self::ACX => "Xingyi, China",
1147 Self::ADB => "Izmir, Turkey",
1148 Self::ADD => "Addis Ababa, Ethiopia",
1149 Self::ADL => "Adelaide, SA, Australia",
1150 Self::AGR => "Agra, India",
1151 Self::AKL => "Auckland, New Zealand",
1152 Self::AKX => "Aktobe, Kazakhstan",
1153 Self::ALA => "Almaty, Kazakhstan",
1154 Self::ALG => "Algiers, Algeria",
1155 Self::AMD => "Ahmedabad, India",
1156 Self::AMM => "Amman, Jordan",
1157 Self::AMS => "Amsterdam, Netherlands",
1158 Self::ANC => "Anchorage, AK, United States",
1159 Self::ARI => "Arica, Chile",
1160 Self::ARN => "Stockholm, Sweden",
1161 Self::ARU => "Aracatuba, Brazil",
1162 Self::ASK => "Yamoussoukro, Ivory Coast",
1163 Self::ASU => "Asunción, Paraguay",
1164 Self::ATH => "Athens, Greece",
1165 Self::ATL => "Atlanta, GA, United States",
1166 Self::AUS => "Austin, TX, United States",
1167 Self::BAH => "Manama, Bahrain",
1168 Self::BAQ => "Barranquilla, Colombia",
1169 Self::BBI => "Bhubaneswar, India",
1170 Self::BCN => "Barcelona, Spain",
1171 Self::BEG => "Belgrade, Serbia",
1172 Self::BEL => "Belém, Brazil",
1173 Self::BEY => "Beirut, Lebanon",
1174 Self::BGI => "Bridgetown, Barbados",
1175 Self::BGR => "Bangor, ME, United States",
1176 Self::BGW => "Baghdad, Iraq",
1177 Self::BHY => "Beihai, China",
1178 Self::BKK => "Bangkok, Thailand",
1179 Self::BLR => "Bangalore, India",
1180 Self::BNA => "Nashville, United States",
1181 Self::BNE => "Brisbane, QLD, Australia",
1182 Self::BNU => "Blumenau, Brazil",
1183 Self::BOD => "Bordeaux, France",
1184 Self::BOG => "Bogota, Colombia",
1185 Self::BOM => "Mumbai, India",
1186 Self::BOS => "Boston, MA, United States",
1187 Self::BRU => "Brussels, Belgium",
1188 Self::BSB => "Brasilia, Brazil",
1189 Self::BSR => "Basra, Iraq",
1190 Self::BTS => "Bratislava, Slovakia",
1191 Self::BUD => "Budapest, Hungary",
1192 Self::BUF => "Buffalo, NY, United States",
1193 Self::BWN => "Bandar Seri Begawan, Brunei",
1194 Self::CAI => "Cairo, Egypt",
1195 Self::CAN => "Guangzhou, China",
1196 Self::CAW => "Campos dos Goytacazes, Brazil",
1197 Self::CBR => "Canberra, ACT, Australia",
1198 Self::CCP => "Concepción, Chile",
1199 Self::CCU => "Kolkata, India",
1200 Self::CDG => "Paris, France",
1201 Self::CEB => "Cebu, Philippines",
1202 Self::CFC => "Cacador, Brazil",
1203 Self::CGB => "Cuiaba, Brazil",
1204 Self::CGD => "Changde, China",
1205 Self::CGK => "Jakarta, Indonesia",
1206 Self::CGO => "Zhengzhou, China",
1207 Self::CGP => "Chittagong, Bangladesh",
1208 Self::CGY => "Cagayan de Oro, Philippines",
1209 Self::CHC => "Christchurch, New Zealand",
1210 Self::CJB => "Coimbatore, India",
1211 Self::CKG => "Chongqing, China",
1212 Self::CLE => "Cleveland, OH, United States",
1213 Self::CLO => "Cali, Colombia",
1214 Self::CLT => "Charlotte, NC, United States",
1215 Self::CMB => "Colombo, Sri Lanka",
1216 Self::CMH => "Columbus, OH, United States",
1217 Self::CNF => "Belo Horizonte, Brazil",
1218 Self::CNI => "Cloud Network Interconnect (CNI)",
1219 Self::CNN => "Kannur, India",
1220 Self::CNX => "Chiang Mai, Thailand",
1221 Self::COK => "Kochi, India",
1222 Self::COR => "Córdoba, Argentina",
1223 Self::CPH => "Copenhagen, Denmark",
1224 Self::CPT => "Cape Town, South Africa",
1225 Self::CRK => "Tarlac City, Philippines",
1226 Self::CSX => "Changsha, China",
1227 Self::CTU => "Chengdu, China",
1228 Self::CWB => "Curitiba, Brazil",
1229 Self::CZL => "Constantine, Algeria",
1230 Self::CZX => "Changzhou, China",
1231 Self::DAC => "Dhaka, Bangladesh",
1232 Self::DAD => "Da Nang, Vietnam",
1233 Self::DAR => "Dar es Salaam, Tanzania",
1234 Self::DEL => "New Delhi, India",
1235 Self::DEN => "Denver, CO, United States",
1236 Self::DEX => "Digital Experience Monitoring (DEX)",
1237 Self::DFW => "Dallas, TX, United States",
1238 Self::DKR => "Dakar, Senegal",
1239 Self::DLC => "Dalian, China",
1240 Self::DLP => "Data Loss Prevention (DLP)",
1241 Self::DME => "Moscow, Russia",
1242 Self::DMM => "Dammam, Saudi Arabia",
1243 Self::DOH => "Doha, Qatar",
1244 Self::DPS => "Denpasar, Indonesia",
1245 Self::DTW => "Detroit, MI, United States",
1246 Self::DUB => "Dublin, Ireland",
1247 Self::DUR => "Durban, South Africa",
1248 Self::DUS => "Düsseldorf, Germany",
1249 Self::DXB => "Dubai, United Arab Emirates",
1250 Self::EBB => "Kampala, Uganda",
1251 Self::EBL => "Erbil, Iraq",
1252 Self::EVN => "Yerevan, Armenia",
1253 Self::EWR => "Newark, NJ, United States",
1254 Self::EZE => "Buenos Aires, Argentina",
1255 Self::FCO => "Rome, Italy",
1256 Self::FIH => "Kinshasa, DR Congo",
1257 Self::FLN => "Florianopolis, Brazil",
1258 Self::FOC => "Fuzhou, China",
1259 Self::FOR => "Fortaleza, Brazil",
1260 Self::FRA => "Frankfurt, Germany",
1261 Self::FRU => "Bishkek, Kyrgyzstan",
1262 Self::FSD => "Sioux Falls, SD, United States",
1263 Self::FUK => "Fukuoka, Japan",
1264 Self::FUO => "Foshan, China",
1265 Self::GBE => "Gaborone, Botswana",
1266 Self::GDL => "Guadalajara, Mexico",
1267 Self::GEO => "Georgetown, Guyana",
1268 Self::GIG => "Rio de Janeiro, Brazil",
1269 Self::GND => "St. George's, Grenada",
1270 Self::GOT => "Gothenburg, Sweden",
1271 Self::GRU => "São Paulo, Brazil",
1272 Self::GUA => "Guatemala City, Guatemala",
1273 Self::GUM => "Hagatna, Guam",
1274 Self::GVA => "Geneva, Switzerland",
1275 Self::GYD => "Baku, Azerbaijan",
1276 Self::GYE => "Guayaquil, Ecuador",
1277 Self::GYN => "Goiania, Brazil",
1278 Self::HAK => "Chengmai, China",
1279 Self::HAM => "Hamburg, Germany",
1280 Self::HAN => "Hanoi, Vietnam",
1281 Self::HBA => "Hobart, Australia",
1282 Self::HEL => "Helsinki, Finland",
1283 Self::HFA => "Haifa, Israel",
1284 Self::HGH => "Shaoxing, China",
1285 Self::HKG => "Hong Kong",
1286 Self::HNL => "Honolulu, HI, United States",
1287 Self::HRE => "Harare, Zimbabwe",
1288 Self::HYD => "Hyderabad, India",
1289 Self::HYN => "Taizhou, China",
1290 Self::IAD => "Ashburn, VA, United States",
1291 Self::IAH => "Houston, TX, United States",
1292 Self::ICN => "Seoul, South Korea",
1293 Self::IND => "Indianapolis, IN, United States",
1294 Self::ISB => "Islamabad, Pakistan",
1295 Self::IST => "Istanbul, Turkey",
1296 Self::ISU => "Sulaymaniyah, Iraq",
1297 Self::IXC => "Chandigarh, India",
1298 Self::JAX => "Jacksonville, FL, United States",
1299 Self::JDO => "Juazeiro do Norte, Brazil",
1300 Self::JED => "Jeddah, Saudi Arabia",
1301 Self::JHB => "Johor Bahru, Malaysia - (JHB)",
1302 Self::JIB => "Djibouti, Djibouti",
1303 Self::JNB => "Johannesburg, South Africa",
1304 Self::JOG => "Yogyakarta, Indonesia",
1305 Self::JOI => "Joinville, Brazil",
1306 Self::JXG => "Jiaxing, China",
1307 Self::KBP => "Kyiv, Ukraine",
1308 Self::KCH => "Kuching, Malaysia",
1309 Self::KEF => "Reykjavík, Iceland",
1310 Self::KGL => "Kigali, Rwanda",
1311 Self::KHH => "Kaohsiung City, Taiwan",
1312 Self::KHI => "Karachi, Pakistan",
1313 Self::KHN => "Nanchang, China",
1314 Self::KIN => "Kingston, Jamaica",
1315 Self::KIV => "Chișinău, Moldova",
1316 Self::KIX => "Osaka, Japan",
1317 Self::KJA => "Krasnoyarsk, Russia",
1318 Self::KMG => "Kunming, China",
1319 Self::KNU => "Kanpur, India",
1320 Self::KTM => "Kathmandu, Nepal",
1321 Self::KUL => "Kuala Lumpur, Malaysia",
1322 Self::KWE => "Guiyang, China",
1323 Self::KWI => "Kuwait City, Kuwait",
1324 Self::LAD => "Luanda, Angola",
1325 Self::LAS => "Las Vegas, NV, United States",
1326 Self::LAX => "Los Angeles, CA, United States",
1327 Self::LCA => "Nicosia, Cyprus",
1328 Self::LED => "Saint Petersburg, Russia",
1329 Self::LHE => "Lahore, Pakistan",
1330 Self::LHR => "London, United Kingdom",
1331 Self::LIM => "Lima, Peru",
1332 Self::LIS => "Lisbon, Portugal",
1333 Self::LJU => "Ljubljana, Slovenia",
1334 Self::LLK => "Astara, Azerbaijan",
1335 Self::LLW => "Lilongwe, Malawi",
1336 Self::LOS => "Lagos, Nigeria",
1337 Self::LPB => "La Paz, Bolivia",
1338 Self::LUN => "Lusaka, Zambia",
1339 Self::LUX => "Luxembourg City, Luxembourg",
1340 Self::LYA => "Luoyang, China",
1341 Self::LYS => "Lyon, France",
1342 Self::MAA => "Chennai, India",
1343 Self::MAD => "Madrid, Spain",
1344 Self::MAN => "Manchester, United Kingdom",
1345 Self::MAO => "Manaus, Brazil",
1346 Self::MBA => "Mombasa, Kenya",
1347 Self::MCI => "Kansas City, MO, United States",
1348 Self::MCT => "Muscat, Oman",
1349 Self::MDE => "Medellín, Colombia",
1350 Self::MEL => "Melbourne, VIC, Australia",
1351 Self::MEM => "Memphis, TN, United States",
1352 Self::MEX => "Mexico City, Mexico",
1353 Self::MFM => "Macau",
1354 Self::MIA => "Miami, FL, United States",
1355 Self::MLA => "Valletta, Malta",
1356 Self::MLE => "Male, Maldives",
1357 Self::MLG => "Malang, Indonesia",
1358 Self::MNL => "Manila, Philippines",
1359 Self::MPM => "Maputo, Mozambique",
1360 Self::MRS => "Marseille, France",
1361 Self::MRU => "Port Louis, Mauritius",
1362 Self::MSP => "Minneapolis, MN, United States",
1363 Self::MSQ => "Minsk, Belarus",
1364 Self::MUC => "Munich, Germany",
1365 Self::MXP => "Milan, Italy",
1366 Self::NAG => "Nagpur, India",
1367 Self::NBO => "Nairobi, Kenya",
1368 Self::NJF => "Najaf, Iraq",
1369 Self::NOU => "Noumea, New Caledonia",
1370 Self::NQN => "Neuquen, Argentina",
1371 Self::NQZ => "Astana, Kazakhstan",
1372 Self::NRT => "Tokyo, Japan",
1373 Self::NVT => "Timbo, Brazil",
1374 Self::OKA => "Naha, Japan",
1375 Self::OKC => "Oklahoma City, OK, United States",
1376 Self::OMA => "Omaha, NE, United States",
1377 Self::ORD => "Chicago, IL, United States",
1378 Self::ORF => "Norfolk, VA, United States",
1379 Self::ORN => "Oran, Algeria",
1380 Self::OSL => "Oslo, Norway",
1381 Self::OTP => "Bucharest, Romania",
1382 Self::OUA => "Ouagadougou, Burkina Faso",
1383 Self::PAT => "Patna, India",
1384 Self::PBH => "Thimphu, Bhutan",
1385 Self::PBM => "Paramaribo, Suriname",
1386 Self::PDX => "Portland, OR, United States",
1387 Self::PER => "Perth, WA, Australia",
1388 Self::PHL => "Philadelphia, United States",
1389 Self::PHX => "Phoenix, AZ, United States",
1390 Self::PIT => "Pittsburgh, PA, United States",
1391 Self::PKX => "Langfang, China",
1392 Self::PMO => "Palermo, Italy",
1393 Self::PMW => "Palmas, Brazil",
1394 Self::PNH => "Phnom Penh, Cambodia",
1395 Self::PNQ => "Pune, India",
1396 Self::POA => "Porto Alegre, Brazil",
1397 Self::POS => "Port of Spain, Trinidad and Tobago",
1398 Self::PPT => "Tahiti, French Polynesia",
1399 Self::PRG => "Prague, Czech Republic",
1400 Self::PTY => "Panama City, Panama",
1401 Self::QRO => "Queretaro, MX, Mexico",
1402 Self::QWJ => "Americana, Brazil",
1403 Self::RAO => "Ribeirao Preto, Brazil",
1404 Self::RDU => "Durham, NC, United States",
1405 Self::REC => "Recife, Brazil",
1406 Self::RIC => "Richmond, VA, United States",
1407 Self::RIX => "Riga, Latvia",
1408 Self::RUH => "Riyadh, Saudi Arabia",
1409 Self::RUN => "Saint-Denis, Réunion",
1410 Self::SAN => "San Diego, CA, United States",
1411 Self::SAP => "San Pedro Sula, Honduras",
1412 Self::SAT => "San Antonio, TX, United States",
1413 Self::SCL => "Santiago, Chile",
1414 Self::SDQ => "Santo Domingo, Dominican Republic",
1415 Self::SEA => "Seattle, WA, United States",
1416 Self::SFO => "San Francisco, CA, United States",
1417 Self::SGN => "Ho Chi Minh City, Vietnam",
1418 Self::SHA => "Shanghai, China",
1419 Self::SIN => "Singapore, Singapore",
1420 Self::SJC => "San Jose, CA, United States",
1421 Self::SJK => "São José dos Campos, Brazil",
1422 Self::SJO => "San José, Costa Rica",
1423 Self::SJP => "São José do Rio Preto, Brazil",
1424 Self::SJU => "San Juan, Puerto Rico",
1425 Self::SJW => "Shijiazhuang, China",
1426 Self::SKG => "Thessaloniki, Greece",
1427 Self::SKP => "Skopje, North Macedonia",
1428 Self::SLC => "Salt Lake City, UT, United States",
1429 Self::SMF => "Sacramento, CA, United States",
1430 Self::SOD => "Sorocaba, Brazil",
1431 Self::SOF => "Sofia, Bulgaria",
1432 Self::SSA => "Salvador, Brazil",
1433 Self::STI => "Santiago de los Caballeros, Dominican Republic",
1434 Self::STL => "St. Louis, MO, United States",
1435 Self::STR => "Stuttgart, Germany",
1436 Self::SUV => "Suva, Fiji",
1437 Self::SYD => "Sydney, NSW, Australia",
1438 Self::SZX => "Shenzhen, China",
1439 Self::TAO => "Qingdao, China",
1440 Self::TBS => "Tbilisi, Georgia",
1441 Self::TEN => "Tongren, China",
1442 Self::TGU => "Tegucigalpa, Honduras",
1443 Self::TIA => "Tirana, Albania",
1444 Self::TLH => "Tallahassee, FL, United States",
1445 Self::TLL => "Tallinn, Estonia",
1446 Self::TLV => "Tel Aviv, Israel",
1447 Self::TNA => "Zibo, China",
1448 Self::TNR => "Antananarivo, Madagascar",
1449 Self::TPA => "Tampa, FL, United States",
1450 Self::TPE => "Taipei",
1451 Self::TUN => "Tunis, Tunisia",
1452 Self::TXL => "Berlin, Germany",
1453 Self::TYN => "Yangquan, China",
1454 Self::UDI => "Uberlandia, Brazil",
1455 Self::UIO => "Quito, Ecuador",
1456 Self::ULN => "Ulaanbaatar, Mongolia",
1457 Self::URT => "Surat Thani, Thailand",
1458 Self::VCP => "Campinas, Brazil",
1459 Self::VIE => "Vienna, Austria",
1460 Self::VIX => "Vitoria, Brazil",
1461 Self::VNO => "Vilnius, Lithuania",
1462 Self::VTE => "Vientiane, Laos",
1463 Self::WAW => "Warsaw, Poland",
1464 Self::WDH => "Windhoek, Namibia",
1465 Self::WLG => "Wellington, New Zealand",
1466 Self::WRO => "Wroclaw, Poland",
1467 Self::XAP => "Chapeco, Brazil",
1468 Self::XFN => "Xiangyang, China",
1469 Self::XIY => "Baoji, China",
1470 Self::XNH => "Nasiriyah, Iraq",
1471 Self::YHZ => "Halifax, Canada",
1472 Self::YOW => "Ottawa, Canada",
1473 Self::YUL => "Montréal, QC, Canada",
1474 Self::YVR => "Vancouver, BC, Canada",
1475 Self::YWG => "Winnipeg, MB, Canada",
1476 Self::YXE => "Saskatoon, SK, Canada",
1477 Self::YYC => "Calgary, AB, Canada",
1478 Self::YYZ => "Toronto, ON, Canada",
1479 Self::ZAG => "Zagreb, Croatia",
1480 Self::ZDM => "Ramallah",
1481 Self::ZRH => "Zurich, Switzerland",
1482 }
1483 }
1484
1485 #[inline]
1493 pub const fn location_hint(&self) -> Option<LocationHint> {
1494 match self {
1495 Self::AAE => Some(LocationHint::Afr),
1496 Self::ABJ => Some(LocationHint::WEur),
1497 Self::ABQ => Some(LocationHint::WNam),
1498 Self::ACC => Some(LocationHint::Afr),
1499 Self::ACX => None,
1500 Self::ADB => Some(LocationHint::EEur),
1501 Self::ADD => Some(LocationHint::WEur),
1502 Self::ADL => Some(LocationHint::Oc),
1503 Self::AGR => Some(LocationHint::Apac),
1504 Self::AKL => Some(LocationHint::Oc),
1505 Self::AKX => Some(LocationHint::Me),
1506 Self::ALA => Some(LocationHint::EEur),
1507 Self::ALG => Some(LocationHint::Afr),
1508 Self::AMD => Some(LocationHint::Apac),
1509 Self::AMM => Some(LocationHint::Afr),
1510 Self::AMS => Some(LocationHint::Afr),
1511 Self::ANC => Some(LocationHint::WNam),
1512 Self::ARI => None,
1513 Self::ARN => Some(LocationHint::EEur),
1514 Self::ARU => None,
1515 Self::ASK => Some(LocationHint::Afr),
1516 Self::ASU => Some(LocationHint::ENam),
1517 Self::ATH => Some(LocationHint::EEur),
1518 Self::ATL => Some(LocationHint::ENam),
1519 Self::AUS => Some(LocationHint::WNam),
1520 Self::BAH => Some(LocationHint::Apac),
1521 Self::BAQ => Some(LocationHint::Sam),
1522 Self::BBI => Some(LocationHint::Apac),
1523 Self::BCN => Some(LocationHint::EEur),
1524 Self::BEG => Some(LocationHint::Me),
1525 Self::BEL => Some(LocationHint::ENam),
1526 Self::BEY => Some(LocationHint::WEur),
1527 Self::BGI => Some(LocationHint::ENam),
1528 Self::BGR => Some(LocationHint::ENam),
1529 Self::BGW => Some(LocationHint::Me),
1530 Self::BHY => None,
1531 Self::BKK => Some(LocationHint::Apac),
1532 Self::BLR => Some(LocationHint::Apac),
1533 Self::BNA => Some(LocationHint::ENam),
1534 Self::BNE => Some(LocationHint::Oc),
1535 Self::BNU => Some(LocationHint::Sam),
1536 Self::BOD => Some(LocationHint::WEur),
1537 Self::BOG => Some(LocationHint::Sam),
1538 Self::BOM => Some(LocationHint::Apac),
1539 Self::BOS => Some(LocationHint::Sam),
1540 Self::BRU => Some(LocationHint::Afr),
1541 Self::BSB => Some(LocationHint::Sam),
1542 Self::BSR => Some(LocationHint::Me),
1543 Self::BTS => Some(LocationHint::EEur),
1544 Self::BUD => Some(LocationHint::EEur),
1545 Self::BUF => Some(LocationHint::ENam),
1546 Self::BWN => None,
1547 Self::CAI => Some(LocationHint::WEur),
1548 Self::CAN => None,
1549 Self::CAW => Some(LocationHint::Sam),
1550 Self::CBR => Some(LocationHint::Oc),
1551 Self::CCP => Some(LocationHint::ENam),
1552 Self::CCU => Some(LocationHint::Apac),
1553 Self::CDG => Some(LocationHint::Afr),
1554 Self::CEB => Some(LocationHint::Apac),
1555 Self::CFC => Some(LocationHint::Sam),
1556 Self::CGB => Some(LocationHint::ENam),
1557 Self::CGD => None,
1558 Self::CGK => Some(LocationHint::Apac),
1559 Self::CGO => None,
1560 Self::CGP => Some(LocationHint::Apac),
1561 Self::CGY => Some(LocationHint::Apac),
1562 Self::CHC => Some(LocationHint::Oc),
1563 Self::CJB => Some(LocationHint::Apac),
1564 Self::CKG => None,
1565 Self::CLE => Some(LocationHint::Sam),
1566 Self::CLO => Some(LocationHint::ENam),
1567 Self::CLT => Some(LocationHint::Sam),
1568 Self::CMB => Some(LocationHint::Oc),
1569 Self::CMH => Some(LocationHint::ENam),
1570 Self::CNF => Some(LocationHint::Sam),
1571 Self::CNI => None,
1572 Self::CNN => Some(LocationHint::Apac),
1573 Self::CNX => Some(LocationHint::Apac),
1574 Self::COK => None,
1575 Self::COR => Some(LocationHint::Sam),
1576 Self::CPH => Some(LocationHint::WEur),
1577 Self::CPT => Some(LocationHint::WEur),
1578 Self::CRK => Some(LocationHint::Apac),
1579 Self::CSX => None,
1580 Self::CTU => None,
1581 Self::CWB => Some(LocationHint::ENam),
1582 Self::CZL => Some(LocationHint::Afr),
1583 Self::CZX => None,
1584 Self::DAC => Some(LocationHint::Apac),
1585 Self::DAD => Some(LocationHint::Apac),
1586 Self::DAR => Some(LocationHint::WEur),
1587 Self::DEL => Some(LocationHint::Apac),
1588 Self::DEN => Some(LocationHint::WNam),
1589 Self::DEX => None,
1590 Self::DFW => Some(LocationHint::WNam),
1591 Self::DKR => Some(LocationHint::Afr),
1592 Self::DLC => None,
1593 Self::DLP => None,
1594 Self::DME => Some(LocationHint::Me),
1595 Self::DMM => Some(LocationHint::WEur),
1596 Self::DOH => Some(LocationHint::Afr),
1597 Self::DPS => Some(LocationHint::Apac),
1598 Self::DTW => Some(LocationHint::ENam),
1599 Self::DUB => Some(LocationHint::WEur),
1600 Self::DUR => Some(LocationHint::Afr),
1601 Self::DUS => Some(LocationHint::Afr),
1602 Self::DXB => Some(LocationHint::Apac),
1603 Self::EBB => Some(LocationHint::Afr),
1604 Self::EBL => Some(LocationHint::EEur),
1605 Self::EVN => Some(LocationHint::Afr),
1606 Self::EWR => Some(LocationHint::ENam),
1607 Self::EZE => Some(LocationHint::ENam),
1608 Self::FCO => Some(LocationHint::EEur),
1609 Self::FIH => None,
1610 Self::FLN => Some(LocationHint::ENam),
1611 Self::FOC => None,
1612 Self::FOR => Some(LocationHint::Sam),
1613 Self::FRA => Some(LocationHint::EEur),
1614 Self::FRU => Some(LocationHint::Me),
1615 Self::FSD => Some(LocationHint::ENam),
1616 Self::FUK => Some(LocationHint::Apac),
1617 Self::FUO => None,
1618 Self::GBE => Some(LocationHint::WEur),
1619 Self::GDL => Some(LocationHint::ENam),
1620 Self::GEO => Some(LocationHint::ENam),
1621 Self::GIG => Some(LocationHint::ENam),
1622 Self::GND => None,
1623 Self::GOT => Some(LocationHint::WEur),
1624 Self::GRU => Some(LocationHint::ENam),
1625 Self::GUA => Some(LocationHint::ENam),
1626 Self::GUM => Some(LocationHint::WNam),
1627 Self::GVA => Some(LocationHint::WEur),
1628 Self::GYD => Some(LocationHint::WEur),
1629 Self::GYE => Some(LocationHint::Sam),
1630 Self::GYN => Some(LocationHint::Sam),
1631 Self::HAK => None,
1632 Self::HAM => Some(LocationHint::EEur),
1633 Self::HAN => Some(LocationHint::Apac),
1634 Self::HBA => Some(LocationHint::Oc),
1635 Self::HEL => Some(LocationHint::Me),
1636 Self::HFA => Some(LocationHint::WEur),
1637 Self::HGH => None,
1638 Self::HKG => Some(LocationHint::Apac),
1639 Self::HNL => Some(LocationHint::WNam),
1640 Self::HRE => None,
1641 Self::HYD => Some(LocationHint::Apac),
1642 Self::HYN => None,
1643 Self::IAD => Some(LocationHint::Sam),
1644 Self::IAH => Some(LocationHint::Sam),
1645 Self::ICN => Some(LocationHint::Apac),
1646 Self::IND => Some(LocationHint::Sam),
1647 Self::ISB => Some(LocationHint::Apac),
1648 Self::IST => Some(LocationHint::Me),
1649 Self::ISU => Some(LocationHint::EEur),
1650 Self::IXC => Some(LocationHint::Apac),
1651 Self::JAX => Some(LocationHint::ENam),
1652 Self::JDO => Some(LocationHint::Sam),
1653 Self::JED => Some(LocationHint::Afr),
1654 Self::JHB => None,
1655 Self::JIB => Some(LocationHint::Afr),
1656 Self::JNB => Some(LocationHint::WEur),
1657 Self::JOG => Some(LocationHint::Apac),
1658 Self::JOI => Some(LocationHint::ENam),
1659 Self::JXG => None,
1660 Self::KBP => Some(LocationHint::Me),
1661 Self::KCH => Some(LocationHint::Apac),
1662 Self::KEF => Some(LocationHint::WEur),
1663 Self::KGL => None,
1664 Self::KHH => Some(LocationHint::Apac),
1665 Self::KHI => Some(LocationHint::Apac),
1666 Self::KHN => None,
1667 Self::KIN => Some(LocationHint::ENam),
1668 Self::KIV => Some(LocationHint::EEur),
1669 Self::KIX => Some(LocationHint::Apac),
1670 Self::KJA => Some(LocationHint::Me),
1671 Self::KMG => None,
1672 Self::KNU => Some(LocationHint::Apac),
1673 Self::KTM => Some(LocationHint::Apac),
1674 Self::KUL => Some(LocationHint::Apac),
1675 Self::KWE => None,
1676 Self::KWI => Some(LocationHint::Afr),
1677 Self::LAD => Some(LocationHint::WEur),
1678 Self::LAS => Some(LocationHint::WNam),
1679 Self::LAX => Some(LocationHint::WNam),
1680 Self::LCA => Some(LocationHint::Afr),
1681 Self::LED => Some(LocationHint::Me),
1682 Self::LHE => Some(LocationHint::Apac),
1683 Self::LHR => Some(LocationHint::WEur),
1684 Self::LIM => Some(LocationHint::ENam),
1685 Self::LIS => Some(LocationHint::WEur),
1686 Self::LJU => None,
1687 Self::LLK => Some(LocationHint::WEur),
1688 Self::LLW => None,
1689 Self::LOS => Some(LocationHint::WEur),
1690 Self::LPB => Some(LocationHint::ENam),
1691 Self::LUN => Some(LocationHint::Afr),
1692 Self::LUX => Some(LocationHint::Afr),
1693 Self::LYA => None,
1694 Self::LYS => Some(LocationHint::Afr),
1695 Self::MAA => Some(LocationHint::Apac),
1696 Self::MAD => Some(LocationHint::WEur),
1697 Self::MAN => Some(LocationHint::Afr),
1698 Self::MAO => Some(LocationHint::Sam),
1699 Self::MBA => Some(LocationHint::Afr),
1700 Self::MCI => Some(LocationHint::Sam),
1701 Self::MCT => Some(LocationHint::Apac),
1702 Self::MDE => Some(LocationHint::ENam),
1703 Self::MEL => Some(LocationHint::Oc),
1704 Self::MEM => Some(LocationHint::Sam),
1705 Self::MEX => Some(LocationHint::ENam),
1706 Self::MFM => Some(LocationHint::Apac),
1707 Self::MIA => Some(LocationHint::ENam),
1708 Self::MLA => Some(LocationHint::WEur),
1709 Self::MLE => Some(LocationHint::Apac),
1710 Self::MLG => Some(LocationHint::Apac),
1711 Self::MNL => Some(LocationHint::Apac),
1712 Self::MPM => Some(LocationHint::Afr),
1713 Self::MRS => Some(LocationHint::WEur),
1714 Self::MRU => Some(LocationHint::Apac),
1715 Self::MSP => Some(LocationHint::ENam),
1716 Self::MSQ => Some(LocationHint::EEur),
1717 Self::MUC => Some(LocationHint::Me),
1718 Self::MXP => Some(LocationHint::EEur),
1719 Self::NAG => Some(LocationHint::Apac),
1720 Self::NBO => Some(LocationHint::Me),
1721 Self::NJF => Some(LocationHint::Me),
1722 Self::NOU => Some(LocationHint::Oc),
1723 Self::NQN => Some(LocationHint::ENam),
1724 Self::NQZ => None,
1725 Self::NRT => Some(LocationHint::Apac),
1726 Self::NVT => Some(LocationHint::ENam),
1727 Self::OKA => None,
1728 Self::OKC => Some(LocationHint::Sam),
1729 Self::OMA => Some(LocationHint::WNam),
1730 Self::ORD => Some(LocationHint::Sam),
1731 Self::ORF => None,
1732 Self::ORN => Some(LocationHint::Afr),
1733 Self::OSL => Some(LocationHint::Me),
1734 Self::OTP => Some(LocationHint::Me),
1735 Self::OUA => Some(LocationHint::WEur),
1736 Self::PAT => Some(LocationHint::Apac),
1737 Self::PBH => Some(LocationHint::Apac),
1738 Self::PBM => Some(LocationHint::ENam),
1739 Self::PDX => Some(LocationHint::WNam),
1740 Self::PER => Some(LocationHint::Oc),
1741 Self::PHL => Some(LocationHint::Sam),
1742 Self::PHX => Some(LocationHint::WNam),
1743 Self::PIT => Some(LocationHint::ENam),
1744 Self::PKX => None,
1745 Self::PMO => Some(LocationHint::Me),
1746 Self::PMW => Some(LocationHint::ENam),
1747 Self::PNH => Some(LocationHint::Apac),
1748 Self::PNQ => None,
1749 Self::POA => Some(LocationHint::Sam),
1750 Self::POS => Some(LocationHint::Sam),
1751 Self::PPT => Some(LocationHint::WNam),
1752 Self::PRG => Some(LocationHint::Me),
1753 Self::PTY => Some(LocationHint::Sam),
1754 Self::QRO => Some(LocationHint::ENam),
1755 Self::QWJ => Some(LocationHint::Sam),
1756 Self::RAO => Some(LocationHint::ENam),
1757 Self::RDU => Some(LocationHint::Sam),
1758 Self::REC => Some(LocationHint::ENam),
1759 Self::RIC => Some(LocationHint::ENam),
1760 Self::RIX => Some(LocationHint::EEur),
1761 Self::RUH => Some(LocationHint::EEur),
1762 Self::RUN => Some(LocationHint::Afr),
1763 Self::SAN => Some(LocationHint::WNam),
1764 Self::SAP => Some(LocationHint::ENam),
1765 Self::SAT => Some(LocationHint::WNam),
1766 Self::SCL => Some(LocationHint::Sam),
1767 Self::SDQ => Some(LocationHint::ENam),
1768 Self::SEA => Some(LocationHint::WNam),
1769 Self::SFO => None,
1770 Self::SGN => Some(LocationHint::Apac),
1771 Self::SHA => None,
1772 Self::SIN => Some(LocationHint::Apac),
1773 Self::SJC => Some(LocationHint::WNam),
1774 Self::SJK => Some(LocationHint::ENam),
1775 Self::SJO => Some(LocationHint::ENam),
1776 Self::SJP => Some(LocationHint::Sam),
1777 Self::SJU => Some(LocationHint::Sam),
1778 Self::SJW => None,
1779 Self::SKG => Some(LocationHint::Me),
1780 Self::SKP => None,
1781 Self::SLC => Some(LocationHint::WNam),
1782 Self::SMF => Some(LocationHint::WNam),
1783 Self::SOD => Some(LocationHint::ENam),
1784 Self::SOF => Some(LocationHint::Me),
1785 Self::SSA => Some(LocationHint::Sam),
1786 Self::STI => Some(LocationHint::ENam),
1787 Self::STL => Some(LocationHint::ENam),
1788 Self::STR => Some(LocationHint::WEur),
1789 Self::SUV => Some(LocationHint::Oc),
1790 Self::SYD => Some(LocationHint::Oc),
1791 Self::SZX => None,
1792 Self::TAO => None,
1793 Self::TBS => Some(LocationHint::Me),
1794 Self::TEN => None,
1795 Self::TGU => Some(LocationHint::ENam),
1796 Self::TIA => Some(LocationHint::EEur),
1797 Self::TLH => Some(LocationHint::Sam),
1798 Self::TLL => Some(LocationHint::Me),
1799 Self::TLV => Some(LocationHint::WEur),
1800 Self::TNA => None,
1801 Self::TNR => Some(LocationHint::WEur),
1802 Self::TPA => Some(LocationHint::Sam),
1803 Self::TPE => Some(LocationHint::Apac),
1804 Self::TUN => Some(LocationHint::Afr),
1805 Self::TXL => Some(LocationHint::WEur),
1806 Self::TYN => None,
1807 Self::UDI => Some(LocationHint::Sam),
1808 Self::UIO => Some(LocationHint::ENam),
1809 Self::ULN => Some(LocationHint::Me),
1810 Self::URT => Some(LocationHint::Apac),
1811 Self::VCP => Some(LocationHint::Sam),
1812 Self::VIE => Some(LocationHint::EEur),
1813 Self::VIX => None,
1814 Self::VNO => Some(LocationHint::EEur),
1815 Self::VTE => Some(LocationHint::Apac),
1816 Self::WAW => Some(LocationHint::EEur),
1817 Self::WDH => Some(LocationHint::Afr),
1818 Self::WLG => Some(LocationHint::Oc),
1819 Self::WRO => Some(LocationHint::Me),
1820 Self::XAP => None,
1821 Self::XFN => None,
1822 Self::XIY => None,
1823 Self::XNH => Some(LocationHint::EEur),
1824 Self::YHZ => Some(LocationHint::ENam),
1825 Self::YOW => Some(LocationHint::Sam),
1826 Self::YUL => Some(LocationHint::Sam),
1827 Self::YVR => Some(LocationHint::WNam),
1828 Self::YWG => Some(LocationHint::Sam),
1829 Self::YXE => Some(LocationHint::WNam),
1830 Self::YYC => Some(LocationHint::WNam),
1831 Self::YYZ => Some(LocationHint::ENam),
1832 Self::ZAG => Some(LocationHint::EEur),
1833 Self::ZDM => Some(LocationHint::EEur),
1834 Self::ZRH => Some(LocationHint::EEur),
1835 }
1836 }
1837
1838 pub fn from_code(code: &str) -> Option<Self> {
1840 match code {
1841 "AAE" => Some(Self::AAE),
1842 "ABJ" => Some(Self::ABJ),
1843 "ABQ" => Some(Self::ABQ),
1844 "ACC" => Some(Self::ACC),
1845 "ACX" => Some(Self::ACX),
1846 "ADB" => Some(Self::ADB),
1847 "ADD" => Some(Self::ADD),
1848 "ADL" => Some(Self::ADL),
1849 "AGR" => Some(Self::AGR),
1850 "AKL" => Some(Self::AKL),
1851 "AKX" => Some(Self::AKX),
1852 "ALA" => Some(Self::ALA),
1853 "ALG" => Some(Self::ALG),
1854 "AMD" => Some(Self::AMD),
1855 "AMM" => Some(Self::AMM),
1856 "AMS" => Some(Self::AMS),
1857 "ANC" => Some(Self::ANC),
1858 "ARI" => Some(Self::ARI),
1859 "ARN" => Some(Self::ARN),
1860 "ARU" => Some(Self::ARU),
1861 "ASK" => Some(Self::ASK),
1862 "ASU" => Some(Self::ASU),
1863 "ATH" => Some(Self::ATH),
1864 "ATL" => Some(Self::ATL),
1865 "AUS" => Some(Self::AUS),
1866 "BAH" => Some(Self::BAH),
1867 "BAQ" => Some(Self::BAQ),
1868 "BBI" => Some(Self::BBI),
1869 "BCN" => Some(Self::BCN),
1870 "BEG" => Some(Self::BEG),
1871 "BEL" => Some(Self::BEL),
1872 "BEY" => Some(Self::BEY),
1873 "BGI" => Some(Self::BGI),
1874 "BGR" => Some(Self::BGR),
1875 "BGW" => Some(Self::BGW),
1876 "BHY" => Some(Self::BHY),
1877 "BKK" => Some(Self::BKK),
1878 "BLR" => Some(Self::BLR),
1879 "BNA" => Some(Self::BNA),
1880 "BNE" => Some(Self::BNE),
1881 "BNU" => Some(Self::BNU),
1882 "BOD" => Some(Self::BOD),
1883 "BOG" => Some(Self::BOG),
1884 "BOM" => Some(Self::BOM),
1885 "BOS" => Some(Self::BOS),
1886 "BRU" => Some(Self::BRU),
1887 "BSB" => Some(Self::BSB),
1888 "BSR" => Some(Self::BSR),
1889 "BTS" => Some(Self::BTS),
1890 "BUD" => Some(Self::BUD),
1891 "BUF" => Some(Self::BUF),
1892 "BWN" => Some(Self::BWN),
1893 "CAI" => Some(Self::CAI),
1894 "CAN" => Some(Self::CAN),
1895 "CAW" => Some(Self::CAW),
1896 "CBR" => Some(Self::CBR),
1897 "CCP" => Some(Self::CCP),
1898 "CCU" => Some(Self::CCU),
1899 "CDG" => Some(Self::CDG),
1900 "CEB" => Some(Self::CEB),
1901 "CFC" => Some(Self::CFC),
1902 "CGB" => Some(Self::CGB),
1903 "CGD" => Some(Self::CGD),
1904 "CGK" => Some(Self::CGK),
1905 "CGO" => Some(Self::CGO),
1906 "CGP" => Some(Self::CGP),
1907 "CGY" => Some(Self::CGY),
1908 "CHC" => Some(Self::CHC),
1909 "CJB" => Some(Self::CJB),
1910 "CKG" => Some(Self::CKG),
1911 "CLE" => Some(Self::CLE),
1912 "CLO" => Some(Self::CLO),
1913 "CLT" => Some(Self::CLT),
1914 "CMB" => Some(Self::CMB),
1915 "CMH" => Some(Self::CMH),
1916 "CNF" => Some(Self::CNF),
1917 "CNI" => Some(Self::CNI),
1918 "CNN" => Some(Self::CNN),
1919 "CNX" => Some(Self::CNX),
1920 "COK" => Some(Self::COK),
1921 "COR" => Some(Self::COR),
1922 "CPH" => Some(Self::CPH),
1923 "CPT" => Some(Self::CPT),
1924 "CRK" => Some(Self::CRK),
1925 "CSX" => Some(Self::CSX),
1926 "CTU" => Some(Self::CTU),
1927 "CWB" => Some(Self::CWB),
1928 "CZL" => Some(Self::CZL),
1929 "CZX" => Some(Self::CZX),
1930 "DAC" => Some(Self::DAC),
1931 "DAD" => Some(Self::DAD),
1932 "DAR" => Some(Self::DAR),
1933 "DEL" => Some(Self::DEL),
1934 "DEN" => Some(Self::DEN),
1935 "DEX" => Some(Self::DEX),
1936 "DFW" => Some(Self::DFW),
1937 "DKR" => Some(Self::DKR),
1938 "DLC" => Some(Self::DLC),
1939 "DLP" => Some(Self::DLP),
1940 "DME" => Some(Self::DME),
1941 "DMM" => Some(Self::DMM),
1942 "DOH" => Some(Self::DOH),
1943 "DPS" => Some(Self::DPS),
1944 "DTW" => Some(Self::DTW),
1945 "DUB" => Some(Self::DUB),
1946 "DUR" => Some(Self::DUR),
1947 "DUS" => Some(Self::DUS),
1948 "DXB" => Some(Self::DXB),
1949 "EBB" => Some(Self::EBB),
1950 "EBL" => Some(Self::EBL),
1951 "EVN" => Some(Self::EVN),
1952 "EWR" => Some(Self::EWR),
1953 "EZE" => Some(Self::EZE),
1954 "FCO" => Some(Self::FCO),
1955 "FIH" => Some(Self::FIH),
1956 "FLN" => Some(Self::FLN),
1957 "FOC" => Some(Self::FOC),
1958 "FOR" => Some(Self::FOR),
1959 "FRA" => Some(Self::FRA),
1960 "FRU" => Some(Self::FRU),
1961 "FSD" => Some(Self::FSD),
1962 "FUK" => Some(Self::FUK),
1963 "FUO" => Some(Self::FUO),
1964 "GBE" => Some(Self::GBE),
1965 "GDL" => Some(Self::GDL),
1966 "GEO" => Some(Self::GEO),
1967 "GIG" => Some(Self::GIG),
1968 "GND" => Some(Self::GND),
1969 "GOT" => Some(Self::GOT),
1970 "GRU" => Some(Self::GRU),
1971 "GUA" => Some(Self::GUA),
1972 "GUM" => Some(Self::GUM),
1973 "GVA" => Some(Self::GVA),
1974 "GYD" => Some(Self::GYD),
1975 "GYE" => Some(Self::GYE),
1976 "GYN" => Some(Self::GYN),
1977 "HAK" => Some(Self::HAK),
1978 "HAM" => Some(Self::HAM),
1979 "HAN" => Some(Self::HAN),
1980 "HBA" => Some(Self::HBA),
1981 "HEL" => Some(Self::HEL),
1982 "HFA" => Some(Self::HFA),
1983 "HGH" => Some(Self::HGH),
1984 "HKG" => Some(Self::HKG),
1985 "HNL" => Some(Self::HNL),
1986 "HRE" => Some(Self::HRE),
1987 "HYD" => Some(Self::HYD),
1988 "HYN" => Some(Self::HYN),
1989 "IAD" => Some(Self::IAD),
1990 "IAH" => Some(Self::IAH),
1991 "ICN" => Some(Self::ICN),
1992 "IND" => Some(Self::IND),
1993 "ISB" => Some(Self::ISB),
1994 "IST" => Some(Self::IST),
1995 "ISU" => Some(Self::ISU),
1996 "IXC" => Some(Self::IXC),
1997 "JAX" => Some(Self::JAX),
1998 "JDO" => Some(Self::JDO),
1999 "JED" => Some(Self::JED),
2000 "JHB" => Some(Self::JHB),
2001 "JIB" => Some(Self::JIB),
2002 "JNB" => Some(Self::JNB),
2003 "JOG" => Some(Self::JOG),
2004 "JOI" => Some(Self::JOI),
2005 "JXG" => Some(Self::JXG),
2006 "KBP" => Some(Self::KBP),
2007 "KCH" => Some(Self::KCH),
2008 "KEF" => Some(Self::KEF),
2009 "KGL" => Some(Self::KGL),
2010 "KHH" => Some(Self::KHH),
2011 "KHI" => Some(Self::KHI),
2012 "KHN" => Some(Self::KHN),
2013 "KIN" => Some(Self::KIN),
2014 "KIV" => Some(Self::KIV),
2015 "KIX" => Some(Self::KIX),
2016 "KJA" => Some(Self::KJA),
2017 "KMG" => Some(Self::KMG),
2018 "KNU" => Some(Self::KNU),
2019 "KTM" => Some(Self::KTM),
2020 "KUL" => Some(Self::KUL),
2021 "KWE" => Some(Self::KWE),
2022 "KWI" => Some(Self::KWI),
2023 "LAD" => Some(Self::LAD),
2024 "LAS" => Some(Self::LAS),
2025 "LAX" => Some(Self::LAX),
2026 "LCA" => Some(Self::LCA),
2027 "LED" => Some(Self::LED),
2028 "LHE" => Some(Self::LHE),
2029 "LHR" => Some(Self::LHR),
2030 "LIM" => Some(Self::LIM),
2031 "LIS" => Some(Self::LIS),
2032 "LJU" => Some(Self::LJU),
2033 "LLK" => Some(Self::LLK),
2034 "LLW" => Some(Self::LLW),
2035 "LOS" => Some(Self::LOS),
2036 "LPB" => Some(Self::LPB),
2037 "LUN" => Some(Self::LUN),
2038 "LUX" => Some(Self::LUX),
2039 "LYA" => Some(Self::LYA),
2040 "LYS" => Some(Self::LYS),
2041 "MAA" => Some(Self::MAA),
2042 "MAD" => Some(Self::MAD),
2043 "MAN" => Some(Self::MAN),
2044 "MAO" => Some(Self::MAO),
2045 "MBA" => Some(Self::MBA),
2046 "MCI" => Some(Self::MCI),
2047 "MCT" => Some(Self::MCT),
2048 "MDE" => Some(Self::MDE),
2049 "MEL" => Some(Self::MEL),
2050 "MEM" => Some(Self::MEM),
2051 "MEX" => Some(Self::MEX),
2052 "MFM" => Some(Self::MFM),
2053 "MIA" => Some(Self::MIA),
2054 "MLA" => Some(Self::MLA),
2055 "MLE" => Some(Self::MLE),
2056 "MLG" => Some(Self::MLG),
2057 "MNL" => Some(Self::MNL),
2058 "MPM" => Some(Self::MPM),
2059 "MRS" => Some(Self::MRS),
2060 "MRU" => Some(Self::MRU),
2061 "MSP" => Some(Self::MSP),
2062 "MSQ" => Some(Self::MSQ),
2063 "MUC" => Some(Self::MUC),
2064 "MXP" => Some(Self::MXP),
2065 "NAG" => Some(Self::NAG),
2066 "NBO" => Some(Self::NBO),
2067 "NJF" => Some(Self::NJF),
2068 "NOU" => Some(Self::NOU),
2069 "NQN" => Some(Self::NQN),
2070 "NQZ" => Some(Self::NQZ),
2071 "NRT" => Some(Self::NRT),
2072 "NVT" => Some(Self::NVT),
2073 "OKA" => Some(Self::OKA),
2074 "OKC" => Some(Self::OKC),
2075 "OMA" => Some(Self::OMA),
2076 "ORD" => Some(Self::ORD),
2077 "ORF" => Some(Self::ORF),
2078 "ORN" => Some(Self::ORN),
2079 "OSL" => Some(Self::OSL),
2080 "OTP" => Some(Self::OTP),
2081 "OUA" => Some(Self::OUA),
2082 "PAT" => Some(Self::PAT),
2083 "PBH" => Some(Self::PBH),
2084 "PBM" => Some(Self::PBM),
2085 "PDX" => Some(Self::PDX),
2086 "PER" => Some(Self::PER),
2087 "PHL" => Some(Self::PHL),
2088 "PHX" => Some(Self::PHX),
2089 "PIT" => Some(Self::PIT),
2090 "PKX" => Some(Self::PKX),
2091 "PMO" => Some(Self::PMO),
2092 "PMW" => Some(Self::PMW),
2093 "PNH" => Some(Self::PNH),
2094 "PNQ" => Some(Self::PNQ),
2095 "POA" => Some(Self::POA),
2096 "POS" => Some(Self::POS),
2097 "PPT" => Some(Self::PPT),
2098 "PRG" => Some(Self::PRG),
2099 "PTY" => Some(Self::PTY),
2100 "QRO" => Some(Self::QRO),
2101 "QWJ" => Some(Self::QWJ),
2102 "RAO" => Some(Self::RAO),
2103 "RDU" => Some(Self::RDU),
2104 "REC" => Some(Self::REC),
2105 "RIC" => Some(Self::RIC),
2106 "RIX" => Some(Self::RIX),
2107 "RUH" => Some(Self::RUH),
2108 "RUN" => Some(Self::RUN),
2109 "SAN" => Some(Self::SAN),
2110 "SAP" => Some(Self::SAP),
2111 "SAT" => Some(Self::SAT),
2112 "SCL" => Some(Self::SCL),
2113 "SDQ" => Some(Self::SDQ),
2114 "SEA" => Some(Self::SEA),
2115 "SFO" => Some(Self::SFO),
2116 "SGN" => Some(Self::SGN),
2117 "SHA" => Some(Self::SHA),
2118 "SIN" => Some(Self::SIN),
2119 "SJC" => Some(Self::SJC),
2120 "SJK" => Some(Self::SJK),
2121 "SJO" => Some(Self::SJO),
2122 "SJP" => Some(Self::SJP),
2123 "SJU" => Some(Self::SJU),
2124 "SJW" => Some(Self::SJW),
2125 "SKG" => Some(Self::SKG),
2126 "SKP" => Some(Self::SKP),
2127 "SLC" => Some(Self::SLC),
2128 "SMF" => Some(Self::SMF),
2129 "SOD" => Some(Self::SOD),
2130 "SOF" => Some(Self::SOF),
2131 "SSA" => Some(Self::SSA),
2132 "STI" => Some(Self::STI),
2133 "STL" => Some(Self::STL),
2134 "STR" => Some(Self::STR),
2135 "SUV" => Some(Self::SUV),
2136 "SYD" => Some(Self::SYD),
2137 "SZX" => Some(Self::SZX),
2138 "TAO" => Some(Self::TAO),
2139 "TBS" => Some(Self::TBS),
2140 "TEN" => Some(Self::TEN),
2141 "TGU" => Some(Self::TGU),
2142 "TIA" => Some(Self::TIA),
2143 "TLH" => Some(Self::TLH),
2144 "TLL" => Some(Self::TLL),
2145 "TLV" => Some(Self::TLV),
2146 "TNA" => Some(Self::TNA),
2147 "TNR" => Some(Self::TNR),
2148 "TPA" => Some(Self::TPA),
2149 "TPE" => Some(Self::TPE),
2150 "TUN" => Some(Self::TUN),
2151 "TXL" => Some(Self::TXL),
2152 "TYN" => Some(Self::TYN),
2153 "UDI" => Some(Self::UDI),
2154 "UIO" => Some(Self::UIO),
2155 "ULN" => Some(Self::ULN),
2156 "URT" => Some(Self::URT),
2157 "VCP" => Some(Self::VCP),
2158 "VIE" => Some(Self::VIE),
2159 "VIX" => Some(Self::VIX),
2160 "VNO" => Some(Self::VNO),
2161 "VTE" => Some(Self::VTE),
2162 "WAW" => Some(Self::WAW),
2163 "WDH" => Some(Self::WDH),
2164 "WLG" => Some(Self::WLG),
2165 "WRO" => Some(Self::WRO),
2166 "XAP" => Some(Self::XAP),
2167 "XFN" => Some(Self::XFN),
2168 "XIY" => Some(Self::XIY),
2169 "XNH" => Some(Self::XNH),
2170 "YHZ" => Some(Self::YHZ),
2171 "YOW" => Some(Self::YOW),
2172 "YUL" => Some(Self::YUL),
2173 "YVR" => Some(Self::YVR),
2174 "YWG" => Some(Self::YWG),
2175 "YXE" => Some(Self::YXE),
2176 "YYC" => Some(Self::YYC),
2177 "YYZ" => Some(Self::YYZ),
2178 "ZAG" => Some(Self::ZAG),
2179 "ZDM" => Some(Self::ZDM),
2180 "ZRH" => Some(Self::ZRH),
2181 _ => None,
2182 }
2183 }
2184
2185 pub const ALL: &'static [Colo] = &[
2187 Self::AAE,
2188 Self::ABJ,
2189 Self::ABQ,
2190 Self::ACC,
2191 Self::ACX,
2192 Self::ADB,
2193 Self::ADD,
2194 Self::ADL,
2195 Self::AGR,
2196 Self::AKL,
2197 Self::AKX,
2198 Self::ALA,
2199 Self::ALG,
2200 Self::AMD,
2201 Self::AMM,
2202 Self::AMS,
2203 Self::ANC,
2204 Self::ARI,
2205 Self::ARN,
2206 Self::ARU,
2207 Self::ASK,
2208 Self::ASU,
2209 Self::ATH,
2210 Self::ATL,
2211 Self::AUS,
2212 Self::BAH,
2213 Self::BAQ,
2214 Self::BBI,
2215 Self::BCN,
2216 Self::BEG,
2217 Self::BEL,
2218 Self::BEY,
2219 Self::BGI,
2220 Self::BGR,
2221 Self::BGW,
2222 Self::BHY,
2223 Self::BKK,
2224 Self::BLR,
2225 Self::BNA,
2226 Self::BNE,
2227 Self::BNU,
2228 Self::BOD,
2229 Self::BOG,
2230 Self::BOM,
2231 Self::BOS,
2232 Self::BRU,
2233 Self::BSB,
2234 Self::BSR,
2235 Self::BTS,
2236 Self::BUD,
2237 Self::BUF,
2238 Self::BWN,
2239 Self::CAI,
2240 Self::CAN,
2241 Self::CAW,
2242 Self::CBR,
2243 Self::CCP,
2244 Self::CCU,
2245 Self::CDG,
2246 Self::CEB,
2247 Self::CFC,
2248 Self::CGB,
2249 Self::CGD,
2250 Self::CGK,
2251 Self::CGO,
2252 Self::CGP,
2253 Self::CGY,
2254 Self::CHC,
2255 Self::CJB,
2256 Self::CKG,
2257 Self::CLE,
2258 Self::CLO,
2259 Self::CLT,
2260 Self::CMB,
2261 Self::CMH,
2262 Self::CNF,
2263 Self::CNI,
2264 Self::CNN,
2265 Self::CNX,
2266 Self::COK,
2267 Self::COR,
2268 Self::CPH,
2269 Self::CPT,
2270 Self::CRK,
2271 Self::CSX,
2272 Self::CTU,
2273 Self::CWB,
2274 Self::CZL,
2275 Self::CZX,
2276 Self::DAC,
2277 Self::DAD,
2278 Self::DAR,
2279 Self::DEL,
2280 Self::DEN,
2281 Self::DEX,
2282 Self::DFW,
2283 Self::DKR,
2284 Self::DLC,
2285 Self::DLP,
2286 Self::DME,
2287 Self::DMM,
2288 Self::DOH,
2289 Self::DPS,
2290 Self::DTW,
2291 Self::DUB,
2292 Self::DUR,
2293 Self::DUS,
2294 Self::DXB,
2295 Self::EBB,
2296 Self::EBL,
2297 Self::EVN,
2298 Self::EWR,
2299 Self::EZE,
2300 Self::FCO,
2301 Self::FIH,
2302 Self::FLN,
2303 Self::FOC,
2304 Self::FOR,
2305 Self::FRA,
2306 Self::FRU,
2307 Self::FSD,
2308 Self::FUK,
2309 Self::FUO,
2310 Self::GBE,
2311 Self::GDL,
2312 Self::GEO,
2313 Self::GIG,
2314 Self::GND,
2315 Self::GOT,
2316 Self::GRU,
2317 Self::GUA,
2318 Self::GUM,
2319 Self::GVA,
2320 Self::GYD,
2321 Self::GYE,
2322 Self::GYN,
2323 Self::HAK,
2324 Self::HAM,
2325 Self::HAN,
2326 Self::HBA,
2327 Self::HEL,
2328 Self::HFA,
2329 Self::HGH,
2330 Self::HKG,
2331 Self::HNL,
2332 Self::HRE,
2333 Self::HYD,
2334 Self::HYN,
2335 Self::IAD,
2336 Self::IAH,
2337 Self::ICN,
2338 Self::IND,
2339 Self::ISB,
2340 Self::IST,
2341 Self::ISU,
2342 Self::IXC,
2343 Self::JAX,
2344 Self::JDO,
2345 Self::JED,
2346 Self::JHB,
2347 Self::JIB,
2348 Self::JNB,
2349 Self::JOG,
2350 Self::JOI,
2351 Self::JXG,
2352 Self::KBP,
2353 Self::KCH,
2354 Self::KEF,
2355 Self::KGL,
2356 Self::KHH,
2357 Self::KHI,
2358 Self::KHN,
2359 Self::KIN,
2360 Self::KIV,
2361 Self::KIX,
2362 Self::KJA,
2363 Self::KMG,
2364 Self::KNU,
2365 Self::KTM,
2366 Self::KUL,
2367 Self::KWE,
2368 Self::KWI,
2369 Self::LAD,
2370 Self::LAS,
2371 Self::LAX,
2372 Self::LCA,
2373 Self::LED,
2374 Self::LHE,
2375 Self::LHR,
2376 Self::LIM,
2377 Self::LIS,
2378 Self::LJU,
2379 Self::LLK,
2380 Self::LLW,
2381 Self::LOS,
2382 Self::LPB,
2383 Self::LUN,
2384 Self::LUX,
2385 Self::LYA,
2386 Self::LYS,
2387 Self::MAA,
2388 Self::MAD,
2389 Self::MAN,
2390 Self::MAO,
2391 Self::MBA,
2392 Self::MCI,
2393 Self::MCT,
2394 Self::MDE,
2395 Self::MEL,
2396 Self::MEM,
2397 Self::MEX,
2398 Self::MFM,
2399 Self::MIA,
2400 Self::MLA,
2401 Self::MLE,
2402 Self::MLG,
2403 Self::MNL,
2404 Self::MPM,
2405 Self::MRS,
2406 Self::MRU,
2407 Self::MSP,
2408 Self::MSQ,
2409 Self::MUC,
2410 Self::MXP,
2411 Self::NAG,
2412 Self::NBO,
2413 Self::NJF,
2414 Self::NOU,
2415 Self::NQN,
2416 Self::NQZ,
2417 Self::NRT,
2418 Self::NVT,
2419 Self::OKA,
2420 Self::OKC,
2421 Self::OMA,
2422 Self::ORD,
2423 Self::ORF,
2424 Self::ORN,
2425 Self::OSL,
2426 Self::OTP,
2427 Self::OUA,
2428 Self::PAT,
2429 Self::PBH,
2430 Self::PBM,
2431 Self::PDX,
2432 Self::PER,
2433 Self::PHL,
2434 Self::PHX,
2435 Self::PIT,
2436 Self::PKX,
2437 Self::PMO,
2438 Self::PMW,
2439 Self::PNH,
2440 Self::PNQ,
2441 Self::POA,
2442 Self::POS,
2443 Self::PPT,
2444 Self::PRG,
2445 Self::PTY,
2446 Self::QRO,
2447 Self::QWJ,
2448 Self::RAO,
2449 Self::RDU,
2450 Self::REC,
2451 Self::RIC,
2452 Self::RIX,
2453 Self::RUH,
2454 Self::RUN,
2455 Self::SAN,
2456 Self::SAP,
2457 Self::SAT,
2458 Self::SCL,
2459 Self::SDQ,
2460 Self::SEA,
2461 Self::SFO,
2462 Self::SGN,
2463 Self::SHA,
2464 Self::SIN,
2465 Self::SJC,
2466 Self::SJK,
2467 Self::SJO,
2468 Self::SJP,
2469 Self::SJU,
2470 Self::SJW,
2471 Self::SKG,
2472 Self::SKP,
2473 Self::SLC,
2474 Self::SMF,
2475 Self::SOD,
2476 Self::SOF,
2477 Self::SSA,
2478 Self::STI,
2479 Self::STL,
2480 Self::STR,
2481 Self::SUV,
2482 Self::SYD,
2483 Self::SZX,
2484 Self::TAO,
2485 Self::TBS,
2486 Self::TEN,
2487 Self::TGU,
2488 Self::TIA,
2489 Self::TLH,
2490 Self::TLL,
2491 Self::TLV,
2492 Self::TNA,
2493 Self::TNR,
2494 Self::TPA,
2495 Self::TPE,
2496 Self::TUN,
2497 Self::TXL,
2498 Self::TYN,
2499 Self::UDI,
2500 Self::UIO,
2501 Self::ULN,
2502 Self::URT,
2503 Self::VCP,
2504 Self::VIE,
2505 Self::VIX,
2506 Self::VNO,
2507 Self::VTE,
2508 Self::WAW,
2509 Self::WDH,
2510 Self::WLG,
2511 Self::WRO,
2512 Self::XAP,
2513 Self::XFN,
2514 Self::XIY,
2515 Self::XNH,
2516 Self::YHZ,
2517 Self::YOW,
2518 Self::YUL,
2519 Self::YVR,
2520 Self::YWG,
2521 Self::YXE,
2522 Self::YYC,
2523 Self::YYZ,
2524 Self::ZAG,
2525 Self::ZDM,
2526 Self::ZRH,
2527 ];
2528}
2529
2530impl fmt::Display for Colo {
2531 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2532 f.write_str(self.code())
2533 }
2534}