1#[doc(alias = "table")]
5#[non_exhaustive]
6#[derive(Debug, Clone, PartialEq, Default)]
7pub struct Table {
8 pub data_map: crate::DataMap,
9 global_attrs: crate::GlobalAttributes,
10 pub role: std::option::Option<std::borrow::Cow<'static, str>>,
12 pub aria_active_descendant_element: std::option::Option<
14 std::borrow::Cow<'static, str>,
15 >,
16 pub aria_atomic: bool,
18 pub aria_auto_complete: std::option::Option<std::borrow::Cow<'static, str>>,
20 pub aria_braille_label: std::option::Option<std::borrow::Cow<'static, str>>,
22 pub aria_braille_role_description: std::option::Option<
24 std::borrow::Cow<'static, str>,
25 >,
26 pub aria_busy: bool,
28 pub aria_checked: std::option::Option<std::borrow::Cow<'static, str>>,
30 pub aria_col_count: std::option::Option<i64>,
32 pub aria_col_index: std::option::Option<i64>,
34 pub aria_col_index_text: std::option::Option<std::borrow::Cow<'static, str>>,
36 pub aria_col_span: std::option::Option<i64>,
38 pub aria_controls_elements: std::option::Option<std::borrow::Cow<'static, str>>,
40 pub aria_current: std::option::Option<std::borrow::Cow<'static, str>>,
42 pub aria_described_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
44 pub aria_description: std::option::Option<std::borrow::Cow<'static, str>>,
46 pub aria_details_elements: std::option::Option<std::borrow::Cow<'static, str>>,
48 pub aria_disabled: bool,
50 pub aria_drop_effect: std::option::Option<std::borrow::Cow<'static, str>>,
52 pub aria_error_message_elements: std::option::Option<std::borrow::Cow<'static, str>>,
54 pub aria_expanded: bool,
56 pub aria_flow_to_elements: std::option::Option<std::borrow::Cow<'static, str>>,
58 pub aria_grabbed: bool,
60 pub aria_has_popup: std::option::Option<std::borrow::Cow<'static, str>>,
62 pub aria_hidden: bool,
64 pub aria_invalid: std::option::Option<std::borrow::Cow<'static, str>>,
66 pub aria_key_shortcuts: std::option::Option<std::borrow::Cow<'static, str>>,
68 pub aria_label: std::option::Option<std::borrow::Cow<'static, str>>,
70 pub aria_labelled_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
72 pub aria_level: std::option::Option<i64>,
74 pub aria_live: std::option::Option<std::borrow::Cow<'static, str>>,
76 pub aria_modal: bool,
78 pub aria_multi_line: bool,
80 pub aria_multi_selectable: bool,
82 pub aria_orientation: std::option::Option<std::borrow::Cow<'static, str>>,
84 pub aria_owns_elements: std::option::Option<std::borrow::Cow<'static, str>>,
86 pub aria_placeholder: std::option::Option<std::borrow::Cow<'static, str>>,
88 pub aria_pos_in_set: std::option::Option<i64>,
90 pub aria_pressed: std::option::Option<std::borrow::Cow<'static, str>>,
92 pub aria_read_only: bool,
94 pub aria_relevant: std::option::Option<std::borrow::Cow<'static, str>>,
96 pub aria_required: bool,
98 pub aria_role_description: std::option::Option<std::borrow::Cow<'static, str>>,
100 pub aria_row_count: std::option::Option<i64>,
102 pub aria_row_index: std::option::Option<i64>,
104 pub aria_row_index_text: std::option::Option<std::borrow::Cow<'static, str>>,
106 pub aria_row_span: std::option::Option<i64>,
108 pub aria_selected: bool,
110 pub aria_set_size: std::option::Option<i64>,
112 pub aria_sort: std::option::Option<std::borrow::Cow<'static, str>>,
114 pub aria_value_max: std::option::Option<f64>,
116 pub aria_value_min: std::option::Option<f64>,
118 pub aria_value_now: std::option::Option<f64>,
120 pub aria_value_text: std::option::Option<std::borrow::Cow<'static, str>>,
122}
123impl crate::RenderElement for Table {
124 fn write_opening_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
125 write!(writer, "<table")?;
126 if let Some(field) = self.role.as_ref() {
127 write!(writer, r#" role="{field}""#)?;
128 }
129 if let Some(field) = self.aria_active_descendant_element.as_ref() {
130 write!(writer, r#" aria-activedescendant="{field}""#)?;
131 }
132 if self.aria_atomic {
133 write!(writer, r#" aria-atomic"#)?;
134 }
135 if let Some(field) = self.aria_auto_complete.as_ref() {
136 write!(writer, r#" aria-autocomplete="{field}""#)?;
137 }
138 if let Some(field) = self.aria_braille_label.as_ref() {
139 write!(writer, r#" aria-braillelabel="{field}""#)?;
140 }
141 if let Some(field) = self.aria_braille_role_description.as_ref() {
142 write!(writer, r#" aria-brailleroledescription="{field}""#)?;
143 }
144 if self.aria_busy {
145 write!(writer, r#" aria-busy"#)?;
146 }
147 if let Some(field) = self.aria_checked.as_ref() {
148 write!(writer, r#" aria-checked="{field}""#)?;
149 }
150 if let Some(field) = self.aria_col_count.as_ref() {
151 write!(writer, r#" aria-colcount="{field}""#)?;
152 }
153 if let Some(field) = self.aria_col_index.as_ref() {
154 write!(writer, r#" aria-colindex="{field}""#)?;
155 }
156 if let Some(field) = self.aria_col_index_text.as_ref() {
157 write!(writer, r#" aria-colindextext="{field}""#)?;
158 }
159 if let Some(field) = self.aria_col_span.as_ref() {
160 write!(writer, r#" aria-colspan="{field}""#)?;
161 }
162 if let Some(field) = self.aria_controls_elements.as_ref() {
163 write!(writer, r#" aria-controls="{field}""#)?;
164 }
165 if let Some(field) = self.aria_current.as_ref() {
166 write!(writer, r#" aria-current="{field}""#)?;
167 }
168 if let Some(field) = self.aria_described_by_elements.as_ref() {
169 write!(writer, r#" aria-describedby="{field}""#)?;
170 }
171 if let Some(field) = self.aria_description.as_ref() {
172 write!(writer, r#" aria-description="{field}""#)?;
173 }
174 if let Some(field) = self.aria_details_elements.as_ref() {
175 write!(writer, r#" aria-details="{field}""#)?;
176 }
177 if self.aria_disabled {
178 write!(writer, r#" aria-disabled"#)?;
179 }
180 if let Some(field) = self.aria_drop_effect.as_ref() {
181 write!(writer, r#" aria-dropeffect="{field}""#)?;
182 }
183 if let Some(field) = self.aria_error_message_elements.as_ref() {
184 write!(writer, r#" aria-errormessage="{field}""#)?;
185 }
186 if self.aria_expanded {
187 write!(writer, r#" aria-expanded"#)?;
188 }
189 if let Some(field) = self.aria_flow_to_elements.as_ref() {
190 write!(writer, r#" aria-flowto="{field}""#)?;
191 }
192 if self.aria_grabbed {
193 write!(writer, r#" aria-grabbed"#)?;
194 }
195 if let Some(field) = self.aria_has_popup.as_ref() {
196 write!(writer, r#" aria-haspopup="{field}""#)?;
197 }
198 if self.aria_hidden {
199 write!(writer, r#" aria-hidden"#)?;
200 }
201 if let Some(field) = self.aria_invalid.as_ref() {
202 write!(writer, r#" aria-invalid="{field}""#)?;
203 }
204 if let Some(field) = self.aria_key_shortcuts.as_ref() {
205 write!(writer, r#" aria-keyshortcuts="{field}""#)?;
206 }
207 if let Some(field) = self.aria_label.as_ref() {
208 write!(writer, r#" aria-label="{field}""#)?;
209 }
210 if let Some(field) = self.aria_labelled_by_elements.as_ref() {
211 write!(writer, r#" aria-labelledby="{field}""#)?;
212 }
213 if let Some(field) = self.aria_level.as_ref() {
214 write!(writer, r#" aria-level="{field}""#)?;
215 }
216 if let Some(field) = self.aria_live.as_ref() {
217 write!(writer, r#" aria-live="{field}""#)?;
218 }
219 if self.aria_modal {
220 write!(writer, r#" aria-modal"#)?;
221 }
222 if self.aria_multi_line {
223 write!(writer, r#" aria-multiline"#)?;
224 }
225 if self.aria_multi_selectable {
226 write!(writer, r#" aria-multiselectable"#)?;
227 }
228 if let Some(field) = self.aria_orientation.as_ref() {
229 write!(writer, r#" aria-orientation="{field}""#)?;
230 }
231 if let Some(field) = self.aria_owns_elements.as_ref() {
232 write!(writer, r#" aria-owns="{field}""#)?;
233 }
234 if let Some(field) = self.aria_placeholder.as_ref() {
235 write!(writer, r#" aria-placeholder="{field}""#)?;
236 }
237 if let Some(field) = self.aria_pos_in_set.as_ref() {
238 write!(writer, r#" aria-posinset="{field}""#)?;
239 }
240 if let Some(field) = self.aria_pressed.as_ref() {
241 write!(writer, r#" aria-pressed="{field}""#)?;
242 }
243 if self.aria_read_only {
244 write!(writer, r#" aria-readonly"#)?;
245 }
246 if let Some(field) = self.aria_relevant.as_ref() {
247 write!(writer, r#" aria-relevant="{field}""#)?;
248 }
249 if self.aria_required {
250 write!(writer, r#" aria-required"#)?;
251 }
252 if let Some(field) = self.aria_role_description.as_ref() {
253 write!(writer, r#" aria-roledescription="{field}""#)?;
254 }
255 if let Some(field) = self.aria_row_count.as_ref() {
256 write!(writer, r#" aria-rowcount="{field}""#)?;
257 }
258 if let Some(field) = self.aria_row_index.as_ref() {
259 write!(writer, r#" aria-rowindex="{field}""#)?;
260 }
261 if let Some(field) = self.aria_row_index_text.as_ref() {
262 write!(writer, r#" aria-rowindextext="{field}""#)?;
263 }
264 if let Some(field) = self.aria_row_span.as_ref() {
265 write!(writer, r#" aria-rowspan="{field}""#)?;
266 }
267 if self.aria_selected {
268 write!(writer, r#" aria-selected"#)?;
269 }
270 if let Some(field) = self.aria_set_size.as_ref() {
271 write!(writer, r#" aria-setsize="{field}""#)?;
272 }
273 if let Some(field) = self.aria_sort.as_ref() {
274 write!(writer, r#" aria-sort="{field}""#)?;
275 }
276 if let Some(field) = self.aria_value_max.as_ref() {
277 write!(writer, r#" aria-valuemax="{field}""#)?;
278 }
279 if let Some(field) = self.aria_value_min.as_ref() {
280 write!(writer, r#" aria-valuemin="{field}""#)?;
281 }
282 if let Some(field) = self.aria_value_now.as_ref() {
283 write!(writer, r#" aria-valuenow="{field}""#)?;
284 }
285 if let Some(field) = self.aria_value_text.as_ref() {
286 write!(writer, r#" aria-valuetext="{field}""#)?;
287 }
288 write!(writer, "{}", self.global_attrs)?;
289 write!(writer, "{}", self.data_map)?;
290 write!(writer, ">")?;
291 Ok(())
292 }
293 #[allow(unused_variables)]
294 fn write_closing_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
295 write!(writer, "</table>")?;
296 Ok(())
297 }
298}
299impl std::fmt::Display for Table {
300 fn fmt(&self, writer: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
301 use crate::RenderElement;
302 self.write_opening_tag(writer)?;
303 self.write_closing_tag(writer)?;
304 Ok(())
305 }
306}
307impl std::ops::Deref for Table {
308 type Target = crate::GlobalAttributes;
309 fn deref(&self) -> &Self::Target {
310 &self.global_attrs
311 }
312}
313impl std::ops::DerefMut for Table {
314 fn deref_mut(&mut self) -> &mut Self::Target {
315 &mut self.global_attrs
316 }
317}