charming_fork_zephyr/element/
split_line.rs1use serde::Serialize;
2
3use super::line_style::LineStyle;
4
5#[derive(Serialize)]
6#[serde(rename_all = "camelCase")]
7pub struct SplitLine {
8 #[serde(skip_serializing_if = "Option::is_none")]
9 show: Option<bool>,
10
11 #[serde(skip_serializing_if = "Option::is_none")]
12 distance: Option<i64>,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
15 line_style: Option<LineStyle>,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
18 length: Option<i64>,
19}
20
21impl SplitLine {
22 pub fn new() -> Self {
23 Self {
24 show: None,
25 distance: None,
26 line_style: None,
27 length: None,
28 }
29 }
30
31 pub fn show(mut self, show: bool) -> Self {
32 self.show = Some(show);
33 self
34 }
35
36 pub fn distance<F: Into<i64>>(mut self, distance: F) -> Self {
37 self.distance = Some(distance.into());
38 self
39 }
40
41 pub fn line_style<S: Into<LineStyle>>(mut self, line_style: S) -> Self {
42 self.line_style = Some(line_style.into());
43 self
44 }
45
46 pub fn length<F: Into<i64>>(mut self, length: F) -> Self {
47 self.length = Some(length.into());
48 self
49 }
50}