1use std::collections::HashSet;
2use std::sync::LazyLock;
3
4/// Returns whether the given country code is supported by Anthropic.
5///
6/// https://www.anthropic.com/supported-countries
7pub fn is_supported_country(country_code: &str) -> bool {
8 SUPPORTED_COUNTRIES.contains(&country_code)
9}
10
11/// The list of country codes supported by Anthropic.
12///
13/// https://www.anthropic.com/supported-countries
14static SUPPORTED_COUNTRIES: LazyLock<HashSet<&'static str>> = LazyLock::new(|| {
15 vec![
16 "AL", // Albania
17 "DZ", // Algeria
18 "AD", // Andorra
19 "AO", // Angola
20 "AG", // Antigua and Barbuda
21 "AR", // Argentina
22 "AM", // Armenia
23 "AU", // Australia
24 "AT", // Austria
25 "AZ", // Azerbaijan
26 "BS", // Bahamas
27 "BH", // Bahrain
28 "BD", // Bangladesh
29 "BB", // Barbados
30 "BE", // Belgium
31 "BZ", // Belize
32 "BJ", // Benin
33 "BT", // Bhutan
34 "BO", // Bolivia
35 "BA", // Bosnia and Herzegovina
36 "BW", // Botswana
37 "BR", // Brazil
38 "BN", // Brunei
39 "BG", // Bulgaria
40 "BF", // Burkina Faso
41 "BI", // Burundi
42 "CV", // Cabo Verde
43 "KH", // Cambodia
44 "CM", // Cameroon
45 "CA", // Canada
46 "TD", // Chad
47 "CL", // Chile
48 "CO", // Colombia
49 "KM", // Comoros
50 "CG", // Congo (Brazzaville)
51 "CR", // Costa Rica
52 "CI", // Côte d'Ivoire
53 "HR", // Croatia
54 "CY", // Cyprus
55 "CZ", // Czechia (Czech Republic)
56 "DK", // Denmark
57 "DJ", // Djibouti
58 "DM", // Dominica
59 "DO", // Dominican Republic
60 "EC", // Ecuador
61 "EG", // Egypt
62 "SV", // El Salvador
63 "GQ", // Equatorial Guinea
64 "EE", // Estonia
65 "SZ", // Eswatini
66 "FJ", // Fiji
67 "FI", // Finland
68 "FR", // France
69 "GA", // Gabon
70 "GM", // Gambia
71 "GE", // Georgia
72 "DE", // Germany
73 "GH", // Ghana
74 "GR", // Greece
75 "GD", // Grenada
76 "GT", // Guatemala
77 "GN", // Guinea
78 "GW", // Guinea-Bissau
79 "GY", // Guyana
80 "HT", // Haiti
81 "HN", // Honduras
82 "HU", // Hungary
83 "IS", // Iceland
84 "IN", // India
85 "ID", // Indonesia
86 "IQ", // Iraq
87 "IE", // Ireland
88 "IL", // Israel
89 "IT", // Italy
90 "JM", // Jamaica
91 "JP", // Japan
92 "JO", // Jordan
93 "KZ", // Kazakhstan
94 "KE", // Kenya
95 "KI", // Kiribati
96 "KW", // Kuwait
97 "KG", // Kyrgyzstan
98 "LA", // Laos
99 "LV", // Latvia
100 "LB", // Lebanon
101 "LS", // Lesotho
102 "LR", // Liberia
103 "LI", // Liechtenstein
104 "LT", // Lithuania
105 "LU", // Luxembourg
106 "MG", // Madagascar
107 "MW", // Malawi
108 "MY", // Malaysia
109 "MV", // Maldives
110 "MT", // Malta
111 "MH", // Marshall Islands
112 "MR", // Mauritania
113 "MU", // Mauritius
114 "MX", // Mexico
115 "FM", // Micronesia
116 "MD", // Moldova
117 "MC", // Monaco
118 "MN", // Mongolia
119 "ME", // Montenegro
120 "MA", // Morocco
121 "MZ", // Mozambique
122 "NA", // Namibia
123 "NR", // Nauru
124 "NP", // Nepal
125 "NL", // Netherlands
126 "NZ", // New Zealand
127 "NE", // Niger
128 "NG", // Nigeria
129 "MK", // North Macedonia
130 "NO", // Norway
131 "OM", // Oman
132 "PK", // Pakistan
133 "PW", // Palau
134 "PS", // Palestine
135 "PA", // Panama
136 "PG", // Papua New Guinea
137 "PY", // Paraguay
138 "PE", // Peru
139 "PH", // Philippines
140 "PL", // Poland
141 "PT", // Portugal
142 "QA", // Qatar
143 "RO", // Romania
144 "RW", // Rwanda
145 "KN", // Saint Kitts and Nevis
146 "LC", // Saint Lucia
147 "VC", // Saint Vincent and the Grenadines
148 "WS", // Samoa
149 "SM", // San Marino
150 "ST", // São Tomé and Príncipe
151 "SA", // Saudi Arabia
152 "SN", // Senegal
153 "RS", // Serbia
154 "SC", // Seychelles
155 "SL", // Sierra Leone
156 "SG", // Singapore
157 "SK", // Slovakia
158 "SI", // Slovenia
159 "SB", // Solomon Islands
160 "ZA", // South Africa
161 "KR", // South Korea
162 "ES", // Spain
163 "LK", // Sri Lanka
164 "SR", // Suriname
165 "SE", // Sweden
166 "CH", // Switzerland
167 "TW", // Taiwan
168 "TJ", // Tajikistan
169 "TZ", // Tanzania
170 "TH", // Thailand
171 "TL", // Timor-Leste
172 "TG", // Togo
173 "TO", // Tonga
174 "TT", // Trinidad and Tobago
175 "TN", // Tunisia
176 "TR", // Türkiye (Turkey)
177 "TM", // Turkmenistan
178 "TV", // Tuvalu
179 "UG", // Uganda
180 "UA", // Ukraine (except Crimea, Donetsk, and Luhansk regions)
181 "AE", // United Arab Emirates
182 "GB", // United Kingdom
183 "US", // United States of America
184 "UY", // Uruguay
185 "UZ", // Uzbekistan
186 "VU", // Vanuatu
187 "VA", // Vatican City
188 "VN", // Vietnam
189 "ZM", // Zambia
190 "ZW", // Zimbabwe
191 ]
192 .into_iter()
193 .collect()
194});