spider_client/shapes/
country_codes.rs

1use serde::{Deserialize, Serialize};
2use strum::{Display, EnumIter, EnumString, IntoStaticStr};
3
4#[derive(
5    Debug,
6    Clone,
7    Copy,
8    Serialize,
9    Deserialize,
10    EnumString,
11    Display,
12    IntoStaticStr,
13    EnumIter,
14    PartialEq,
15    Eq,
16    Hash,
17)]
18#[strum(serialize_all = "UPPERCASE")]
19#[serde(rename_all = "UPPERCASE")]
20pub enum CountryCode {
21    AD,
22    AE,
23    AF,
24    AL,
25    AM,
26    AO,
27    AR,
28    AS,
29    AT,
30    AU,
31    AZ,
32    BA,
33    BD,
34    BE,
35    BF,
36    BG,
37    BH,
38    BI,
39    BJ,
40    BN,
41    BO,
42    BR,
43    BS,
44    BT,
45    BW,
46    BY,
47    BZ,
48    CA,
49    CD,
50    CF,
51    CG,
52    CH,
53    CI,
54    CL,
55    CM,
56    CN,
57    CO,
58    CR,
59    CU,
60    CV,
61    CY,
62    CZ,
63    DE,
64    DJ,
65    DK,
66    DM,
67    DO,
68    DZ,
69    EC,
70    EE,
71    EG,
72    EH,
73    ER,
74    ES,
75    ET,
76    FI,
77    FJ,
78    FM,
79    FR,
80    GA,
81    GB,
82    GD,
83    GE,
84    GH,
85    GM,
86    GN,
87    GQ,
88    GR,
89    GT,
90    GW,
91    GY,
92    HK,
93    HN,
94    HR,
95    HT,
96    HU,
97    ID,
98    IE,
99    IL,
100    IN,
101    IQ,
102    IR,
103    IS,
104    IT,
105    JM,
106    JO,
107    JP,
108    KE,
109    KG,
110    KH,
111    KI,
112    KM,
113    KN,
114    KR,
115    KW,
116    KZ,
117    LA,
118    LB,
119    LC,
120    LK,
121    LR,
122    LS,
123    LT,
124    LU,
125    LV,
126    LY,
127    MA,
128    MC,
129    MD,
130    ME,
131    MG,
132    MH,
133    MK,
134    ML,
135    MM,
136    MN,
137    MO,
138    MR,
139    MT,
140    MU,
141    MV,
142    MW,
143    MX,
144    MY,
145    MZ,
146    NA,
147    NE,
148    NG,
149    NI,
150    NL,
151    NO,
152    NP,
153    NR,
154    NU,
155    NZ,
156    OM,
157    PA,
158    PE,
159    PG,
160    PH,
161    PK,
162    PL,
163    PR,
164    PS,
165    PT,
166    PW,
167    PY,
168    QA,
169    RE,
170    RO,
171    RS,
172    RU,
173    RW,
174    SA,
175    SB,
176    SC,
177    SD,
178    SE,
179    SG,
180    SI,
181    SK,
182    SL,
183    SM,
184    SN,
185    SO,
186    SR,
187    SS,
188    ST,
189    SV,
190    SY,
191    SZ,
192    TD,
193    TG,
194    TH,
195    TJ,
196    TL,
197    TM,
198    TN,
199    TO,
200    TR,
201    TT,
202    TV,
203    TZ,
204    UA,
205    UG,
206    US,
207    UY,
208    UZ,
209    VC,
210    VE,
211    VN,
212    VU,
213    WS,
214    YE,
215    YT,
216    ZA,
217    ZM,
218    ZW,
219}
220
221#[test]
222fn test_country_code_serialization() {
223    let json = r#""US""#;
224    let code: CountryCode = serde_json::from_str(json).expect("Failed to deserialize");
225    assert_eq!(code, CountryCode::US);
226    assert_eq!(code.to_string().to_lowercase(), "us");
227}