ipdb/
city.rs

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}