charming_fork_zephyr/series/
treemap.rs1use serde::Serialize;
2
3use crate::{
4 datatype::CompositeValue,
5 element::{Emphasis, ItemStyle, Label},
6};
7
8#[derive(Serialize)]
9#[serde(rename_all = "camelCase")]
10pub struct Treemap {
11 #[serde(rename = "type")]
12 type_: String,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
15 id: Option<String>,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
18 name: Option<String>,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
21 zlevel: Option<i64>,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
24 z: Option<i64>,
25
26 #[serde(skip_serializing_if = "Option::is_none")]
27 left: Option<CompositeValue>,
28
29 #[serde(skip_serializing_if = "Option::is_none")]
30 top: Option<CompositeValue>,
31
32 #[serde(skip_serializing_if = "Option::is_none")]
33 right: Option<CompositeValue>,
34
35 #[serde(skip_serializing_if = "Option::is_none")]
36 bottom: Option<CompositeValue>,
37
38 #[serde(skip_serializing_if = "Option::is_none")]
39 width: Option<CompositeValue>,
40
41 #[serde(skip_serializing_if = "Option::is_none")]
42 height: Option<CompositeValue>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
45 label: Option<Label>,
46
47 #[serde(skip_serializing_if = "Option::is_none")]
48 item_style: Option<ItemStyle>,
49
50 #[serde(skip_serializing_if = "Option::is_none")]
51 emphasis: Option<Emphasis>,
52}
53
54impl Treemap {
55 pub fn new() -> Self {
56 Treemap {
57 type_: "treemap".to_string(),
58 id: None,
59 name: None,
60 zlevel: None,
61 z: None,
62 left: None,
63 top: None,
64 right: None,
65 bottom: None,
66 width: None,
67 height: None,
68 label: None,
69 item_style: None,
70 emphasis: None,
71 }
72 }
73
74 pub fn id<S: Into<String>>(mut self, id: S) -> Self {
75 self.id = Some(id.into());
76 self
77 }
78
79 pub fn name<S: Into<String>>(mut self, name: S) -> Self {
80 self.name = Some(name.into());
81 self
82 }
83
84 pub fn zlevel<F: Into<i64>>(mut self, zlevel: F) -> Self {
85 self.zlevel = Some(zlevel.into());
86 self
87 }
88
89 pub fn z<F: Into<i64>>(mut self, z: F) -> Self {
90 self.z = Some(z.into());
91 self
92 }
93
94 pub fn left<C: Into<CompositeValue>>(mut self, left: C) -> Self {
95 self.left = Some(left.into());
96 self
97 }
98
99 pub fn top<C: Into<CompositeValue>>(mut self, top: C) -> Self {
100 self.top = Some(top.into());
101 self
102 }
103
104 pub fn right<C: Into<CompositeValue>>(mut self, right: C) -> Self {
105 self.right = Some(right.into());
106 self
107 }
108
109 pub fn bottom<C: Into<CompositeValue>>(mut self, bottom: C) -> Self {
110 self.bottom = Some(bottom.into());
111 self
112 }
113
114 pub fn width<C: Into<CompositeValue>>(mut self, width: C) -> Self {
115 self.width = Some(width.into());
116 self
117 }
118
119 pub fn height<C: Into<CompositeValue>>(mut self, height: C) -> Self {
120 self.height = Some(height.into());
121 self
122 }
123
124 pub fn label<L: Into<Label>>(mut self, label: L) -> Self {
125 self.label = Some(label.into());
126 self
127 }
128
129 pub fn item_style<I: Into<ItemStyle>>(mut self, item_style: I) -> Self {
130 self.item_style = Some(item_style.into());
131 self
132 }
133
134 pub fn emphasis<E: Into<Emphasis>>(mut self, emphasis: E) -> Self {
135 self.emphasis = Some(emphasis.into());
136 self
137 }
138}