1#[doc(alias = "meter")]
5#[non_exhaustive]
6#[derive(Debug, Clone, PartialEq, Default)]
7pub struct Meter {
8 pub data_map: crate::DataMap,
9 global_attrs: crate::GlobalAttributes,
10 pub value: std::option::Option<f64>,
12 pub min: std::option::Option<f64>,
14 pub max: std::option::Option<f64>,
16 pub low: std::option::Option<f64>,
18 pub high: std::option::Option<f64>,
20 pub optimum: std::option::Option<f64>,
22 pub role: std::option::Option<std::borrow::Cow<'static, str>>,
24 pub aria_atomic: bool,
26 pub aria_braille_label: std::option::Option<std::borrow::Cow<'static, str>>,
28 pub aria_braille_role_description: std::option::Option<
30 std::borrow::Cow<'static, str>,
31 >,
32 pub aria_busy: bool,
34 pub aria_controls_elements: std::option::Option<std::borrow::Cow<'static, str>>,
36 pub aria_current: std::option::Option<std::borrow::Cow<'static, str>>,
38 pub aria_described_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
40 pub aria_description: std::option::Option<std::borrow::Cow<'static, str>>,
42 pub aria_details_elements: std::option::Option<std::borrow::Cow<'static, str>>,
44 pub aria_disabled: bool,
46 pub aria_drop_effect: std::option::Option<std::borrow::Cow<'static, str>>,
48 pub aria_error_message_elements: std::option::Option<std::borrow::Cow<'static, str>>,
50 pub aria_flow_to_elements: std::option::Option<std::borrow::Cow<'static, str>>,
52 pub aria_grabbed: bool,
54 pub aria_has_popup: std::option::Option<std::borrow::Cow<'static, str>>,
56 pub aria_hidden: bool,
58 pub aria_invalid: std::option::Option<std::borrow::Cow<'static, str>>,
60 pub aria_key_shortcuts: std::option::Option<std::borrow::Cow<'static, str>>,
62 pub aria_label: std::option::Option<std::borrow::Cow<'static, str>>,
64 pub aria_labelled_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
66 pub aria_live: std::option::Option<std::borrow::Cow<'static, str>>,
68 pub aria_owns_elements: std::option::Option<std::borrow::Cow<'static, str>>,
70 pub aria_relevant: std::option::Option<std::borrow::Cow<'static, str>>,
72 pub aria_role_description: std::option::Option<std::borrow::Cow<'static, str>>,
74 pub aria_value_max: std::option::Option<f64>,
76 pub aria_value_min: std::option::Option<f64>,
78 pub aria_value_text: std::option::Option<std::borrow::Cow<'static, str>>,
80}
81impl crate::RenderElement for Meter {
82 fn write_opening_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
83 write!(writer, "<meter")?;
84 if let Some(field) = self.value.as_ref() {
85 write!(writer, r#" value="{field}""#)?;
86 }
87 if let Some(field) = self.min.as_ref() {
88 write!(writer, r#" min="{field}""#)?;
89 }
90 if let Some(field) = self.max.as_ref() {
91 write!(writer, r#" max="{field}""#)?;
92 }
93 if let Some(field) = self.low.as_ref() {
94 write!(writer, r#" low="{field}""#)?;
95 }
96 if let Some(field) = self.high.as_ref() {
97 write!(writer, r#" high="{field}""#)?;
98 }
99 if let Some(field) = self.optimum.as_ref() {
100 write!(writer, r#" optimum="{field}""#)?;
101 }
102 if let Some(field) = self.role.as_ref() {
103 write!(writer, r#" role="{field}""#)?;
104 }
105 if self.aria_atomic {
106 write!(writer, r#" aria-atomic"#)?;
107 }
108 if let Some(field) = self.aria_braille_label.as_ref() {
109 write!(writer, r#" aria-braillelabel="{field}""#)?;
110 }
111 if let Some(field) = self.aria_braille_role_description.as_ref() {
112 write!(writer, r#" aria-brailleroledescription="{field}""#)?;
113 }
114 if self.aria_busy {
115 write!(writer, r#" aria-busy"#)?;
116 }
117 if let Some(field) = self.aria_controls_elements.as_ref() {
118 write!(writer, r#" aria-controls="{field}""#)?;
119 }
120 if let Some(field) = self.aria_current.as_ref() {
121 write!(writer, r#" aria-current="{field}""#)?;
122 }
123 if let Some(field) = self.aria_described_by_elements.as_ref() {
124 write!(writer, r#" aria-describedby="{field}""#)?;
125 }
126 if let Some(field) = self.aria_description.as_ref() {
127 write!(writer, r#" aria-description="{field}""#)?;
128 }
129 if let Some(field) = self.aria_details_elements.as_ref() {
130 write!(writer, r#" aria-details="{field}""#)?;
131 }
132 if self.aria_disabled {
133 write!(writer, r#" aria-disabled"#)?;
134 }
135 if let Some(field) = self.aria_drop_effect.as_ref() {
136 write!(writer, r#" aria-dropeffect="{field}""#)?;
137 }
138 if let Some(field) = self.aria_error_message_elements.as_ref() {
139 write!(writer, r#" aria-errormessage="{field}""#)?;
140 }
141 if let Some(field) = self.aria_flow_to_elements.as_ref() {
142 write!(writer, r#" aria-flowto="{field}""#)?;
143 }
144 if self.aria_grabbed {
145 write!(writer, r#" aria-grabbed"#)?;
146 }
147 if let Some(field) = self.aria_has_popup.as_ref() {
148 write!(writer, r#" aria-haspopup="{field}""#)?;
149 }
150 if self.aria_hidden {
151 write!(writer, r#" aria-hidden"#)?;
152 }
153 if let Some(field) = self.aria_invalid.as_ref() {
154 write!(writer, r#" aria-invalid="{field}""#)?;
155 }
156 if let Some(field) = self.aria_key_shortcuts.as_ref() {
157 write!(writer, r#" aria-keyshortcuts="{field}""#)?;
158 }
159 if let Some(field) = self.aria_label.as_ref() {
160 write!(writer, r#" aria-label="{field}""#)?;
161 }
162 if let Some(field) = self.aria_labelled_by_elements.as_ref() {
163 write!(writer, r#" aria-labelledby="{field}""#)?;
164 }
165 if let Some(field) = self.aria_live.as_ref() {
166 write!(writer, r#" aria-live="{field}""#)?;
167 }
168 if let Some(field) = self.aria_owns_elements.as_ref() {
169 write!(writer, r#" aria-owns="{field}""#)?;
170 }
171 if let Some(field) = self.aria_relevant.as_ref() {
172 write!(writer, r#" aria-relevant="{field}""#)?;
173 }
174 if let Some(field) = self.aria_role_description.as_ref() {
175 write!(writer, r#" aria-roledescription="{field}""#)?;
176 }
177 if let Some(field) = self.aria_value_max.as_ref() {
178 write!(writer, r#" aria-valuemax="{field}""#)?;
179 }
180 if let Some(field) = self.aria_value_min.as_ref() {
181 write!(writer, r#" aria-valuemin="{field}""#)?;
182 }
183 if let Some(field) = self.aria_value_text.as_ref() {
184 write!(writer, r#" aria-valuetext="{field}""#)?;
185 }
186 write!(writer, "{}", self.global_attrs)?;
187 write!(writer, "{}", self.data_map)?;
188 write!(writer, ">")?;
189 Ok(())
190 }
191 #[allow(unused_variables)]
192 fn write_closing_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
193 write!(writer, "</meter>")?;
194 Ok(())
195 }
196}
197impl std::fmt::Display for Meter {
198 fn fmt(&self, writer: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
199 use crate::RenderElement;
200 self.write_opening_tag(writer)?;
201 self.write_closing_tag(writer)?;
202 Ok(())
203 }
204}
205impl std::ops::Deref for Meter {
206 type Target = crate::GlobalAttributes;
207 fn deref(&self) -> &Self::Target {
208 &self.global_attrs
209 }
210}
211impl std::ops::DerefMut for Meter {
212 fn deref_mut(&mut self) -> &mut Self::Target {
213 &mut self.global_attrs
214 }
215}