charming_fork_zephyr/element/
minor_tick.rs

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