charming_fork_zephyr/element/
select.rs

1use 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}