country_code/iso3166_2/
us.rs1use crate::iso3166_1::alpha_2::CountryCode;
4
5country_subdivision_code! {
7 CountryCode, CountryCode::US;
8
9 #[derive(Debug, Clone)]
10 pub enum CountrySubdivisionCode {
11 AL,
12 AK,
13 AZ,
14 AR,
15 CA,
16 CO,
17 CT,
18 DE,
19 FL,
20 GA,
21 HI,
22 ID,
23 IL,
24 IN,
25 IA,
26 KS,
27 KY,
28 LA,
29 ME,
30 MD,
31 MA,
32 MI,
33 MN,
34 MS,
35 MO,
36 MT,
37 NE,
38 NV,
39 NH,
40 NJ,
41 NM,
42 NY,
43 NC,
44 ND,
45 OH,
46 OK,
47 OR,
48 PA,
49 RI,
50 SC,
51 SD,
52 TN,
53 TX,
54 UT,
55 VT,
56 VA,
57 WA,
58 WV,
59 WI,
60 WY,
61 DC,
62 AS,
63 GU,
64 MP,
65 PR,
66 UM,
67 VI,
68 }
69}
70
71#[cfg(test)]
72mod tests {
73 use super::*;
74
75 use alloc::string::ToString as _;
76
77 use csv::Reader;
78
79 #[test]
80 fn test_country_subdivision_code() {
81 let mut rdr = Reader::from_reader(include_str!("../../tests/ISO_3166-2/US.csv").as_bytes());
83
84 let mut n = 0;
85 for record in rdr.records() {
86 let record = record.unwrap();
87 let code = &record[0];
88 assert_eq!(
89 code.parse::<CountrySubdivisionCode>().unwrap().to_string(),
90 code
91 );
92 n += 1;
93 }
94
95 assert_eq!(CountrySubdivisionCode::COUNTRY_CODE, CountryCode::US);
96
97 assert_eq!(CountrySubdivisionCode::VARS.len(), n);
98 }
99}