twapi_v2/responses/
context_annotations.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq)]
4pub struct ContextAnnotations {
5 #[serde(skip_serializing_if = "Option::is_none")]
6 pub domain: Option<Domain>,
7 #[serde(skip_serializing_if = "Option::is_none")]
8 pub entity: Option<Entity>,
9 #[serde(flatten)]
10 pub extra: std::collections::HashMap<String, serde_json::Value>,
11}
12
13impl ContextAnnotations {
14 pub fn is_empty_extra(&self) -> bool {
15 let res = self.extra.is_empty()
16 && self
17 .domain
18 .as_ref()
19 .map(|it| it.is_empty_extra())
20 .unwrap_or(true)
21 && self
22 .entity
23 .as_ref()
24 .map(|it| it.is_empty_extra())
25 .unwrap_or(true);
26 if !res {
27 println!("ContextAnnotations {:?}", self.extra);
28 }
29 res
30 }
31}
32
33#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq)]
34pub struct Domain {
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub id: Option<String>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub name: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub description: Option<String>,
41 #[serde(flatten)]
42 pub extra: std::collections::HashMap<String, serde_json::Value>,
43}
44
45impl Domain {
46 pub fn is_empty_extra(&self) -> bool {
47 let res = self.extra.is_empty();
48 if !res {
49 println!("Domain {:?}", self.extra);
50 }
51 res
52 }
53}
54
55#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq)]
56pub struct Entity {
57 #[serde(skip_serializing_if = "Option::is_none")]
58 pub id: Option<String>,
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub name: Option<String>,
61 #[serde(skip_serializing_if = "Option::is_none")]
62 pub description: Option<String>,
63 #[serde(flatten)]
64 pub extra: std::collections::HashMap<String, serde_json::Value>,
65}
66
67impl Entity {
68 pub fn is_empty_extra(&self) -> bool {
69 let res = self.extra.is_empty();
70 if !res {
71 println!("Entity {:?}", self.extra);
72 }
73 res
74 }
75}