Skip to main content

twapi_v2/responses/
context_annotations.rs

1use 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}