ripestat-common 0.0.5

Common structs/enums for the RIPEstat API
Documentation
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct MaxmindGeoLiteRequest {
    pub resource: String,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MaxmindGeoLiteResponse {
    pub located_resources: Vec<LocatedResource>,
    pub unknown_percentage: UnknownPercentage,
    pub result_time: String,
    pub latest_time: String,
    pub earliest_time: String,
    pub parameters: MaxmindGeoLiteParameters,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LocatedResource {
    pub resource: String,
    pub locations: Vec<Location>,
    pub unknown_percentage: f64,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Location {
    pub country: String,
    pub city: String,
    pub resources: Vec<String>,
    pub latitude: f64,
    pub longitude: f64,
    pub covered_percentage: f64,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct UnknownPercentage {
    pub v4: f64,
    pub v6: f64,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MaxmindGeoLiteParameters {
    pub resource: String,
    pub resolution: String,
    pub cache: Option<bool>,
}