use serde::Deserialize;
#[derive(Debug, Clone, Copy, Deserialize)]
pub struct LatLng {
pub lat: f64,
pub lng: f64,
}
#[derive(Debug, Clone, Copy, Deserialize)]
pub struct Bounds {
pub northeast: LatLng,
pub southwest: LatLng,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Geometry {
pub bounds: Option<Bounds>,
pub location: LatLng,
#[serde(rename = "location_type")]
pub location_type: String,
pub viewport: Bounds,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Address {
#[serde(rename = "long_name")]
pub long_name: String,
#[serde(rename = "short_name")]
pub short_name: String,
pub types: Vec<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Result {
#[serde(rename = "address_components")]
pub address_components: Vec<Address>,
#[serde(rename = "formatted_address")]
pub formatted_address: String,
pub geometry: Geometry,
#[serde(rename = "place_id")]
pub place_id: String,
pub types: Vec<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct GeocodeResponse {
pub results: Vec<Result>,
pub status: String,
#[serde(rename = "error_message")]
pub error_message: Option<String>,
}