twapi_v2/responses/
places.rs1use crate::responses::geo::Geo;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq)]
5pub struct Places {
6 pub full_name: String,
7 pub id: String,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub contained_within: Option<Vec<String>>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub country: Option<String>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub country_code: Option<String>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub geo: Option<Geo>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub name: Option<String>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub place_type: Option<String>,
20 #[serde(flatten)]
21 pub extra: std::collections::HashMap<String, serde_json::Value>,
22}
23
24impl Places {
25 pub fn is_empty_extra(&self) -> bool {
26 let res = self.extra.is_empty()
27 && self
28 .geo
29 .as_ref()
30 .map(|it| it.is_empty_extra())
31 .unwrap_or(true);
32 if !res {
33 println!("Places {:?}", self.extra);
34 }
35 res
36 }
37}