ripestat_common/resources/
maxmind_geo_lite.rs1use 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}