geocodio 0.1.1

A client wrapper for the Geocodio API
Documentation
use serde::{Deserialize, Serialize};

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct StateLegislativeDistricts {
    house: Vec<StateLegislativeDistrict>,
    senate: Vec<StateLegislativeDistrict>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct StateLegislativeDistrict {
    name: String,
    district_number: String,
    is_upcoming_state_legislative_district: bool,
    proportion: i16,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CongressionalDistrict {
    pub name: String,
    pub district_number: i16,
    pub congress_number: String,
    pub congress_years: String,
    pub proportion: i16,
    pub current_legislators: Option<Vec<Legislator>>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Legislator {
    #[serde(rename = "type")]
    pub type_field: String,
    pub bio: Bio,
    pub contact: Contact,
    pub social: CongressionalSocial,
    pub references: References,
    pub source: String,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Bio {
    pub first_name: Option<String>,
    pub last_name: Option<String>,
    pub birthday: Option<String>,
    pub gender: Option<String>,
    pub party: Option<String>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Contact {
    pub url: Option<String>,
    pub address: Option<String>,
    pub phone: Option<String>,
    pub contact_form: Option<String>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CongressionalSocial {
    pub rss_url: Option<String>,
    pub twitter: Option<String>,
    pub facebook: Option<String>,
    pub youtube: Option<String>,
    pub youtube_id: Option<String>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct References {
    pub bioguide_id: Option<String>,
    pub thomas_id: Option<String>,
    pub govtrack_id: Option<String>,
    pub opensecrets_id: Option<String>,
    pub votesmart_id: Option<String>,
    pub lis_id: Option<String>,
    pub cspan_id: Option<String>,
    pub icpsr_id: Option<String>,
    pub wikipedia_id: Option<String>,
    pub washington_post_id: Option<String>,
}