use serde::Serialize;
#[derive(Default, Serialize)]
pub struct PlacesRequest {
placeid: Option<Vec<String>>,
query: Option<String>,
qlimit: Option<u8>,
lang: Option<String>,
geo: Option<u8>,
}
impl PlacesRequest {
pub fn new() -> Self {
Default::default()
}
pub fn with_placeid(mut self, placeid: impl Into<String>) -> Self {
if let Some(ref mut placeids) = self.placeid {
placeids.push(placeid.into());
} else {
self.placeid.insert(vec![placeid.into()]);
}
self
}
pub fn set_query(mut self, query: impl Into<String>) -> Self {
self.query.insert(query.into());
self
}
pub fn set_qlimit(mut self, qlimit: u8) -> Self {
self.qlimit.insert(qlimit);
self
}
pub fn set_lang(mut self, lang: impl Into<String>) -> Self {
self.lang.insert(lang.into());
self
}
pub fn set_geo(mut self, enable: bool) -> Self {
self.geo.insert(enable.into());
self
}
}