abstractapi 0.1.3

Rust API bindings for the Abstract HTTP API
Documentation
#![allow(missing_docs)]

use serde::{Deserialize, Serialize};

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Geolocation {
    #[serde(rename = "ip_address")]
    pub ip_address: String,
    pub city: Option<String>,
    #[serde(rename = "city_geoname_id")]
    pub city_geoname_id: Option<i64>,
    pub region: Option<String>,
    #[serde(rename = "region_iso_code")]
    pub region_iso_code: Option<String>,
    #[serde(rename = "region_geoname_id")]
    pub region_geoname_id: Option<i64>,
    #[serde(rename = "postal_code")]
    pub postal_code: Option<String>,
    pub country: String,
    #[serde(rename = "country_code")]
    pub country_code: String,
    #[serde(rename = "country_geoname_id")]
    pub country_geoname_id: i64,
    #[serde(rename = "country_is_eu")]
    pub country_is_eu: bool,
    pub continent: String,
    #[serde(rename = "continent_code")]
    pub continent_code: String,
    #[serde(rename = "continent_geoname_id")]
    pub continent_geoname_id: i64,
    pub longitude: f64,
    pub latitude: f64,
    pub security: Security,
    pub timezone: Timezone,
    pub flag: Option<Flag>,
    pub currency: Option<Currency>,
    pub connection: Connection,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Security {
    #[serde(rename = "is_vpn")]
    pub is_vpn: bool,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Timezone {
    pub name: String,
    pub abbreviation: String,
    #[serde(rename = "gmt_offset")]
    pub gmt_offset: i64,
    #[serde(rename = "current_time")]
    pub current_time: String,
    #[serde(rename = "is_dst")]
    pub is_dst: bool,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Flag {
    pub emoji: String,
    pub unicode: String,
    pub png: String,
    pub svg: String,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Currency {
    #[serde(rename = "currency_name")]
    pub currency_name: String,
    #[serde(rename = "currency_code")]
    pub currency_code: String,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Connection {
    #[serde(rename = "autonomous_system_number")]
    pub autonomous_system_number: i64,
    #[serde(rename = "autonomous_system_organization")]
    pub autonomous_system_organization: String,
    #[serde(rename = "connection_type")]
    pub connection_type: String,
    #[serde(rename = "isp_name")]
    pub isp_name: String,
    #[serde(rename = "organization_name")]
    pub organization_name: Option<String>,
}