google-place-api 0.2.0

Rust fetch Google Places API, support both cli and crate
Documentation
use crate::models::LatLng;
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct AddressComponent {
    pub long_name: String,
    pub short_name: String,
    pub types: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Bounds {
    pub northeast: LatLng,
    pub southwest: LatLng,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Geometry {
    pub location: LatLng,
    pub viewport: Bounds,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct PlaceOpeningHoursPeriodDetail {
    pub day: u8,
    pub time: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct PlaceOpeningHoursPeriod {
    pub close: PlaceOpeningHoursPeriodDetail,
    pub open: PlaceOpeningHoursPeriodDetail,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct PlaceOpeningHours {
    pub open_now: Option<bool>,
    pub periods: Option<Vec<PlaceOpeningHoursPeriod>>,
    pub weekday_text: Option<Vec<String>>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct PlacePhoto {
    pub height: u32,
    pub width: u32,
    pub photo_reference: String,
    pub html_attributions: Vec<String>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct PlusCode {
    pub global_code: String,
    pub compound_code: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct PlaceReview {
    pub author_name: String,
    pub rating: u8,
    pub relative_time_description: String,
    pub time: u32,
    pub author_url: Option<String>,
    pub language: Option<String>,
    pub profile_photo_url: Option<String>,
    pub text: Option<String>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Place {
    pub address_components: Option<AddressComponent>,
    pub adr_address: Option<String>,
    pub business_status: Option<String>,
    pub formatted_address: Option<String>,
    pub formatted_phone_number: Option<String>,
    pub geometry: Option<Geometry>,
    pub icon: Option<String>,
    pub icon_background_color: Option<String>,
    pub icon_mask_base_uri: Option<String>,
    pub international_phone_number: Option<String>,
    pub name: Option<String>,
    pub opening_hours: Option<PlaceOpeningHours>,
    pub photos: Option<Vec<PlacePhoto>>,
    pub place_id: Option<String>,
    pub plus_code: Option<PlusCode>,
    pub price_level: Option<u8>,
    pub rating: Option<f32>,
    pub reviews: Option<Vec<PlaceReview>>,
    pub types: Option<Vec<String>>,
    pub url: Option<String>,
    pub user_ratings_total: Option<u32>,
    pub utc_offset: Option<i16>,
    pub vicinity: Option<String>,
    pub website: Option<String>,
}