Skip to main content

cf_colo_hint/
generated.rs

1// This file is auto-generated by codegen.py
2// Do not edit manually - changes will be overwritten
3
4use core::fmt;
5
6/// Durable Objects location hint.
7///
8/// These are the supported regions for Durable Objects location hints.
9/// Note: Location hints are best-effort and not guaranteed.
10#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
11#[non_exhaustive]
12pub enum LocationHint {
13    /// Africa
14    Afr,
15    /// Asia-Pacific
16    Apac,
17    /// Eastern Europe
18    EEur,
19    /// Eastern North America
20    ENam,
21    /// Middle East
22    Me,
23    /// Oceania
24    Oc,
25    /// South America
26    Sam,
27    /// Western Europe
28    WEur,
29    /// Western North America
30    WNam,
31}
32
33impl LocationHint {
34    /// Returns the location hint code as used in the Cloudflare API.
35    #[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    /// Returns the human-readable name of the location.
51    #[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    /// Returns all location hints.
67    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    /// Parse a location hint from its string code.
80    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/// Cloudflare data center (colo) identifier.
103///
104/// Each variant represents a Cloudflare edge location.
105#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
106#[non_exhaustive]
107pub enum Colo {
108    /// Annaba, Algeria
109    AAE,
110    /// Abidjan, Ivory Coast
111    ABJ,
112    /// Albuquerque, NM, United States
113    ABQ,
114    /// Accra, Ghana
115    ACC,
116    /// Xingyi, China
117    ACX,
118    /// Izmir, Turkey
119    ADB,
120    /// Addis Ababa, Ethiopia
121    ADD,
122    /// Adelaide, SA, Australia
123    ADL,
124    /// Agra, India
125    AGR,
126    /// Auckland, New Zealand
127    AKL,
128    /// Aktobe, Kazakhstan
129    AKX,
130    /// Almaty, Kazakhstan
131    ALA,
132    /// Algiers, Algeria
133    ALG,
134    /// Ahmedabad, India
135    AMD,
136    /// Amman, Jordan
137    AMM,
138    /// Amsterdam, Netherlands
139    AMS,
140    /// Anchorage, AK, United States
141    ANC,
142    /// Arica, Chile
143    ARI,
144    /// Stockholm, Sweden
145    ARN,
146    /// Aracatuba, Brazil
147    ARU,
148    /// Yamoussoukro, Ivory Coast
149    ASK,
150    /// Asunción, Paraguay
151    ASU,
152    /// Athens, Greece
153    ATH,
154    /// Atlanta, GA, United States
155    ATL,
156    /// Austin, TX, United States
157    AUS,
158    /// Manama, Bahrain
159    BAH,
160    /// Barranquilla, Colombia
161    BAQ,
162    /// Bhubaneswar, India
163    BBI,
164    /// Barcelona, Spain
165    BCN,
166    /// Belgrade, Serbia
167    BEG,
168    /// Belém, Brazil
169    BEL,
170    /// Beirut, Lebanon
171    BEY,
172    /// Bridgetown, Barbados
173    BGI,
174    /// Bangor, ME, United States
175    BGR,
176    /// Baghdad, Iraq
177    BGW,
178    /// Beihai, China
179    BHY,
180    /// Bangkok, Thailand
181    BKK,
182    /// Bangalore, India
183    BLR,
184    /// Nashville, United States
185    BNA,
186    /// Brisbane, QLD, Australia
187    BNE,
188    /// Blumenau, Brazil
189    BNU,
190    /// Bordeaux, France
191    BOD,
192    /// Bogota, Colombia
193    BOG,
194    /// Mumbai, India
195    BOM,
196    /// Boston, MA, United States
197    BOS,
198    /// Brussels, Belgium
199    BRU,
200    /// Brasilia, Brazil
201    BSB,
202    /// Basra, Iraq
203    BSR,
204    /// Bratislava, Slovakia
205    BTS,
206    /// Budapest, Hungary
207    BUD,
208    /// Buffalo, NY, United States
209    BUF,
210    /// Bandar Seri Begawan, Brunei
211    BWN,
212    /// Cairo, Egypt
213    CAI,
214    /// Guangzhou, China
215    CAN,
216    /// Campos dos Goytacazes, Brazil
217    CAW,
218    /// Canberra, ACT, Australia
219    CBR,
220    /// Concepción, Chile
221    CCP,
222    /// Kolkata, India
223    CCU,
224    /// Paris, France
225    CDG,
226    /// Cebu, Philippines
227    CEB,
228    /// Cacador, Brazil
229    CFC,
230    /// Cuiaba, Brazil
231    CGB,
232    /// Changde, China
233    CGD,
234    /// Jakarta, Indonesia
235    CGK,
236    /// Zhengzhou, China
237    CGO,
238    /// Chittagong, Bangladesh
239    CGP,
240    /// Cagayan de Oro, Philippines
241    CGY,
242    /// Christchurch, New Zealand
243    CHC,
244    /// Coimbatore, India
245    CJB,
246    /// Chongqing, China
247    CKG,
248    /// Cleveland, OH, United States
249    CLE,
250    /// Cali, Colombia
251    CLO,
252    /// Charlotte, NC, United States
253    CLT,
254    /// Colombo, Sri Lanka
255    CMB,
256    /// Columbus, OH, United States
257    CMH,
258    /// Belo Horizonte, Brazil
259    CNF,
260    /// Cloud Network Interconnect (CNI)
261    CNI,
262    /// Kannur, India
263    CNN,
264    /// Chiang Mai, Thailand
265    CNX,
266    /// Kochi, India
267    COK,
268    /// Córdoba, Argentina
269    COR,
270    /// Copenhagen, Denmark
271    CPH,
272    /// Cape Town, South Africa
273    CPT,
274    /// Tarlac City, Philippines
275    CRK,
276    /// Changsha, China
277    CSX,
278    /// Chengdu, China
279    CTU,
280    /// Curitiba, Brazil
281    CWB,
282    /// Constantine, Algeria
283    CZL,
284    /// Changzhou, China
285    CZX,
286    /// Dhaka, Bangladesh
287    DAC,
288    /// Da Nang, Vietnam
289    DAD,
290    /// Dar es Salaam, Tanzania
291    DAR,
292    /// New Delhi, India
293    DEL,
294    /// Denver, CO, United States
295    DEN,
296    /// Digital Experience Monitoring (DEX)
297    DEX,
298    /// Dallas, TX, United States
299    DFW,
300    /// Dakar, Senegal
301    DKR,
302    /// Dalian, China
303    DLC,
304    /// Data Loss Prevention (DLP)
305    DLP,
306    /// Moscow, Russia
307    DME,
308    /// Dammam, Saudi Arabia
309    DMM,
310    /// Doha, Qatar
311    DOH,
312    /// Denpasar, Indonesia
313    DPS,
314    /// Detroit, MI, United States
315    DTW,
316    /// Dublin, Ireland
317    DUB,
318    /// Durban, South Africa
319    DUR,
320    /// Düsseldorf, Germany
321    DUS,
322    /// Dubai, United Arab Emirates
323    DXB,
324    /// Kampala, Uganda
325    EBB,
326    /// Erbil, Iraq
327    EBL,
328    /// Yerevan, Armenia
329    EVN,
330    /// Newark, NJ, United States
331    EWR,
332    /// Buenos Aires, Argentina
333    EZE,
334    /// Rome, Italy
335    FCO,
336    /// Kinshasa, DR Congo
337    FIH,
338    /// Florianopolis, Brazil
339    FLN,
340    /// Fuzhou, China
341    FOC,
342    /// Fortaleza, Brazil
343    FOR,
344    /// Frankfurt, Germany
345    FRA,
346    /// Bishkek, Kyrgyzstan
347    FRU,
348    /// Sioux Falls, SD, United States
349    FSD,
350    /// Fukuoka, Japan
351    FUK,
352    /// Foshan, China
353    FUO,
354    /// Gaborone, Botswana
355    GBE,
356    /// Guadalajara, Mexico
357    GDL,
358    /// Georgetown, Guyana
359    GEO,
360    /// Rio de Janeiro, Brazil
361    GIG,
362    /// St. George's, Grenada
363    GND,
364    /// Gothenburg, Sweden
365    GOT,
366    /// São Paulo, Brazil
367    GRU,
368    /// Guatemala City, Guatemala
369    GUA,
370    /// Hagatna, Guam
371    GUM,
372    /// Geneva, Switzerland
373    GVA,
374    /// Baku, Azerbaijan
375    GYD,
376    /// Guayaquil, Ecuador
377    GYE,
378    /// Goiania, Brazil
379    GYN,
380    /// Chengmai, China
381    HAK,
382    /// Hamburg, Germany
383    HAM,
384    /// Hanoi, Vietnam
385    HAN,
386    /// Hobart, Australia
387    HBA,
388    /// Helsinki, Finland
389    HEL,
390    /// Haifa, Israel
391    HFA,
392    /// Shaoxing, China
393    HGH,
394    /// Hong Kong
395    HKG,
396    /// Honolulu, HI, United States
397    HNL,
398    /// Harare, Zimbabwe
399    HRE,
400    /// Hyderabad, India
401    HYD,
402    /// Taizhou, China
403    HYN,
404    /// Ashburn, VA, United States
405    IAD,
406    /// Houston, TX, United States
407    IAH,
408    /// Seoul, South Korea
409    ICN,
410    /// Indianapolis, IN, United States
411    IND,
412    /// Islamabad, Pakistan
413    ISB,
414    /// Istanbul, Turkey
415    IST,
416    /// Sulaymaniyah, Iraq
417    ISU,
418    /// Chandigarh, India
419    IXC,
420    /// Jacksonville, FL, United States
421    JAX,
422    /// Juazeiro do Norte, Brazil
423    JDO,
424    /// Jeddah, Saudi Arabia
425    JED,
426    /// Johor Bahru, Malaysia - (JHB)
427    JHB,
428    /// Djibouti, Djibouti
429    JIB,
430    /// Johannesburg, South Africa
431    JNB,
432    /// Yogyakarta, Indonesia
433    JOG,
434    /// Joinville, Brazil
435    JOI,
436    /// Jiaxing, China
437    JXG,
438    /// Kyiv, Ukraine
439    KBP,
440    /// Kuching, Malaysia
441    KCH,
442    /// Reykjavík, Iceland
443    KEF,
444    /// Kigali, Rwanda
445    KGL,
446    /// Kaohsiung City, Taiwan
447    KHH,
448    /// Karachi, Pakistan
449    KHI,
450    /// Nanchang, China
451    KHN,
452    /// Kingston, Jamaica
453    KIN,
454    /// Chișinău, Moldova
455    KIV,
456    /// Osaka, Japan
457    KIX,
458    /// Krasnoyarsk, Russia
459    KJA,
460    /// Kunming, China
461    KMG,
462    /// Kanpur, India
463    KNU,
464    /// Kathmandu, Nepal
465    KTM,
466    /// Kuala Lumpur, Malaysia
467    KUL,
468    /// Guiyang, China
469    KWE,
470    /// Kuwait City, Kuwait
471    KWI,
472    /// Luanda, Angola
473    LAD,
474    /// Las Vegas, NV, United States
475    LAS,
476    /// Los Angeles, CA, United States
477    LAX,
478    /// Nicosia, Cyprus
479    LCA,
480    /// Saint Petersburg, Russia
481    LED,
482    /// Lahore, Pakistan
483    LHE,
484    /// London, United Kingdom
485    LHR,
486    /// Lima, Peru
487    LIM,
488    /// Lisbon, Portugal
489    LIS,
490    /// Ljubljana, Slovenia
491    LJU,
492    /// Astara, Azerbaijan
493    LLK,
494    /// Lilongwe, Malawi
495    LLW,
496    /// Lagos, Nigeria
497    LOS,
498    /// La Paz, Bolivia
499    LPB,
500    /// Lusaka, Zambia
501    LUN,
502    /// Luxembourg City, Luxembourg
503    LUX,
504    /// Luoyang, China
505    LYA,
506    /// Lyon, France
507    LYS,
508    /// Chennai, India
509    MAA,
510    /// Madrid, Spain
511    MAD,
512    /// Manchester, United Kingdom
513    MAN,
514    /// Manaus, Brazil
515    MAO,
516    /// Mombasa, Kenya
517    MBA,
518    /// Kansas City, MO, United States
519    MCI,
520    /// Muscat, Oman
521    MCT,
522    /// Medellín, Colombia
523    MDE,
524    /// Melbourne, VIC, Australia
525    MEL,
526    /// Memphis, TN, United States
527    MEM,
528    /// Mexico City, Mexico
529    MEX,
530    /// Macau
531    MFM,
532    /// Miami, FL, United States
533    MIA,
534    /// Valletta, Malta
535    MLA,
536    /// Male, Maldives
537    MLE,
538    /// Malang, Indonesia
539    MLG,
540    /// Manila, Philippines
541    MNL,
542    /// Maputo, Mozambique
543    MPM,
544    /// Marseille, France
545    MRS,
546    /// Port Louis, Mauritius
547    MRU,
548    /// Minneapolis, MN, United States
549    MSP,
550    /// Minsk, Belarus
551    MSQ,
552    /// Munich, Germany
553    MUC,
554    /// Milan, Italy
555    MXP,
556    /// Nagpur, India
557    NAG,
558    /// Nairobi, Kenya
559    NBO,
560    /// Najaf, Iraq
561    NJF,
562    /// Noumea, New Caledonia
563    NOU,
564    /// Neuquen, Argentina
565    NQN,
566    /// Astana, Kazakhstan
567    NQZ,
568    /// Tokyo, Japan
569    NRT,
570    /// Timbo, Brazil
571    NVT,
572    /// Naha, Japan
573    OKA,
574    /// Oklahoma City, OK, United States
575    OKC,
576    /// Omaha, NE, United States
577    OMA,
578    /// Chicago, IL, United States
579    ORD,
580    /// Norfolk, VA, United States
581    ORF,
582    /// Oran, Algeria
583    ORN,
584    /// Oslo, Norway
585    OSL,
586    /// Bucharest, Romania
587    OTP,
588    /// Ouagadougou, Burkina Faso
589    OUA,
590    /// Patna, India
591    PAT,
592    /// Thimphu, Bhutan
593    PBH,
594    /// Paramaribo, Suriname
595    PBM,
596    /// Portland, OR, United States
597    PDX,
598    /// Perth, WA, Australia
599    PER,
600    /// Philadelphia, United States
601    PHL,
602    /// Phoenix, AZ, United States
603    PHX,
604    /// Pittsburgh, PA, United States
605    PIT,
606    /// Langfang, China
607    PKX,
608    /// Palermo, Italy
609    PMO,
610    /// Palmas, Brazil
611    PMW,
612    /// Phnom Penh, Cambodia
613    PNH,
614    /// Pune, India
615    PNQ,
616    /// Porto Alegre, Brazil
617    POA,
618    /// Port of Spain, Trinidad and Tobago
619    POS,
620    /// Tahiti, French Polynesia
621    PPT,
622    /// Prague, Czech Republic
623    PRG,
624    /// Panama City, Panama
625    PTY,
626    /// Queretaro, MX, Mexico
627    QRO,
628    /// Americana, Brazil
629    QWJ,
630    /// Ribeirao Preto, Brazil
631    RAO,
632    /// Durham, NC, United States
633    RDU,
634    /// Recife, Brazil
635    REC,
636    /// Richmond, VA, United States
637    RIC,
638    /// Riga, Latvia
639    RIX,
640    /// Riyadh, Saudi Arabia
641    RUH,
642    /// Saint-Denis, Réunion
643    RUN,
644    /// San Diego, CA, United States
645    SAN,
646    /// San Pedro Sula, Honduras
647    SAP,
648    /// San Antonio, TX, United States
649    SAT,
650    /// Santiago, Chile
651    SCL,
652    /// Santo Domingo, Dominican Republic
653    SDQ,
654    /// Seattle, WA, United States
655    SEA,
656    /// San Francisco, CA, United States
657    SFO,
658    /// Ho Chi Minh City, Vietnam
659    SGN,
660    /// Shanghai, China
661    SHA,
662    /// Singapore, Singapore
663    SIN,
664    /// San Jose, CA, United States
665    SJC,
666    /// São José dos Campos, Brazil
667    SJK,
668    /// San José, Costa Rica
669    SJO,
670    /// São José do Rio Preto, Brazil
671    SJP,
672    /// San Juan, Puerto Rico
673    SJU,
674    /// Shijiazhuang, China
675    SJW,
676    /// Thessaloniki, Greece
677    SKG,
678    /// Skopje, North Macedonia
679    SKP,
680    /// Salt Lake City, UT, United States
681    SLC,
682    /// Sacramento, CA, United States
683    SMF,
684    /// Sorocaba, Brazil
685    SOD,
686    /// Sofia, Bulgaria
687    SOF,
688    /// Salvador, Brazil
689    SSA,
690    /// Santiago de los Caballeros, Dominican Republic
691    STI,
692    /// St. Louis, MO, United States
693    STL,
694    /// Stuttgart, Germany
695    STR,
696    /// Suva, Fiji
697    SUV,
698    /// Sydney, NSW, Australia
699    SYD,
700    /// Shenzhen, China
701    SZX,
702    /// Qingdao, China
703    TAO,
704    /// Tbilisi, Georgia
705    TBS,
706    /// Tongren, China
707    TEN,
708    /// Tegucigalpa, Honduras
709    TGU,
710    /// Tirana, Albania
711    TIA,
712    /// Tallahassee, FL, United States
713    TLH,
714    /// Tallinn, Estonia
715    TLL,
716    /// Tel Aviv, Israel
717    TLV,
718    /// Zibo, China
719    TNA,
720    /// Antananarivo, Madagascar
721    TNR,
722    /// Tampa, FL, United States
723    TPA,
724    /// Taipei
725    TPE,
726    /// Tunis, Tunisia
727    TUN,
728    /// Berlin, Germany
729    TXL,
730    /// Yangquan, China
731    TYN,
732    /// Uberlandia, Brazil
733    UDI,
734    /// Quito, Ecuador
735    UIO,
736    /// Ulaanbaatar, Mongolia
737    ULN,
738    /// Surat Thani, Thailand
739    URT,
740    /// Campinas, Brazil
741    VCP,
742    /// Vienna, Austria
743    VIE,
744    /// Vitoria, Brazil
745    VIX,
746    /// Vilnius, Lithuania
747    VNO,
748    /// Vientiane, Laos
749    VTE,
750    /// Warsaw, Poland
751    WAW,
752    /// Windhoek, Namibia
753    WDH,
754    /// Wellington, New Zealand
755    WLG,
756    /// Wroclaw, Poland
757    WRO,
758    /// Chapeco, Brazil
759    XAP,
760    /// Xiangyang, China
761    XFN,
762    /// Baoji, China
763    XIY,
764    /// Nasiriyah, Iraq
765    XNH,
766    /// Halifax, Canada
767    YHZ,
768    /// Ottawa, Canada
769    YOW,
770    /// Montréal, QC, Canada
771    YUL,
772    /// Vancouver, BC, Canada
773    YVR,
774    /// Winnipeg, MB, Canada
775    YWG,
776    /// Saskatoon, SK, Canada
777    YXE,
778    /// Calgary, AB, Canada
779    YYC,
780    /// Toronto, ON, Canada
781    YYZ,
782    /// Zagreb, Croatia
783    ZAG,
784    /// Ramallah
785    ZDM,
786    /// Zurich, Switzerland
787    ZRH,
788}
789
790impl Colo {
791    /// Returns the 3-letter IATA code for this colo.
792    #[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    /// Returns the human-readable name of this colo.
1139    #[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    /// Returns the nearest Durable Objects location hint for this colo.
1486    ///
1487    /// This is based on measured latency data and represents the best
1488    /// location hint to use when creating Durable Objects for requests
1489    /// arriving at this colo.
1490    ///
1491    /// Returns `None` if no mapping data is available for this colo.
1492    #[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    /// Parse a colo from its 3-letter code.
1839    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    /// Returns all colos.
2186    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}