charming_fork_zephyr/element/
select.rs1use serde::Serialize;
2
3use super::{item_style::ItemStyle, label::Label};
4
5#[derive(Serialize)]
6#[serde(rename_all = "camelCase")]
7pub struct Select {
8 #[serde(skip_serializing_if = "Option::is_none")]
9 disabled: Option<bool>,
10
11 #[serde(skip_serializing_if = "Option::is_none")]
12 label: Option<Label>,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
15 item_style: Option<ItemStyle>,
16}
17
18impl Select {
19 pub fn new() -> Self {
20 Self {
21 disabled: None,
22 label: None,
23 item_style: None,
24 }
25 }
26
27 pub fn disabled(mut self, disabled: bool) -> Self {
28 self.disabled = Some(disabled);
29 self
30 }
31
32 pub fn label<L: Into<Label>>(mut self, label: L) -> Self {
33 self.label = Some(label.into());
34 self
35 }
36
37 pub fn item_style<S: Into<ItemStyle>>(mut self, item_style: S) -> Self {
38 self.item_style = Some(item_style.into());
39 self
40 }
41}