Skip to main content

ripestat_common/resources/
maxmind_geo_lite.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct MaxmindGeoLiteRequest {
5    pub resource: String,
6}
7
8#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
9pub struct MaxmindGeoLiteResponse {
10    pub located_resources: Vec<LocatedResource>,
11    pub unknown_percentage: UnknownPercentage,
12    pub result_time: String,
13    pub latest_time: String,
14    pub earliest_time: String,
15    pub parameters: MaxmindGeoLiteParameters,
16}
17
18#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
19pub struct LocatedResource {
20    pub resource: String,
21    pub locations: Vec<Location>,
22    pub unknown_percentage: f64,
23}
24
25#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
26pub struct Location {
27    pub country: String,
28    pub city: String,
29    pub resources: Vec<String>,
30    pub latitude: f64,
31    pub longitude: f64,
32    pub covered_percentage: f64,
33}
34
35#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
36pub struct UnknownPercentage {
37    pub v4: f64,
38    pub v6: f64,
39}
40
41#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
42pub struct MaxmindGeoLiteParameters {
43    pub resource: String,
44    pub resolution: String,
45    pub cache: Option<bool>,
46}