1#[doc(alias = "label")]
5#[non_exhaustive]
6#[derive(Debug, Clone, PartialEq, Default)]
7pub struct Label {
8 pub data_map: crate::DataMap,
9 global_attrs: crate::GlobalAttributes,
10 pub for_: std::option::Option<std::borrow::Cow<'static, str>>,
12 pub aria_atomic: bool,
14 pub aria_braille_role_description: std::option::Option<
16 std::borrow::Cow<'static, str>,
17 >,
18 pub aria_busy: bool,
20 pub aria_controls_elements: std::option::Option<std::borrow::Cow<'static, str>>,
22 pub aria_current: std::option::Option<std::borrow::Cow<'static, str>>,
24 pub aria_described_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
26 pub aria_description: std::option::Option<std::borrow::Cow<'static, str>>,
28 pub aria_details_elements: std::option::Option<std::borrow::Cow<'static, str>>,
30 pub aria_disabled: bool,
32 pub aria_drop_effect: std::option::Option<std::borrow::Cow<'static, str>>,
34 pub aria_error_message_elements: std::option::Option<std::borrow::Cow<'static, str>>,
36 pub aria_flow_to_elements: std::option::Option<std::borrow::Cow<'static, str>>,
38 pub aria_grabbed: bool,
40 pub aria_has_popup: std::option::Option<std::borrow::Cow<'static, str>>,
42 pub aria_hidden: bool,
44 pub aria_invalid: std::option::Option<std::borrow::Cow<'static, str>>,
46 pub aria_key_shortcuts: std::option::Option<std::borrow::Cow<'static, str>>,
48 pub aria_live: std::option::Option<std::borrow::Cow<'static, str>>,
50 pub aria_owns_elements: std::option::Option<std::borrow::Cow<'static, str>>,
52 pub aria_relevant: std::option::Option<std::borrow::Cow<'static, str>>,
54 pub aria_role_description: std::option::Option<std::borrow::Cow<'static, str>>,
56}
57impl crate::RenderElement for Label {
58 fn write_opening_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
59 write!(writer, "<label")?;
60 if let Some(field) = self.for_.as_ref() {
61 write!(writer, r#" for="{field}""#)?;
62 }
63 if self.aria_atomic {
64 write!(writer, r#" aria-atomic"#)?;
65 }
66 if let Some(field) = self.aria_braille_role_description.as_ref() {
67 write!(writer, r#" aria-brailleroledescription="{field}""#)?;
68 }
69 if self.aria_busy {
70 write!(writer, r#" aria-busy"#)?;
71 }
72 if let Some(field) = self.aria_controls_elements.as_ref() {
73 write!(writer, r#" aria-controls="{field}""#)?;
74 }
75 if let Some(field) = self.aria_current.as_ref() {
76 write!(writer, r#" aria-current="{field}""#)?;
77 }
78 if let Some(field) = self.aria_described_by_elements.as_ref() {
79 write!(writer, r#" aria-describedby="{field}""#)?;
80 }
81 if let Some(field) = self.aria_description.as_ref() {
82 write!(writer, r#" aria-description="{field}""#)?;
83 }
84 if let Some(field) = self.aria_details_elements.as_ref() {
85 write!(writer, r#" aria-details="{field}""#)?;
86 }
87 if self.aria_disabled {
88 write!(writer, r#" aria-disabled"#)?;
89 }
90 if let Some(field) = self.aria_drop_effect.as_ref() {
91 write!(writer, r#" aria-dropeffect="{field}""#)?;
92 }
93 if let Some(field) = self.aria_error_message_elements.as_ref() {
94 write!(writer, r#" aria-errormessage="{field}""#)?;
95 }
96 if let Some(field) = self.aria_flow_to_elements.as_ref() {
97 write!(writer, r#" aria-flowto="{field}""#)?;
98 }
99 if self.aria_grabbed {
100 write!(writer, r#" aria-grabbed"#)?;
101 }
102 if let Some(field) = self.aria_has_popup.as_ref() {
103 write!(writer, r#" aria-haspopup="{field}""#)?;
104 }
105 if self.aria_hidden {
106 write!(writer, r#" aria-hidden"#)?;
107 }
108 if let Some(field) = self.aria_invalid.as_ref() {
109 write!(writer, r#" aria-invalid="{field}""#)?;
110 }
111 if let Some(field) = self.aria_key_shortcuts.as_ref() {
112 write!(writer, r#" aria-keyshortcuts="{field}""#)?;
113 }
114 if let Some(field) = self.aria_live.as_ref() {
115 write!(writer, r#" aria-live="{field}""#)?;
116 }
117 if let Some(field) = self.aria_owns_elements.as_ref() {
118 write!(writer, r#" aria-owns="{field}""#)?;
119 }
120 if let Some(field) = self.aria_relevant.as_ref() {
121 write!(writer, r#" aria-relevant="{field}""#)?;
122 }
123 if let Some(field) = self.aria_role_description.as_ref() {
124 write!(writer, r#" aria-roledescription="{field}""#)?;
125 }
126 write!(writer, "{}", self.global_attrs)?;
127 write!(writer, "{}", self.data_map)?;
128 write!(writer, ">")?;
129 Ok(())
130 }
131 #[allow(unused_variables)]
132 fn write_closing_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
133 write!(writer, "</label>")?;
134 Ok(())
135 }
136}
137impl std::fmt::Display for Label {
138 fn fmt(&self, writer: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
139 use crate::RenderElement;
140 self.write_opening_tag(writer)?;
141 self.write_closing_tag(writer)?;
142 Ok(())
143 }
144}
145impl std::ops::Deref for Label {
146 type Target = crate::GlobalAttributes;
147 fn deref(&self) -> &Self::Target {
148 &self.global_attrs
149 }
150}
151impl std::ops::DerefMut for Label {
152 fn deref_mut(&mut self) -> &mut Self::Target {
153 &mut self.global_attrs
154 }
155}