1use serde::Serialize;
2#[derive(Debug, Serialize)]
3pub struct CityInfo<'a> {
4 pub country_name: &'a str,
5 pub region_name: &'a str,
6 pub city_name: &'a str,
7 pub owner_domain: &'a str,
8 pub isp_domain: &'a str,
9 pub latitude: &'a str,
10 pub longitude: &'a str,
11 pub timezone: &'a str,
12 pub utcoffset: &'a str,
13 pub china_admin_code: &'a str,
14 pub idd_code: &'a str,
15 pub country_code: &'a str,
16 pub continent_code: &'a str,
17}
18
19impl<'a> From<Vec<&'a str>> for CityInfo<'a> {
20 fn from(buff: Vec<&'a str>) -> Self {
21 CityInfo {
22 country_name: if buff.len() > 0 { buff[0] } else { "" },
23 region_name: if buff.len() > 1 { buff[1] } else { "" },
24 city_name: if buff.len() > 2 { buff[2] } else { "" },
25 owner_domain: if buff.len() > 3 { buff[3] } else { "" },
26 isp_domain: if buff.len() > 4 { buff[4] } else { "" },
27 latitude: if buff.len() > 5 { buff[5] } else { "" },
28 longitude: if buff.len() > 6 { buff[6] } else { "" },
29 timezone: if buff.len() > 7 { buff[7] } else { "" },
30 utcoffset: if buff.len() > 8 { buff[8] } else { "" },
31 china_admin_code: if buff.len() > 9 { buff[9] } else { "" },
32 idd_code: if buff.len() > 10 { buff[10] } else { "" },
33 country_code: if buff.len() > 11 { buff[11] } else { "" },
34 continent_code: if buff.len() > 12 { buff[12] } else { "" },
35 }
36 }
37}