charming_fork_zephyr/component/
polar_coordinate.rs

1use serde::Serialize;
2
3use crate::datatype::CompositeValue;
4
5/// Polar coordinate can be used in scatter and line chart.
6#[derive(Serialize)]
7#[serde(rename_all = "camelCase")]
8pub struct PolarCoordinate {
9    #[serde(skip_serializing_if = "Option::is_none")]
10    id: Option<String>,
11
12    /// The `zlevel` value of all graphical elements in.
13    #[serde(skip_serializing_if = "Option::is_none")]
14    zlevel: Option<i64>,
15
16    /// The `z` value of all graphical elements in.
17    #[serde(skip_serializing_if = "Option::is_none")]
18    z: Option<i64>,
19
20    #[serde(skip_serializing_if = "Option::is_none")]
21    center: Option<CompositeValue>,
22
23    #[serde(skip_serializing_if = "Option::is_none")]
24    radius: Option<CompositeValue>,
25}
26
27impl PolarCoordinate {
28    pub fn new() -> Self {
29        Self {
30            id: None,
31            zlevel: None,
32            z: None,
33            center: None,
34            radius: None,
35        }
36    }
37
38    pub fn id<S: Into<String>>(mut self, id: S) -> Self {
39        self.id = Some(id.into());
40        self
41    }
42
43    pub fn zlevel<F: Into<i64>>(mut self, zlevel: F) -> Self {
44        self.zlevel = Some(zlevel.into());
45        self
46    }
47
48    pub fn z<F: Into<i64>>(mut self, z: F) -> Self {
49        self.z = Some(z.into());
50        self
51    }
52
53    pub fn center<C: Into<CompositeValue>>(mut self, center: C) -> Self {
54        self.center = Some(center.into());
55        self
56    }
57
58    pub fn radius<C: Into<CompositeValue>>(mut self, radius: C) -> Self {
59        self.radius = Some(radius.into());
60        self
61    }
62}