html/generated/
data.rs

1pub mod element {
2    /// The HTML `<data>` element
3    ///
4    /// [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data)
5    #[doc(alias = "data")]
6    #[non_exhaustive]
7    #[derive(PartialEq, Clone, Default)]
8    pub struct Data {
9        sys: html_sys::text::Data,
10        children: Vec<super::child::DataChild>,
11    }
12    impl Data {
13        /// Create a new builder
14        pub fn builder() -> super::builder::DataBuilder {
15            super::builder::DataBuilder::new(Default::default())
16        }
17    }
18    impl Data {
19        /// Access the element's `data-*` properties
20        pub fn data_map(&self) -> &html_sys::DataMap {
21            &self.sys.data_map
22        }
23        /// Mutably access the element's `data-*` properties
24        pub fn data_map_mut(&mut self) -> &mut html_sys::DataMap {
25            &mut self.sys.data_map
26        }
27    }
28    impl Data {
29        /// Get the value of the `value` attribute
30        pub fn value(&self) -> std::option::Option<&str> {
31            self.sys.value.as_deref()
32        }
33        /// Set the value of the `value` attribute
34        pub fn set_value(
35            &mut self,
36            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
37        ) {
38            self.sys.value = value.map(|v| v.into());
39        }
40        /// Get the value of the `role` attribute
41        pub fn role(&self) -> std::option::Option<&str> {
42            self.sys.role.as_deref()
43        }
44        /// Set the value of the `role` attribute
45        pub fn set_role(
46            &mut self,
47            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
48        ) {
49            self.sys.role = value.map(|v| v.into());
50        }
51        /// Get the value of the `aria-activedescendant` attribute
52        pub fn aria_active_descendant_element(&self) -> std::option::Option<&str> {
53            self.sys.aria_active_descendant_element.as_deref()
54        }
55        /// Set the value of the `aria-activedescendant` attribute
56        pub fn set_aria_active_descendant_element(
57            &mut self,
58            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
59        ) {
60            self.sys.aria_active_descendant_element = value.map(|v| v.into());
61        }
62        /// Get the value of the `aria-atomic` attribute
63        pub fn aria_atomic(&self) -> bool {
64            self.sys.aria_atomic
65        }
66        /// Set the value of the `aria-atomic` attribute
67        pub fn set_aria_atomic(&mut self, value: bool) {
68            self.sys.aria_atomic = value;
69        }
70        /// Get the value of the `aria-autocomplete` attribute
71        pub fn aria_auto_complete(&self) -> std::option::Option<&str> {
72            self.sys.aria_auto_complete.as_deref()
73        }
74        /// Set the value of the `aria-autocomplete` attribute
75        pub fn set_aria_auto_complete(
76            &mut self,
77            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
78        ) {
79            self.sys.aria_auto_complete = value.map(|v| v.into());
80        }
81        /// Get the value of the `aria-brailleroledescription` attribute
82        pub fn aria_braille_role_description(&self) -> std::option::Option<&str> {
83            self.sys.aria_braille_role_description.as_deref()
84        }
85        /// Set the value of the `aria-brailleroledescription` attribute
86        pub fn set_aria_braille_role_description(
87            &mut self,
88            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
89        ) {
90            self.sys.aria_braille_role_description = value.map(|v| v.into());
91        }
92        /// Get the value of the `aria-busy` attribute
93        pub fn aria_busy(&self) -> bool {
94            self.sys.aria_busy
95        }
96        /// Set the value of the `aria-busy` attribute
97        pub fn set_aria_busy(&mut self, value: bool) {
98            self.sys.aria_busy = value;
99        }
100        /// Get the value of the `aria-checked` attribute
101        pub fn aria_checked(&self) -> std::option::Option<&str> {
102            self.sys.aria_checked.as_deref()
103        }
104        /// Set the value of the `aria-checked` attribute
105        pub fn set_aria_checked(
106            &mut self,
107            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
108        ) {
109            self.sys.aria_checked = value.map(|v| v.into());
110        }
111        /// Get the value of the `aria-colcount` attribute
112        pub fn aria_col_count(&self) -> std::option::Option<i64> {
113            self.sys.aria_col_count
114        }
115        /// Set the value of the `aria-colcount` attribute
116        pub fn set_aria_col_count(&mut self, value: std::option::Option<i64>) {
117            self.sys.aria_col_count = value;
118        }
119        /// Get the value of the `aria-colindex` attribute
120        pub fn aria_col_index(&self) -> std::option::Option<i64> {
121            self.sys.aria_col_index
122        }
123        /// Set the value of the `aria-colindex` attribute
124        pub fn set_aria_col_index(&mut self, value: std::option::Option<i64>) {
125            self.sys.aria_col_index = value;
126        }
127        /// Get the value of the `aria-colindextext` attribute
128        pub fn aria_col_index_text(&self) -> std::option::Option<&str> {
129            self.sys.aria_col_index_text.as_deref()
130        }
131        /// Set the value of the `aria-colindextext` attribute
132        pub fn set_aria_col_index_text(
133            &mut self,
134            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
135        ) {
136            self.sys.aria_col_index_text = value.map(|v| v.into());
137        }
138        /// Get the value of the `aria-colspan` attribute
139        pub fn aria_col_span(&self) -> std::option::Option<i64> {
140            self.sys.aria_col_span
141        }
142        /// Set the value of the `aria-colspan` attribute
143        pub fn set_aria_col_span(&mut self, value: std::option::Option<i64>) {
144            self.sys.aria_col_span = value;
145        }
146        /// Get the value of the `aria-controls` attribute
147        pub fn aria_controls_elements(&self) -> std::option::Option<&str> {
148            self.sys.aria_controls_elements.as_deref()
149        }
150        /// Set the value of the `aria-controls` attribute
151        pub fn set_aria_controls_elements(
152            &mut self,
153            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
154        ) {
155            self.sys.aria_controls_elements = value.map(|v| v.into());
156        }
157        /// Get the value of the `aria-current` attribute
158        pub fn aria_current(&self) -> std::option::Option<&str> {
159            self.sys.aria_current.as_deref()
160        }
161        /// Set the value of the `aria-current` attribute
162        pub fn set_aria_current(
163            &mut self,
164            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
165        ) {
166            self.sys.aria_current = value.map(|v| v.into());
167        }
168        /// Get the value of the `aria-describedby` attribute
169        pub fn aria_described_by_elements(&self) -> std::option::Option<&str> {
170            self.sys.aria_described_by_elements.as_deref()
171        }
172        /// Set the value of the `aria-describedby` attribute
173        pub fn set_aria_described_by_elements(
174            &mut self,
175            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
176        ) {
177            self.sys.aria_described_by_elements = value.map(|v| v.into());
178        }
179        /// Get the value of the `aria-description` attribute
180        pub fn aria_description(&self) -> std::option::Option<&str> {
181            self.sys.aria_description.as_deref()
182        }
183        /// Set the value of the `aria-description` attribute
184        pub fn set_aria_description(
185            &mut self,
186            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
187        ) {
188            self.sys.aria_description = value.map(|v| v.into());
189        }
190        /// Get the value of the `aria-details` attribute
191        pub fn aria_details_elements(&self) -> std::option::Option<&str> {
192            self.sys.aria_details_elements.as_deref()
193        }
194        /// Set the value of the `aria-details` attribute
195        pub fn set_aria_details_elements(
196            &mut self,
197            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
198        ) {
199            self.sys.aria_details_elements = value.map(|v| v.into());
200        }
201        /// Get the value of the `aria-disabled` attribute
202        pub fn aria_disabled(&self) -> bool {
203            self.sys.aria_disabled
204        }
205        /// Set the value of the `aria-disabled` attribute
206        pub fn set_aria_disabled(&mut self, value: bool) {
207            self.sys.aria_disabled = value;
208        }
209        /// Get the value of the `aria-dropeffect` attribute
210        pub fn aria_drop_effect(&self) -> std::option::Option<&str> {
211            self.sys.aria_drop_effect.as_deref()
212        }
213        /// Set the value of the `aria-dropeffect` attribute
214        pub fn set_aria_drop_effect(
215            &mut self,
216            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
217        ) {
218            self.sys.aria_drop_effect = value.map(|v| v.into());
219        }
220        /// Get the value of the `aria-errormessage` attribute
221        pub fn aria_error_message_elements(&self) -> std::option::Option<&str> {
222            self.sys.aria_error_message_elements.as_deref()
223        }
224        /// Set the value of the `aria-errormessage` attribute
225        pub fn set_aria_error_message_elements(
226            &mut self,
227            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
228        ) {
229            self.sys.aria_error_message_elements = value.map(|v| v.into());
230        }
231        /// Get the value of the `aria-expanded` attribute
232        pub fn aria_expanded(&self) -> bool {
233            self.sys.aria_expanded
234        }
235        /// Set the value of the `aria-expanded` attribute
236        pub fn set_aria_expanded(&mut self, value: bool) {
237            self.sys.aria_expanded = value;
238        }
239        /// Get the value of the `aria-flowto` attribute
240        pub fn aria_flow_to_elements(&self) -> std::option::Option<&str> {
241            self.sys.aria_flow_to_elements.as_deref()
242        }
243        /// Set the value of the `aria-flowto` attribute
244        pub fn set_aria_flow_to_elements(
245            &mut self,
246            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
247        ) {
248            self.sys.aria_flow_to_elements = value.map(|v| v.into());
249        }
250        /// Get the value of the `aria-grabbed` attribute
251        pub fn aria_grabbed(&self) -> bool {
252            self.sys.aria_grabbed
253        }
254        /// Set the value of the `aria-grabbed` attribute
255        pub fn set_aria_grabbed(&mut self, value: bool) {
256            self.sys.aria_grabbed = value;
257        }
258        /// Get the value of the `aria-haspopup` attribute
259        pub fn aria_has_popup(&self) -> std::option::Option<&str> {
260            self.sys.aria_has_popup.as_deref()
261        }
262        /// Set the value of the `aria-haspopup` attribute
263        pub fn set_aria_has_popup(
264            &mut self,
265            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
266        ) {
267            self.sys.aria_has_popup = value.map(|v| v.into());
268        }
269        /// Get the value of the `aria-hidden` attribute
270        pub fn aria_hidden(&self) -> bool {
271            self.sys.aria_hidden
272        }
273        /// Set the value of the `aria-hidden` attribute
274        pub fn set_aria_hidden(&mut self, value: bool) {
275            self.sys.aria_hidden = value;
276        }
277        /// Get the value of the `aria-invalid` attribute
278        pub fn aria_invalid(&self) -> std::option::Option<&str> {
279            self.sys.aria_invalid.as_deref()
280        }
281        /// Set the value of the `aria-invalid` attribute
282        pub fn set_aria_invalid(
283            &mut self,
284            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
285        ) {
286            self.sys.aria_invalid = value.map(|v| v.into());
287        }
288        /// Get the value of the `aria-keyshortcuts` attribute
289        pub fn aria_key_shortcuts(&self) -> std::option::Option<&str> {
290            self.sys.aria_key_shortcuts.as_deref()
291        }
292        /// Set the value of the `aria-keyshortcuts` attribute
293        pub fn set_aria_key_shortcuts(
294            &mut self,
295            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
296        ) {
297            self.sys.aria_key_shortcuts = value.map(|v| v.into());
298        }
299        /// Get the value of the `aria-level` attribute
300        pub fn aria_level(&self) -> std::option::Option<i64> {
301            self.sys.aria_level
302        }
303        /// Set the value of the `aria-level` attribute
304        pub fn set_aria_level(&mut self, value: std::option::Option<i64>) {
305            self.sys.aria_level = value;
306        }
307        /// Get the value of the `aria-live` attribute
308        pub fn aria_live(&self) -> std::option::Option<&str> {
309            self.sys.aria_live.as_deref()
310        }
311        /// Set the value of the `aria-live` attribute
312        pub fn set_aria_live(
313            &mut self,
314            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
315        ) {
316            self.sys.aria_live = value.map(|v| v.into());
317        }
318        /// Get the value of the `aria-modal` attribute
319        pub fn aria_modal(&self) -> bool {
320            self.sys.aria_modal
321        }
322        /// Set the value of the `aria-modal` attribute
323        pub fn set_aria_modal(&mut self, value: bool) {
324            self.sys.aria_modal = value;
325        }
326        /// Get the value of the `aria-multiline` attribute
327        pub fn aria_multi_line(&self) -> bool {
328            self.sys.aria_multi_line
329        }
330        /// Set the value of the `aria-multiline` attribute
331        pub fn set_aria_multi_line(&mut self, value: bool) {
332            self.sys.aria_multi_line = value;
333        }
334        /// Get the value of the `aria-multiselectable` attribute
335        pub fn aria_multi_selectable(&self) -> bool {
336            self.sys.aria_multi_selectable
337        }
338        /// Set the value of the `aria-multiselectable` attribute
339        pub fn set_aria_multi_selectable(&mut self, value: bool) {
340            self.sys.aria_multi_selectable = value;
341        }
342        /// Get the value of the `aria-orientation` attribute
343        pub fn aria_orientation(&self) -> std::option::Option<&str> {
344            self.sys.aria_orientation.as_deref()
345        }
346        /// Set the value of the `aria-orientation` attribute
347        pub fn set_aria_orientation(
348            &mut self,
349            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
350        ) {
351            self.sys.aria_orientation = value.map(|v| v.into());
352        }
353        /// Get the value of the `aria-owns` attribute
354        pub fn aria_owns_elements(&self) -> std::option::Option<&str> {
355            self.sys.aria_owns_elements.as_deref()
356        }
357        /// Set the value of the `aria-owns` attribute
358        pub fn set_aria_owns_elements(
359            &mut self,
360            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
361        ) {
362            self.sys.aria_owns_elements = value.map(|v| v.into());
363        }
364        /// Get the value of the `aria-placeholder` attribute
365        pub fn aria_placeholder(&self) -> std::option::Option<&str> {
366            self.sys.aria_placeholder.as_deref()
367        }
368        /// Set the value of the `aria-placeholder` attribute
369        pub fn set_aria_placeholder(
370            &mut self,
371            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
372        ) {
373            self.sys.aria_placeholder = value.map(|v| v.into());
374        }
375        /// Get the value of the `aria-posinset` attribute
376        pub fn aria_pos_in_set(&self) -> std::option::Option<i64> {
377            self.sys.aria_pos_in_set
378        }
379        /// Set the value of the `aria-posinset` attribute
380        pub fn set_aria_pos_in_set(&mut self, value: std::option::Option<i64>) {
381            self.sys.aria_pos_in_set = value;
382        }
383        /// Get the value of the `aria-pressed` attribute
384        pub fn aria_pressed(&self) -> std::option::Option<&str> {
385            self.sys.aria_pressed.as_deref()
386        }
387        /// Set the value of the `aria-pressed` attribute
388        pub fn set_aria_pressed(
389            &mut self,
390            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
391        ) {
392            self.sys.aria_pressed = value.map(|v| v.into());
393        }
394        /// Get the value of the `aria-readonly` attribute
395        pub fn aria_read_only(&self) -> bool {
396            self.sys.aria_read_only
397        }
398        /// Set the value of the `aria-readonly` attribute
399        pub fn set_aria_read_only(&mut self, value: bool) {
400            self.sys.aria_read_only = value;
401        }
402        /// Get the value of the `aria-relevant` attribute
403        pub fn aria_relevant(&self) -> std::option::Option<&str> {
404            self.sys.aria_relevant.as_deref()
405        }
406        /// Set the value of the `aria-relevant` attribute
407        pub fn set_aria_relevant(
408            &mut self,
409            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
410        ) {
411            self.sys.aria_relevant = value.map(|v| v.into());
412        }
413        /// Get the value of the `aria-required` attribute
414        pub fn aria_required(&self) -> bool {
415            self.sys.aria_required
416        }
417        /// Set the value of the `aria-required` attribute
418        pub fn set_aria_required(&mut self, value: bool) {
419            self.sys.aria_required = value;
420        }
421        /// Get the value of the `aria-roledescription` attribute
422        pub fn aria_role_description(&self) -> std::option::Option<&str> {
423            self.sys.aria_role_description.as_deref()
424        }
425        /// Set the value of the `aria-roledescription` attribute
426        pub fn set_aria_role_description(
427            &mut self,
428            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
429        ) {
430            self.sys.aria_role_description = value.map(|v| v.into());
431        }
432        /// Get the value of the `aria-rowcount` attribute
433        pub fn aria_row_count(&self) -> std::option::Option<i64> {
434            self.sys.aria_row_count
435        }
436        /// Set the value of the `aria-rowcount` attribute
437        pub fn set_aria_row_count(&mut self, value: std::option::Option<i64>) {
438            self.sys.aria_row_count = value;
439        }
440        /// Get the value of the `aria-rowindex` attribute
441        pub fn aria_row_index(&self) -> std::option::Option<i64> {
442            self.sys.aria_row_index
443        }
444        /// Set the value of the `aria-rowindex` attribute
445        pub fn set_aria_row_index(&mut self, value: std::option::Option<i64>) {
446            self.sys.aria_row_index = value;
447        }
448        /// Get the value of the `aria-rowindextext` attribute
449        pub fn aria_row_index_text(&self) -> std::option::Option<&str> {
450            self.sys.aria_row_index_text.as_deref()
451        }
452        /// Set the value of the `aria-rowindextext` attribute
453        pub fn set_aria_row_index_text(
454            &mut self,
455            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
456        ) {
457            self.sys.aria_row_index_text = value.map(|v| v.into());
458        }
459        /// Get the value of the `aria-rowspan` attribute
460        pub fn aria_row_span(&self) -> std::option::Option<i64> {
461            self.sys.aria_row_span
462        }
463        /// Set the value of the `aria-rowspan` attribute
464        pub fn set_aria_row_span(&mut self, value: std::option::Option<i64>) {
465            self.sys.aria_row_span = value;
466        }
467        /// Get the value of the `aria-selected` attribute
468        pub fn aria_selected(&self) -> bool {
469            self.sys.aria_selected
470        }
471        /// Set the value of the `aria-selected` attribute
472        pub fn set_aria_selected(&mut self, value: bool) {
473            self.sys.aria_selected = value;
474        }
475        /// Get the value of the `aria-setsize` attribute
476        pub fn aria_set_size(&self) -> std::option::Option<i64> {
477            self.sys.aria_set_size
478        }
479        /// Set the value of the `aria-setsize` attribute
480        pub fn set_aria_set_size(&mut self, value: std::option::Option<i64>) {
481            self.sys.aria_set_size = value;
482        }
483        /// Get the value of the `aria-sort` attribute
484        pub fn aria_sort(&self) -> std::option::Option<&str> {
485            self.sys.aria_sort.as_deref()
486        }
487        /// Set the value of the `aria-sort` attribute
488        pub fn set_aria_sort(
489            &mut self,
490            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
491        ) {
492            self.sys.aria_sort = value.map(|v| v.into());
493        }
494        /// Get the value of the `aria-valuemax` attribute
495        pub fn aria_value_max(&self) -> std::option::Option<f64> {
496            self.sys.aria_value_max
497        }
498        /// Set the value of the `aria-valuemax` attribute
499        pub fn set_aria_value_max(&mut self, value: std::option::Option<f64>) {
500            self.sys.aria_value_max = value;
501        }
502        /// Get the value of the `aria-valuemin` attribute
503        pub fn aria_value_min(&self) -> std::option::Option<f64> {
504            self.sys.aria_value_min
505        }
506        /// Set the value of the `aria-valuemin` attribute
507        pub fn set_aria_value_min(&mut self, value: std::option::Option<f64>) {
508            self.sys.aria_value_min = value;
509        }
510        /// Get the value of the `aria-valuenow` attribute
511        pub fn aria_value_now(&self) -> std::option::Option<f64> {
512            self.sys.aria_value_now
513        }
514        /// Set the value of the `aria-valuenow` attribute
515        pub fn set_aria_value_now(&mut self, value: std::option::Option<f64>) {
516            self.sys.aria_value_now = value;
517        }
518        /// Get the value of the `aria-valuetext` attribute
519        pub fn aria_value_text(&self) -> std::option::Option<&str> {
520            self.sys.aria_value_text.as_deref()
521        }
522        /// Set the value of the `aria-valuetext` attribute
523        pub fn set_aria_value_text(
524            &mut self,
525            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
526        ) {
527            self.sys.aria_value_text = value.map(|v| v.into());
528        }
529        /// Get the value of the `accesskey` attribute
530        pub fn access_key(&self) -> std::option::Option<&str> {
531            self.sys.access_key.as_deref()
532        }
533        /// Set the value of the `accesskey` attribute
534        pub fn set_access_key(
535            &mut self,
536            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
537        ) {
538            self.sys.access_key = value.map(|v| v.into());
539        }
540        /// Get the value of the `autocapitalize` attribute
541        pub fn auto_capitalize(&self) -> std::option::Option<&str> {
542            self.sys.auto_capitalize.as_deref()
543        }
544        /// Set the value of the `autocapitalize` attribute
545        pub fn set_auto_capitalize(
546            &mut self,
547            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
548        ) {
549            self.sys.auto_capitalize = value.map(|v| v.into());
550        }
551        /// Get the value of the `autofocus` attribute
552        pub fn autofocus(&self) -> bool {
553            self.sys.autofocus
554        }
555        /// Set the value of the `autofocus` attribute
556        pub fn set_autofocus(&mut self, value: bool) {
557            self.sys.autofocus = value;
558        }
559        /// Get the value of the `class` attribute
560        pub fn class(&self) -> std::option::Option<&str> {
561            self.sys.class.as_deref()
562        }
563        /// Set the value of the `class` attribute
564        pub fn set_class(
565            &mut self,
566            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
567        ) {
568            self.sys.class = value.map(|v| v.into());
569        }
570        /// Get the value of the `contenteditable` attribute
571        pub fn content_editable(&self) -> std::option::Option<&str> {
572            self.sys.content_editable.as_deref()
573        }
574        /// Set the value of the `contenteditable` attribute
575        pub fn set_content_editable(
576            &mut self,
577            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
578        ) {
579            self.sys.content_editable = value.map(|v| v.into());
580        }
581        /// Get the value of the `dir` attribute
582        pub fn direction(&self) -> std::option::Option<&str> {
583            self.sys.direction.as_deref()
584        }
585        /// Set the value of the `dir` attribute
586        pub fn set_direction(
587            &mut self,
588            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
589        ) {
590            self.sys.direction = value.map(|v| v.into());
591        }
592        /// Get the value of the `draggable` attribute
593        pub fn draggable(&self) -> bool {
594            self.sys.draggable
595        }
596        /// Set the value of the `draggable` attribute
597        pub fn set_draggable(&mut self, value: bool) {
598            self.sys.draggable = value;
599        }
600        /// Get the value of the `enterkeyhint` attribute
601        pub fn enter_key_hint(&self) -> std::option::Option<&str> {
602            self.sys.enter_key_hint.as_deref()
603        }
604        /// Set the value of the `enterkeyhint` attribute
605        pub fn set_enter_key_hint(
606            &mut self,
607            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
608        ) {
609            self.sys.enter_key_hint = value.map(|v| v.into());
610        }
611        /// Get the value of the `exportparts` attribute
612        pub fn export_parts(&self) -> std::option::Option<&str> {
613            self.sys.export_parts.as_deref()
614        }
615        /// Set the value of the `exportparts` attribute
616        pub fn set_export_parts(
617            &mut self,
618            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
619        ) {
620            self.sys.export_parts = value.map(|v| v.into());
621        }
622        /// Get the value of the `hidden` attribute
623        pub fn hidden(&self) -> std::option::Option<&str> {
624            self.sys.hidden.as_deref()
625        }
626        /// Set the value of the `hidden` attribute
627        pub fn set_hidden(
628            &mut self,
629            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
630        ) {
631            self.sys.hidden = value.map(|v| v.into());
632        }
633        /// Get the value of the `id` attribute
634        pub fn id(&self) -> std::option::Option<&str> {
635            self.sys.id.as_deref()
636        }
637        /// Set the value of the `id` attribute
638        pub fn set_id(
639            &mut self,
640            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
641        ) {
642            self.sys.id = value.map(|v| v.into());
643        }
644        /// Get the value of the `inert` attribute
645        pub fn inert(&self) -> bool {
646            self.sys.inert
647        }
648        /// Set the value of the `inert` attribute
649        pub fn set_inert(&mut self, value: bool) {
650            self.sys.inert = value;
651        }
652        /// Get the value of the `inputmode` attribute
653        pub fn input_mode(&self) -> std::option::Option<&str> {
654            self.sys.input_mode.as_deref()
655        }
656        /// Set the value of the `inputmode` attribute
657        pub fn set_input_mode(
658            &mut self,
659            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
660        ) {
661            self.sys.input_mode = value.map(|v| v.into());
662        }
663        /// Get the value of the `is` attribute
664        pub fn is_(&self) -> std::option::Option<&str> {
665            self.sys.is_.as_deref()
666        }
667        /// Set the value of the `is` attribute
668        pub fn set_is_(
669            &mut self,
670            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
671        ) {
672            self.sys.is_ = value.map(|v| v.into());
673        }
674        /// Get the value of the `itemid` attribute
675        pub fn item_id(&self) -> std::option::Option<&str> {
676            self.sys.item_id.as_deref()
677        }
678        /// Set the value of the `itemid` attribute
679        pub fn set_item_id(
680            &mut self,
681            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
682        ) {
683            self.sys.item_id = value.map(|v| v.into());
684        }
685        /// Get the value of the `itemprop` attribute
686        pub fn item_prop(&self) -> std::option::Option<&str> {
687            self.sys.item_prop.as_deref()
688        }
689        /// Set the value of the `itemprop` attribute
690        pub fn set_item_prop(
691            &mut self,
692            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
693        ) {
694            self.sys.item_prop = value.map(|v| v.into());
695        }
696        /// Get the value of the `itemref` attribute
697        pub fn item_ref(&self) -> std::option::Option<&str> {
698            self.sys.item_ref.as_deref()
699        }
700        /// Set the value of the `itemref` attribute
701        pub fn set_item_ref(
702            &mut self,
703            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
704        ) {
705            self.sys.item_ref = value.map(|v| v.into());
706        }
707        /// Get the value of the `itemscope` attribute
708        pub fn item_scope(&self) -> std::option::Option<&str> {
709            self.sys.item_scope.as_deref()
710        }
711        /// Set the value of the `itemscope` attribute
712        pub fn set_item_scope(
713            &mut self,
714            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
715        ) {
716            self.sys.item_scope = value.map(|v| v.into());
717        }
718        /// Get the value of the `itemtype` attribute
719        pub fn item_type(&self) -> std::option::Option<&str> {
720            self.sys.item_type.as_deref()
721        }
722        /// Set the value of the `itemtype` attribute
723        pub fn set_item_type(
724            &mut self,
725            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
726        ) {
727            self.sys.item_type = value.map(|v| v.into());
728        }
729        /// Get the value of the `lang` attribute
730        pub fn lang(&self) -> std::option::Option<&str> {
731            self.sys.lang.as_deref()
732        }
733        /// Set the value of the `lang` attribute
734        pub fn set_lang(
735            &mut self,
736            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
737        ) {
738            self.sys.lang = value.map(|v| v.into());
739        }
740        /// Get the value of the `nonce` attribute
741        pub fn nonce(&self) -> std::option::Option<&str> {
742            self.sys.nonce.as_deref()
743        }
744        /// Set the value of the `nonce` attribute
745        pub fn set_nonce(
746            &mut self,
747            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
748        ) {
749            self.sys.nonce = value.map(|v| v.into());
750        }
751        /// Get the value of the `part` attribute
752        pub fn part(&self) -> std::option::Option<&str> {
753            self.sys.part.as_deref()
754        }
755        /// Set the value of the `part` attribute
756        pub fn set_part(
757            &mut self,
758            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
759        ) {
760            self.sys.part = value.map(|v| v.into());
761        }
762        /// Get the value of the `slot` attribute
763        pub fn slot(&self) -> std::option::Option<&str> {
764            self.sys.slot.as_deref()
765        }
766        /// Set the value of the `slot` attribute
767        pub fn set_slot(
768            &mut self,
769            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
770        ) {
771            self.sys.slot = value.map(|v| v.into());
772        }
773        /// Get the value of the `spellcheck` attribute
774        pub fn spellcheck(&self) -> std::option::Option<&str> {
775            self.sys.spellcheck.as_deref()
776        }
777        /// Set the value of the `spellcheck` attribute
778        pub fn set_spellcheck(
779            &mut self,
780            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
781        ) {
782            self.sys.spellcheck = value.map(|v| v.into());
783        }
784        /// Get the value of the `style` attribute
785        pub fn style(&self) -> std::option::Option<&str> {
786            self.sys.style.as_deref()
787        }
788        /// Set the value of the `style` attribute
789        pub fn set_style(
790            &mut self,
791            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
792        ) {
793            self.sys.style = value.map(|v| v.into());
794        }
795        /// Get the value of the `tabindex` attribute
796        pub fn tab_index(&self) -> std::option::Option<i64> {
797            self.sys.tab_index
798        }
799        /// Set the value of the `tabindex` attribute
800        pub fn set_tab_index(&mut self, value: std::option::Option<i64>) {
801            self.sys.tab_index = value;
802        }
803        /// Get the value of the `title` attribute
804        pub fn title(&self) -> std::option::Option<&str> {
805            self.sys.title.as_deref()
806        }
807        /// Set the value of the `title` attribute
808        pub fn set_title(
809            &mut self,
810            value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
811        ) {
812            self.sys.title = value.map(|v| v.into());
813        }
814        /// Get the value of the `translate` attribute
815        pub fn translate(&self) -> bool {
816            self.sys.translate
817        }
818        /// Set the value of the `translate` attribute
819        pub fn set_translate(&mut self, value: bool) {
820            self.sys.translate = value;
821        }
822    }
823    impl Data {
824        /// Access the element's children
825        pub fn children(&self) -> &[super::child::DataChild] {
826            self.children.as_ref()
827        }
828        /// Mutably access the element's children
829        pub fn children_mut(&mut self) -> &mut Vec<super::child::DataChild> {
830            &mut self.children
831        }
832    }
833    impl crate::Render for Data {
834        fn render(
835            &self,
836            f: &mut std::fmt::Formatter<'_>,
837            depth: usize,
838        ) -> std::fmt::Result {
839            write!(f, "{:level$}", "", level = depth * 4)?;
840            html_sys::RenderElement::write_opening_tag(&self.sys, f)?;
841            if !self.children.is_empty() {
842                write!(f, "\n")?;
843            }
844            for el in &self.children {
845                crate::Render::render(&el, f, depth)?;
846                write!(f, "\n")?;
847            }
848            write!(f, "{:level$}", "", level = depth * 4)?;
849            html_sys::RenderElement::write_closing_tag(&self.sys, f)?;
850            Ok(())
851        }
852    }
853    impl std::fmt::Debug for Data {
854        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
855            crate::Render::render(self, f, 0)?;
856            Ok(())
857        }
858    }
859    impl std::fmt::Display for Data {
860        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
861            html_sys::RenderElement::write_opening_tag(&self.sys, f)?;
862            for el in &self.children {
863                write!(f, "{el}")?;
864            }
865            html_sys::RenderElement::write_closing_tag(&self.sys, f)?;
866            Ok(())
867        }
868    }
869    impl crate::HtmlElement for Data {}
870    impl crate::FlowContent for Data {}
871    impl crate::PhrasingContent for Data {}
872    impl crate::PalpableContent for Data {}
873    impl std::convert::Into<html_sys::text::Data> for Data {
874        fn into(self) -> html_sys::text::Data {
875            self.sys
876        }
877    }
878    impl From<html_sys::text::Data> for Data {
879        fn from(sys: html_sys::text::Data) -> Self {
880            Self { sys, children: vec![] }
881        }
882    }
883}
884pub mod child {
885    /// The permitted child items for the `Data` element
886    #[derive(PartialEq, Clone)]
887    pub enum DataChild {
888        /// The Abbreviation element
889        Abbreviation(crate::generated::all::Abbreviation),
890        /// The Anchor element
891        Anchor(crate::generated::all::Anchor),
892        /// The Audio element
893        Audio(crate::generated::all::Audio),
894        /// The BidirectionalIsolate element
895        BidirectionalIsolate(crate::generated::all::BidirectionalIsolate),
896        /// The BidirectionalTextOverride element
897        BidirectionalTextOverride(crate::generated::all::BidirectionalTextOverride),
898        /// The Bold element
899        Bold(crate::generated::all::Bold),
900        /// The Button element
901        Button(crate::generated::all::Button),
902        /// The Canvas element
903        Canvas(crate::generated::all::Canvas),
904        /// The Cite element
905        Cite(crate::generated::all::Cite),
906        /// The Code element
907        Code(crate::generated::all::Code),
908        /// The Data element
909        Data(crate::generated::all::Data),
910        /// The DataList element
911        DataList(crate::generated::all::DataList),
912        /// The Definition element
913        Definition(crate::generated::all::Definition),
914        /// The DeletedText element
915        DeletedText(crate::generated::all::DeletedText),
916        /// The Embed element
917        Embed(crate::generated::all::Embed),
918        /// The Emphasis element
919        Emphasis(crate::generated::all::Emphasis),
920        /// The Iframe element
921        Iframe(crate::generated::all::Iframe),
922        /// The Image element
923        Image(crate::generated::all::Image),
924        /// The ImageMap element
925        ImageMap(crate::generated::all::ImageMap),
926        /// The ImageMapArea element
927        ImageMapArea(crate::generated::all::ImageMapArea),
928        /// The Input element
929        Input(crate::generated::all::Input),
930        /// The InsertedText element
931        InsertedText(crate::generated::all::InsertedText),
932        /// The Italic element
933        Italic(crate::generated::all::Italic),
934        /// The KeyboardInput element
935        KeyboardInput(crate::generated::all::KeyboardInput),
936        /// The Label element
937        Label(crate::generated::all::Label),
938        /// The LineBreak element
939        LineBreak(crate::generated::all::LineBreak),
940        /// The LineBreakOpportunity element
941        LineBreakOpportunity(crate::generated::all::LineBreakOpportunity),
942        /// The Link element
943        Link(crate::generated::all::Link),
944        /// The MarkText element
945        MarkText(crate::generated::all::MarkText),
946        /// The Meta element
947        Meta(crate::generated::all::Meta),
948        /// The Meter element
949        Meter(crate::generated::all::Meter),
950        /// The NoScript element
951        NoScript(crate::generated::all::NoScript),
952        /// The Object element
953        Object(crate::generated::all::Object),
954        /// The Output element
955        Output(crate::generated::all::Output),
956        /// The Picture element
957        Picture(crate::generated::all::Picture),
958        /// The Progress element
959        Progress(crate::generated::all::Progress),
960        /// The Quotation element
961        Quotation(crate::generated::all::Quotation),
962        /// The RubyAnnotation element
963        RubyAnnotation(crate::generated::all::RubyAnnotation),
964        /// The SampleOutput element
965        SampleOutput(crate::generated::all::SampleOutput),
966        /// The Script element
967        Script(crate::generated::all::Script),
968        /// The Select element
969        Select(crate::generated::all::Select),
970        /// The SideComment element
971        SideComment(crate::generated::all::SideComment),
972        /// The Slot element
973        Slot(crate::generated::all::Slot),
974        /// The Span element
975        Span(crate::generated::all::Span),
976        /// The StrikeThrough element
977        StrikeThrough(crate::generated::all::StrikeThrough),
978        /// The Strong element
979        Strong(crate::generated::all::Strong),
980        /// The SubScript element
981        SubScript(crate::generated::all::SubScript),
982        /// The SuperScript element
983        SuperScript(crate::generated::all::SuperScript),
984        /// The Template element
985        Template(crate::generated::all::Template),
986        /// The Text element
987        Text(std::borrow::Cow<'static, str>),
988        /// The TextArea element
989        TextArea(crate::generated::all::TextArea),
990        /// The Time element
991        Time(crate::generated::all::Time),
992        /// The Underline element
993        Underline(crate::generated::all::Underline),
994        /// The Variable element
995        Variable(crate::generated::all::Variable),
996        /// The Video element
997        Video(crate::generated::all::Video),
998    }
999    impl std::convert::From<crate::generated::all::Abbreviation> for DataChild {
1000        fn from(value: crate::generated::all::Abbreviation) -> Self {
1001            Self::Abbreviation(value)
1002        }
1003    }
1004    impl std::convert::From<crate::generated::all::Anchor> for DataChild {
1005        fn from(value: crate::generated::all::Anchor) -> Self {
1006            Self::Anchor(value)
1007        }
1008    }
1009    impl std::convert::From<crate::generated::all::Audio> for DataChild {
1010        fn from(value: crate::generated::all::Audio) -> Self {
1011            Self::Audio(value)
1012        }
1013    }
1014    impl std::convert::From<crate::generated::all::BidirectionalIsolate> for DataChild {
1015        fn from(value: crate::generated::all::BidirectionalIsolate) -> Self {
1016            Self::BidirectionalIsolate(value)
1017        }
1018    }
1019    impl std::convert::From<crate::generated::all::BidirectionalTextOverride>
1020    for DataChild {
1021        fn from(value: crate::generated::all::BidirectionalTextOverride) -> Self {
1022            Self::BidirectionalTextOverride(value)
1023        }
1024    }
1025    impl std::convert::From<crate::generated::all::Bold> for DataChild {
1026        fn from(value: crate::generated::all::Bold) -> Self {
1027            Self::Bold(value)
1028        }
1029    }
1030    impl std::convert::From<crate::generated::all::Button> for DataChild {
1031        fn from(value: crate::generated::all::Button) -> Self {
1032            Self::Button(value)
1033        }
1034    }
1035    impl std::convert::From<crate::generated::all::Canvas> for DataChild {
1036        fn from(value: crate::generated::all::Canvas) -> Self {
1037            Self::Canvas(value)
1038        }
1039    }
1040    impl std::convert::From<crate::generated::all::Cite> for DataChild {
1041        fn from(value: crate::generated::all::Cite) -> Self {
1042            Self::Cite(value)
1043        }
1044    }
1045    impl std::convert::From<crate::generated::all::Code> for DataChild {
1046        fn from(value: crate::generated::all::Code) -> Self {
1047            Self::Code(value)
1048        }
1049    }
1050    impl std::convert::From<crate::generated::all::Data> for DataChild {
1051        fn from(value: crate::generated::all::Data) -> Self {
1052            Self::Data(value)
1053        }
1054    }
1055    impl std::convert::From<crate::generated::all::DataList> for DataChild {
1056        fn from(value: crate::generated::all::DataList) -> Self {
1057            Self::DataList(value)
1058        }
1059    }
1060    impl std::convert::From<crate::generated::all::Definition> for DataChild {
1061        fn from(value: crate::generated::all::Definition) -> Self {
1062            Self::Definition(value)
1063        }
1064    }
1065    impl std::convert::From<crate::generated::all::DeletedText> for DataChild {
1066        fn from(value: crate::generated::all::DeletedText) -> Self {
1067            Self::DeletedText(value)
1068        }
1069    }
1070    impl std::convert::From<crate::generated::all::Embed> for DataChild {
1071        fn from(value: crate::generated::all::Embed) -> Self {
1072            Self::Embed(value)
1073        }
1074    }
1075    impl std::convert::From<crate::generated::all::Emphasis> for DataChild {
1076        fn from(value: crate::generated::all::Emphasis) -> Self {
1077            Self::Emphasis(value)
1078        }
1079    }
1080    impl std::convert::From<crate::generated::all::Iframe> for DataChild {
1081        fn from(value: crate::generated::all::Iframe) -> Self {
1082            Self::Iframe(value)
1083        }
1084    }
1085    impl std::convert::From<crate::generated::all::Image> for DataChild {
1086        fn from(value: crate::generated::all::Image) -> Self {
1087            Self::Image(value)
1088        }
1089    }
1090    impl std::convert::From<crate::generated::all::ImageMap> for DataChild {
1091        fn from(value: crate::generated::all::ImageMap) -> Self {
1092            Self::ImageMap(value)
1093        }
1094    }
1095    impl std::convert::From<crate::generated::all::ImageMapArea> for DataChild {
1096        fn from(value: crate::generated::all::ImageMapArea) -> Self {
1097            Self::ImageMapArea(value)
1098        }
1099    }
1100    impl std::convert::From<crate::generated::all::Input> for DataChild {
1101        fn from(value: crate::generated::all::Input) -> Self {
1102            Self::Input(value)
1103        }
1104    }
1105    impl std::convert::From<crate::generated::all::InsertedText> for DataChild {
1106        fn from(value: crate::generated::all::InsertedText) -> Self {
1107            Self::InsertedText(value)
1108        }
1109    }
1110    impl std::convert::From<crate::generated::all::Italic> for DataChild {
1111        fn from(value: crate::generated::all::Italic) -> Self {
1112            Self::Italic(value)
1113        }
1114    }
1115    impl std::convert::From<crate::generated::all::KeyboardInput> for DataChild {
1116        fn from(value: crate::generated::all::KeyboardInput) -> Self {
1117            Self::KeyboardInput(value)
1118        }
1119    }
1120    impl std::convert::From<crate::generated::all::Label> for DataChild {
1121        fn from(value: crate::generated::all::Label) -> Self {
1122            Self::Label(value)
1123        }
1124    }
1125    impl std::convert::From<crate::generated::all::LineBreak> for DataChild {
1126        fn from(value: crate::generated::all::LineBreak) -> Self {
1127            Self::LineBreak(value)
1128        }
1129    }
1130    impl std::convert::From<crate::generated::all::LineBreakOpportunity> for DataChild {
1131        fn from(value: crate::generated::all::LineBreakOpportunity) -> Self {
1132            Self::LineBreakOpportunity(value)
1133        }
1134    }
1135    impl std::convert::From<crate::generated::all::Link> for DataChild {
1136        fn from(value: crate::generated::all::Link) -> Self {
1137            Self::Link(value)
1138        }
1139    }
1140    impl std::convert::From<crate::generated::all::MarkText> for DataChild {
1141        fn from(value: crate::generated::all::MarkText) -> Self {
1142            Self::MarkText(value)
1143        }
1144    }
1145    impl std::convert::From<crate::generated::all::Meta> for DataChild {
1146        fn from(value: crate::generated::all::Meta) -> Self {
1147            Self::Meta(value)
1148        }
1149    }
1150    impl std::convert::From<crate::generated::all::Meter> for DataChild {
1151        fn from(value: crate::generated::all::Meter) -> Self {
1152            Self::Meter(value)
1153        }
1154    }
1155    impl std::convert::From<crate::generated::all::NoScript> for DataChild {
1156        fn from(value: crate::generated::all::NoScript) -> Self {
1157            Self::NoScript(value)
1158        }
1159    }
1160    impl std::convert::From<crate::generated::all::Object> for DataChild {
1161        fn from(value: crate::generated::all::Object) -> Self {
1162            Self::Object(value)
1163        }
1164    }
1165    impl std::convert::From<crate::generated::all::Output> for DataChild {
1166        fn from(value: crate::generated::all::Output) -> Self {
1167            Self::Output(value)
1168        }
1169    }
1170    impl std::convert::From<crate::generated::all::Picture> for DataChild {
1171        fn from(value: crate::generated::all::Picture) -> Self {
1172            Self::Picture(value)
1173        }
1174    }
1175    impl std::convert::From<crate::generated::all::Progress> for DataChild {
1176        fn from(value: crate::generated::all::Progress) -> Self {
1177            Self::Progress(value)
1178        }
1179    }
1180    impl std::convert::From<crate::generated::all::Quotation> for DataChild {
1181        fn from(value: crate::generated::all::Quotation) -> Self {
1182            Self::Quotation(value)
1183        }
1184    }
1185    impl std::convert::From<crate::generated::all::RubyAnnotation> for DataChild {
1186        fn from(value: crate::generated::all::RubyAnnotation) -> Self {
1187            Self::RubyAnnotation(value)
1188        }
1189    }
1190    impl std::convert::From<crate::generated::all::SampleOutput> for DataChild {
1191        fn from(value: crate::generated::all::SampleOutput) -> Self {
1192            Self::SampleOutput(value)
1193        }
1194    }
1195    impl std::convert::From<crate::generated::all::Script> for DataChild {
1196        fn from(value: crate::generated::all::Script) -> Self {
1197            Self::Script(value)
1198        }
1199    }
1200    impl std::convert::From<crate::generated::all::Select> for DataChild {
1201        fn from(value: crate::generated::all::Select) -> Self {
1202            Self::Select(value)
1203        }
1204    }
1205    impl std::convert::From<crate::generated::all::SideComment> for DataChild {
1206        fn from(value: crate::generated::all::SideComment) -> Self {
1207            Self::SideComment(value)
1208        }
1209    }
1210    impl std::convert::From<crate::generated::all::Slot> for DataChild {
1211        fn from(value: crate::generated::all::Slot) -> Self {
1212            Self::Slot(value)
1213        }
1214    }
1215    impl std::convert::From<crate::generated::all::Span> for DataChild {
1216        fn from(value: crate::generated::all::Span) -> Self {
1217            Self::Span(value)
1218        }
1219    }
1220    impl std::convert::From<crate::generated::all::StrikeThrough> for DataChild {
1221        fn from(value: crate::generated::all::StrikeThrough) -> Self {
1222            Self::StrikeThrough(value)
1223        }
1224    }
1225    impl std::convert::From<crate::generated::all::Strong> for DataChild {
1226        fn from(value: crate::generated::all::Strong) -> Self {
1227            Self::Strong(value)
1228        }
1229    }
1230    impl std::convert::From<crate::generated::all::SubScript> for DataChild {
1231        fn from(value: crate::generated::all::SubScript) -> Self {
1232            Self::SubScript(value)
1233        }
1234    }
1235    impl std::convert::From<crate::generated::all::SuperScript> for DataChild {
1236        fn from(value: crate::generated::all::SuperScript) -> Self {
1237            Self::SuperScript(value)
1238        }
1239    }
1240    impl std::convert::From<crate::generated::all::Template> for DataChild {
1241        fn from(value: crate::generated::all::Template) -> Self {
1242            Self::Template(value)
1243        }
1244    }
1245    impl std::convert::From<std::borrow::Cow<'static, str>> for DataChild {
1246        fn from(value: std::borrow::Cow<'static, str>) -> Self {
1247            Self::Text(value)
1248        }
1249    }
1250    impl std::convert::From<&'static str> for DataChild {
1251        fn from(value: &'static str) -> Self {
1252            Self::Text(value.into())
1253        }
1254    }
1255    impl std::convert::From<String> for DataChild {
1256        fn from(value: String) -> Self {
1257            Self::Text(value.into())
1258        }
1259    }
1260    impl std::convert::From<crate::generated::all::TextArea> for DataChild {
1261        fn from(value: crate::generated::all::TextArea) -> Self {
1262            Self::TextArea(value)
1263        }
1264    }
1265    impl std::convert::From<crate::generated::all::Time> for DataChild {
1266        fn from(value: crate::generated::all::Time) -> Self {
1267            Self::Time(value)
1268        }
1269    }
1270    impl std::convert::From<crate::generated::all::Underline> for DataChild {
1271        fn from(value: crate::generated::all::Underline) -> Self {
1272            Self::Underline(value)
1273        }
1274    }
1275    impl std::convert::From<crate::generated::all::Variable> for DataChild {
1276        fn from(value: crate::generated::all::Variable) -> Self {
1277            Self::Variable(value)
1278        }
1279    }
1280    impl std::convert::From<crate::generated::all::Video> for DataChild {
1281        fn from(value: crate::generated::all::Video) -> Self {
1282            Self::Video(value)
1283        }
1284    }
1285    impl crate::Render for DataChild {
1286        fn render(
1287            &self,
1288            f: &mut std::fmt::Formatter<'_>,
1289            depth: usize,
1290        ) -> std::fmt::Result {
1291            match self {
1292                Self::Abbreviation(el) => crate::Render::render(el, f, depth + 1),
1293                Self::Anchor(el) => crate::Render::render(el, f, depth + 1),
1294                Self::Audio(el) => crate::Render::render(el, f, depth + 1),
1295                Self::BidirectionalIsolate(el) => crate::Render::render(el, f, depth + 1),
1296                Self::BidirectionalTextOverride(el) => {
1297                    crate::Render::render(el, f, depth + 1)
1298                }
1299                Self::Bold(el) => crate::Render::render(el, f, depth + 1),
1300                Self::Button(el) => crate::Render::render(el, f, depth + 1),
1301                Self::Canvas(el) => crate::Render::render(el, f, depth + 1),
1302                Self::Cite(el) => crate::Render::render(el, f, depth + 1),
1303                Self::Code(el) => crate::Render::render(el, f, depth + 1),
1304                Self::Data(el) => crate::Render::render(el, f, depth + 1),
1305                Self::DataList(el) => crate::Render::render(el, f, depth + 1),
1306                Self::Definition(el) => crate::Render::render(el, f, depth + 1),
1307                Self::DeletedText(el) => crate::Render::render(el, f, depth + 1),
1308                Self::Embed(el) => crate::Render::render(el, f, depth + 1),
1309                Self::Emphasis(el) => crate::Render::render(el, f, depth + 1),
1310                Self::Iframe(el) => crate::Render::render(el, f, depth + 1),
1311                Self::Image(el) => crate::Render::render(el, f, depth + 1),
1312                Self::ImageMap(el) => crate::Render::render(el, f, depth + 1),
1313                Self::ImageMapArea(el) => crate::Render::render(el, f, depth + 1),
1314                Self::Input(el) => crate::Render::render(el, f, depth + 1),
1315                Self::InsertedText(el) => crate::Render::render(el, f, depth + 1),
1316                Self::Italic(el) => crate::Render::render(el, f, depth + 1),
1317                Self::KeyboardInput(el) => crate::Render::render(el, f, depth + 1),
1318                Self::Label(el) => crate::Render::render(el, f, depth + 1),
1319                Self::LineBreak(el) => crate::Render::render(el, f, depth + 1),
1320                Self::LineBreakOpportunity(el) => crate::Render::render(el, f, depth + 1),
1321                Self::Link(el) => crate::Render::render(el, f, depth + 1),
1322                Self::MarkText(el) => crate::Render::render(el, f, depth + 1),
1323                Self::Meta(el) => crate::Render::render(el, f, depth + 1),
1324                Self::Meter(el) => crate::Render::render(el, f, depth + 1),
1325                Self::NoScript(el) => crate::Render::render(el, f, depth + 1),
1326                Self::Object(el) => crate::Render::render(el, f, depth + 1),
1327                Self::Output(el) => crate::Render::render(el, f, depth + 1),
1328                Self::Picture(el) => crate::Render::render(el, f, depth + 1),
1329                Self::Progress(el) => crate::Render::render(el, f, depth + 1),
1330                Self::Quotation(el) => crate::Render::render(el, f, depth + 1),
1331                Self::RubyAnnotation(el) => crate::Render::render(el, f, depth + 1),
1332                Self::SampleOutput(el) => crate::Render::render(el, f, depth + 1),
1333                Self::Script(el) => crate::Render::render(el, f, depth + 1),
1334                Self::Select(el) => crate::Render::render(el, f, depth + 1),
1335                Self::SideComment(el) => crate::Render::render(el, f, depth + 1),
1336                Self::Slot(el) => crate::Render::render(el, f, depth + 1),
1337                Self::Span(el) => crate::Render::render(el, f, depth + 1),
1338                Self::StrikeThrough(el) => crate::Render::render(el, f, depth + 1),
1339                Self::Strong(el) => crate::Render::render(el, f, depth + 1),
1340                Self::SubScript(el) => crate::Render::render(el, f, depth + 1),
1341                Self::SuperScript(el) => crate::Render::render(el, f, depth + 1),
1342                Self::Template(el) => crate::Render::render(el, f, depth + 1),
1343                Self::Text(el) => crate::Render::render(el, f, depth + 1),
1344                Self::TextArea(el) => crate::Render::render(el, f, depth + 1),
1345                Self::Time(el) => crate::Render::render(el, f, depth + 1),
1346                Self::Underline(el) => crate::Render::render(el, f, depth + 1),
1347                Self::Variable(el) => crate::Render::render(el, f, depth + 1),
1348                Self::Video(el) => crate::Render::render(el, f, depth + 1),
1349            }
1350        }
1351    }
1352    impl std::fmt::Debug for DataChild {
1353        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1354            crate::Render::render(self, f, 0)?;
1355            Ok(())
1356        }
1357    }
1358    impl std::fmt::Display for DataChild {
1359        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1360            match self {
1361                Self::Abbreviation(el) => write!(f, "{el}"),
1362                Self::Anchor(el) => write!(f, "{el}"),
1363                Self::Audio(el) => write!(f, "{el}"),
1364                Self::BidirectionalIsolate(el) => write!(f, "{el}"),
1365                Self::BidirectionalTextOverride(el) => write!(f, "{el}"),
1366                Self::Bold(el) => write!(f, "{el}"),
1367                Self::Button(el) => write!(f, "{el}"),
1368                Self::Canvas(el) => write!(f, "{el}"),
1369                Self::Cite(el) => write!(f, "{el}"),
1370                Self::Code(el) => write!(f, "{el}"),
1371                Self::Data(el) => write!(f, "{el}"),
1372                Self::DataList(el) => write!(f, "{el}"),
1373                Self::Definition(el) => write!(f, "{el}"),
1374                Self::DeletedText(el) => write!(f, "{el}"),
1375                Self::Embed(el) => write!(f, "{el}"),
1376                Self::Emphasis(el) => write!(f, "{el}"),
1377                Self::Iframe(el) => write!(f, "{el}"),
1378                Self::Image(el) => write!(f, "{el}"),
1379                Self::ImageMap(el) => write!(f, "{el}"),
1380                Self::ImageMapArea(el) => write!(f, "{el}"),
1381                Self::Input(el) => write!(f, "{el}"),
1382                Self::InsertedText(el) => write!(f, "{el}"),
1383                Self::Italic(el) => write!(f, "{el}"),
1384                Self::KeyboardInput(el) => write!(f, "{el}"),
1385                Self::Label(el) => write!(f, "{el}"),
1386                Self::LineBreak(el) => write!(f, "{el}"),
1387                Self::LineBreakOpportunity(el) => write!(f, "{el}"),
1388                Self::Link(el) => write!(f, "{el}"),
1389                Self::MarkText(el) => write!(f, "{el}"),
1390                Self::Meta(el) => write!(f, "{el}"),
1391                Self::Meter(el) => write!(f, "{el}"),
1392                Self::NoScript(el) => write!(f, "{el}"),
1393                Self::Object(el) => write!(f, "{el}"),
1394                Self::Output(el) => write!(f, "{el}"),
1395                Self::Picture(el) => write!(f, "{el}"),
1396                Self::Progress(el) => write!(f, "{el}"),
1397                Self::Quotation(el) => write!(f, "{el}"),
1398                Self::RubyAnnotation(el) => write!(f, "{el}"),
1399                Self::SampleOutput(el) => write!(f, "{el}"),
1400                Self::Script(el) => write!(f, "{el}"),
1401                Self::Select(el) => write!(f, "{el}"),
1402                Self::SideComment(el) => write!(f, "{el}"),
1403                Self::Slot(el) => write!(f, "{el}"),
1404                Self::Span(el) => write!(f, "{el}"),
1405                Self::StrikeThrough(el) => write!(f, "{el}"),
1406                Self::Strong(el) => write!(f, "{el}"),
1407                Self::SubScript(el) => write!(f, "{el}"),
1408                Self::SuperScript(el) => write!(f, "{el}"),
1409                Self::Template(el) => write!(f, "{el}"),
1410                Self::Text(el) => write!(f, "{el}"),
1411                Self::TextArea(el) => write!(f, "{el}"),
1412                Self::Time(el) => write!(f, "{el}"),
1413                Self::Underline(el) => write!(f, "{el}"),
1414                Self::Variable(el) => write!(f, "{el}"),
1415                Self::Video(el) => write!(f, "{el}"),
1416            }
1417        }
1418    }
1419}
1420pub mod builder {
1421    /// A builder struct for Data
1422    pub struct DataBuilder {
1423        element: super::element::Data,
1424    }
1425    impl DataBuilder {
1426        pub(crate) fn new(element: super::element::Data) -> Self {
1427            Self { element }
1428        }
1429        /// Finish building the element
1430        pub fn build(&mut self) -> super::element::Data {
1431            self.element.clone()
1432        }
1433        /// Insert a `data-*` property
1434        pub fn data(
1435            &mut self,
1436            data_key: impl Into<std::borrow::Cow<'static, str>>,
1437            value: impl Into<std::borrow::Cow<'static, str>>,
1438        ) -> &mut DataBuilder {
1439            self.element.data_map_mut().insert(data_key.into(), value.into());
1440            self
1441        }
1442        /// Append a new `Abbreviation` element
1443        pub fn abbreviation<F>(&mut self, f: F) -> &mut Self
1444        where
1445            F: for<'a> FnOnce(
1446                &'a mut crate::generated::all::builders::AbbreviationBuilder,
1447            ) -> &'a mut crate::generated::all::builders::AbbreviationBuilder,
1448        {
1449            let ty: crate::generated::all::Abbreviation = Default::default();
1450            let mut ty_builder = crate::generated::all::builders::AbbreviationBuilder::new(
1451                ty,
1452            );
1453            (f)(&mut ty_builder);
1454            let ty = ty_builder.build();
1455            self.element.children_mut().push(ty.into());
1456            self
1457        }
1458        /// Append a new `Anchor` element
1459        pub fn anchor<F>(&mut self, f: F) -> &mut Self
1460        where
1461            F: for<'a> FnOnce(
1462                &'a mut crate::generated::all::builders::AnchorBuilder,
1463            ) -> &'a mut crate::generated::all::builders::AnchorBuilder,
1464        {
1465            let ty: crate::generated::all::Anchor = Default::default();
1466            let mut ty_builder = crate::generated::all::builders::AnchorBuilder::new(ty);
1467            (f)(&mut ty_builder);
1468            let ty = ty_builder.build();
1469            self.element.children_mut().push(ty.into());
1470            self
1471        }
1472        /// Append a new `Audio` element
1473        pub fn audio<F>(&mut self, f: F) -> &mut Self
1474        where
1475            F: for<'a> FnOnce(
1476                &'a mut crate::generated::all::builders::AudioBuilder,
1477            ) -> &'a mut crate::generated::all::builders::AudioBuilder,
1478        {
1479            let ty: crate::generated::all::Audio = Default::default();
1480            let mut ty_builder = crate::generated::all::builders::AudioBuilder::new(ty);
1481            (f)(&mut ty_builder);
1482            let ty = ty_builder.build();
1483            self.element.children_mut().push(ty.into());
1484            self
1485        }
1486        /// Append a new `BidirectionalIsolate` element
1487        pub fn bidirectional_isolate<F>(&mut self, f: F) -> &mut Self
1488        where
1489            F: for<'a> FnOnce(
1490                &'a mut crate::generated::all::builders::BidirectionalIsolateBuilder,
1491            ) -> &'a mut crate::generated::all::builders::BidirectionalIsolateBuilder,
1492        {
1493            let ty: crate::generated::all::BidirectionalIsolate = Default::default();
1494            let mut ty_builder = crate::generated::all::builders::BidirectionalIsolateBuilder::new(
1495                ty,
1496            );
1497            (f)(&mut ty_builder);
1498            let ty = ty_builder.build();
1499            self.element.children_mut().push(ty.into());
1500            self
1501        }
1502        /// Append a new `BidirectionalTextOverride` element
1503        pub fn bidirectional_text_override<F>(&mut self, f: F) -> &mut Self
1504        where
1505            F: for<'a> FnOnce(
1506                &'a mut crate::generated::all::builders::BidirectionalTextOverrideBuilder,
1507            ) -> &'a mut crate::generated::all::builders::BidirectionalTextOverrideBuilder,
1508        {
1509            let ty: crate::generated::all::BidirectionalTextOverride = Default::default();
1510            let mut ty_builder = crate::generated::all::builders::BidirectionalTextOverrideBuilder::new(
1511                ty,
1512            );
1513            (f)(&mut ty_builder);
1514            let ty = ty_builder.build();
1515            self.element.children_mut().push(ty.into());
1516            self
1517        }
1518        /// Append a new `Bold` element
1519        pub fn bold<F>(&mut self, f: F) -> &mut Self
1520        where
1521            F: for<'a> FnOnce(
1522                &'a mut crate::generated::all::builders::BoldBuilder,
1523            ) -> &'a mut crate::generated::all::builders::BoldBuilder,
1524        {
1525            let ty: crate::generated::all::Bold = Default::default();
1526            let mut ty_builder = crate::generated::all::builders::BoldBuilder::new(ty);
1527            (f)(&mut ty_builder);
1528            let ty = ty_builder.build();
1529            self.element.children_mut().push(ty.into());
1530            self
1531        }
1532        /// Append a new `Button` element
1533        pub fn button<F>(&mut self, f: F) -> &mut Self
1534        where
1535            F: for<'a> FnOnce(
1536                &'a mut crate::generated::all::builders::ButtonBuilder,
1537            ) -> &'a mut crate::generated::all::builders::ButtonBuilder,
1538        {
1539            let ty: crate::generated::all::Button = Default::default();
1540            let mut ty_builder = crate::generated::all::builders::ButtonBuilder::new(ty);
1541            (f)(&mut ty_builder);
1542            let ty = ty_builder.build();
1543            self.element.children_mut().push(ty.into());
1544            self
1545        }
1546        /// Append a new `Canvas` element
1547        pub fn canvas<F>(&mut self, f: F) -> &mut Self
1548        where
1549            F: for<'a> FnOnce(
1550                &'a mut crate::generated::all::builders::CanvasBuilder,
1551            ) -> &'a mut crate::generated::all::builders::CanvasBuilder,
1552        {
1553            let ty: crate::generated::all::Canvas = Default::default();
1554            let mut ty_builder = crate::generated::all::builders::CanvasBuilder::new(ty);
1555            (f)(&mut ty_builder);
1556            let ty = ty_builder.build();
1557            self.element.children_mut().push(ty.into());
1558            self
1559        }
1560        /// Append a new `Cite` element
1561        pub fn cite<F>(&mut self, f: F) -> &mut Self
1562        where
1563            F: for<'a> FnOnce(
1564                &'a mut crate::generated::all::builders::CiteBuilder,
1565            ) -> &'a mut crate::generated::all::builders::CiteBuilder,
1566        {
1567            let ty: crate::generated::all::Cite = Default::default();
1568            let mut ty_builder = crate::generated::all::builders::CiteBuilder::new(ty);
1569            (f)(&mut ty_builder);
1570            let ty = ty_builder.build();
1571            self.element.children_mut().push(ty.into());
1572            self
1573        }
1574        /// Append a new `Code` element
1575        pub fn code<F>(&mut self, f: F) -> &mut Self
1576        where
1577            F: for<'a> FnOnce(
1578                &'a mut crate::generated::all::builders::CodeBuilder,
1579            ) -> &'a mut crate::generated::all::builders::CodeBuilder,
1580        {
1581            let ty: crate::generated::all::Code = Default::default();
1582            let mut ty_builder = crate::generated::all::builders::CodeBuilder::new(ty);
1583            (f)(&mut ty_builder);
1584            let ty = ty_builder.build();
1585            self.element.children_mut().push(ty.into());
1586            self
1587        }
1588        /// Append a new `Data` element
1589        pub fn data_el<F>(&mut self, f: F) -> &mut Self
1590        where
1591            F: for<'a> FnOnce(
1592                &'a mut crate::generated::all::builders::DataBuilder,
1593            ) -> &'a mut crate::generated::all::builders::DataBuilder,
1594        {
1595            let ty: crate::generated::all::Data = Default::default();
1596            let mut ty_builder = crate::generated::all::builders::DataBuilder::new(ty);
1597            (f)(&mut ty_builder);
1598            let ty = ty_builder.build();
1599            self.element.children_mut().push(ty.into());
1600            self
1601        }
1602        /// Append a new `DataList` element
1603        pub fn data_list<F>(&mut self, f: F) -> &mut Self
1604        where
1605            F: for<'a> FnOnce(
1606                &'a mut crate::generated::all::builders::DataListBuilder,
1607            ) -> &'a mut crate::generated::all::builders::DataListBuilder,
1608        {
1609            let ty: crate::generated::all::DataList = Default::default();
1610            let mut ty_builder = crate::generated::all::builders::DataListBuilder::new(
1611                ty,
1612            );
1613            (f)(&mut ty_builder);
1614            let ty = ty_builder.build();
1615            self.element.children_mut().push(ty.into());
1616            self
1617        }
1618        /// Append a new `Definition` element
1619        pub fn definition<F>(&mut self, f: F) -> &mut Self
1620        where
1621            F: for<'a> FnOnce(
1622                &'a mut crate::generated::all::builders::DefinitionBuilder,
1623            ) -> &'a mut crate::generated::all::builders::DefinitionBuilder,
1624        {
1625            let ty: crate::generated::all::Definition = Default::default();
1626            let mut ty_builder = crate::generated::all::builders::DefinitionBuilder::new(
1627                ty,
1628            );
1629            (f)(&mut ty_builder);
1630            let ty = ty_builder.build();
1631            self.element.children_mut().push(ty.into());
1632            self
1633        }
1634        /// Append a new `DeletedText` element
1635        pub fn deleted_text<F>(&mut self, f: F) -> &mut Self
1636        where
1637            F: for<'a> FnOnce(
1638                &'a mut crate::generated::all::builders::DeletedTextBuilder,
1639            ) -> &'a mut crate::generated::all::builders::DeletedTextBuilder,
1640        {
1641            let ty: crate::generated::all::DeletedText = Default::default();
1642            let mut ty_builder = crate::generated::all::builders::DeletedTextBuilder::new(
1643                ty,
1644            );
1645            (f)(&mut ty_builder);
1646            let ty = ty_builder.build();
1647            self.element.children_mut().push(ty.into());
1648            self
1649        }
1650        /// Append a new `Embed` element
1651        pub fn embed<F>(&mut self, f: F) -> &mut Self
1652        where
1653            F: for<'a> FnOnce(
1654                &'a mut crate::generated::all::builders::EmbedBuilder,
1655            ) -> &'a mut crate::generated::all::builders::EmbedBuilder,
1656        {
1657            let ty: crate::generated::all::Embed = Default::default();
1658            let mut ty_builder = crate::generated::all::builders::EmbedBuilder::new(ty);
1659            (f)(&mut ty_builder);
1660            let ty = ty_builder.build();
1661            self.element.children_mut().push(ty.into());
1662            self
1663        }
1664        /// Append a new `Emphasis` element
1665        pub fn emphasis<F>(&mut self, f: F) -> &mut Self
1666        where
1667            F: for<'a> FnOnce(
1668                &'a mut crate::generated::all::builders::EmphasisBuilder,
1669            ) -> &'a mut crate::generated::all::builders::EmphasisBuilder,
1670        {
1671            let ty: crate::generated::all::Emphasis = Default::default();
1672            let mut ty_builder = crate::generated::all::builders::EmphasisBuilder::new(
1673                ty,
1674            );
1675            (f)(&mut ty_builder);
1676            let ty = ty_builder.build();
1677            self.element.children_mut().push(ty.into());
1678            self
1679        }
1680        /// Append a new `Iframe` element
1681        pub fn iframe<F>(&mut self, f: F) -> &mut Self
1682        where
1683            F: for<'a> FnOnce(
1684                &'a mut crate::generated::all::builders::IframeBuilder,
1685            ) -> &'a mut crate::generated::all::builders::IframeBuilder,
1686        {
1687            let ty: crate::generated::all::Iframe = Default::default();
1688            let mut ty_builder = crate::generated::all::builders::IframeBuilder::new(ty);
1689            (f)(&mut ty_builder);
1690            let ty = ty_builder.build();
1691            self.element.children_mut().push(ty.into());
1692            self
1693        }
1694        /// Append a new `Image` element
1695        pub fn image<F>(&mut self, f: F) -> &mut Self
1696        where
1697            F: for<'a> FnOnce(
1698                &'a mut crate::generated::all::builders::ImageBuilder,
1699            ) -> &'a mut crate::generated::all::builders::ImageBuilder,
1700        {
1701            let ty: crate::generated::all::Image = Default::default();
1702            let mut ty_builder = crate::generated::all::builders::ImageBuilder::new(ty);
1703            (f)(&mut ty_builder);
1704            let ty = ty_builder.build();
1705            self.element.children_mut().push(ty.into());
1706            self
1707        }
1708        /// Append a new `ImageMap` element
1709        pub fn image_map<F>(&mut self, f: F) -> &mut Self
1710        where
1711            F: for<'a> FnOnce(
1712                &'a mut crate::generated::all::builders::ImageMapBuilder,
1713            ) -> &'a mut crate::generated::all::builders::ImageMapBuilder,
1714        {
1715            let ty: crate::generated::all::ImageMap = Default::default();
1716            let mut ty_builder = crate::generated::all::builders::ImageMapBuilder::new(
1717                ty,
1718            );
1719            (f)(&mut ty_builder);
1720            let ty = ty_builder.build();
1721            self.element.children_mut().push(ty.into());
1722            self
1723        }
1724        /// Append a new `ImageMapArea` element
1725        pub fn image_map_area<F>(&mut self, f: F) -> &mut Self
1726        where
1727            F: for<'a> FnOnce(
1728                &'a mut crate::generated::all::builders::ImageMapAreaBuilder,
1729            ) -> &'a mut crate::generated::all::builders::ImageMapAreaBuilder,
1730        {
1731            let ty: crate::generated::all::ImageMapArea = Default::default();
1732            let mut ty_builder = crate::generated::all::builders::ImageMapAreaBuilder::new(
1733                ty,
1734            );
1735            (f)(&mut ty_builder);
1736            let ty = ty_builder.build();
1737            self.element.children_mut().push(ty.into());
1738            self
1739        }
1740        /// Append a new `Input` element
1741        pub fn input<F>(&mut self, f: F) -> &mut Self
1742        where
1743            F: for<'a> FnOnce(
1744                &'a mut crate::generated::all::builders::InputBuilder,
1745            ) -> &'a mut crate::generated::all::builders::InputBuilder,
1746        {
1747            let ty: crate::generated::all::Input = Default::default();
1748            let mut ty_builder = crate::generated::all::builders::InputBuilder::new(ty);
1749            (f)(&mut ty_builder);
1750            let ty = ty_builder.build();
1751            self.element.children_mut().push(ty.into());
1752            self
1753        }
1754        /// Append a new `InsertedText` element
1755        pub fn inserted_text<F>(&mut self, f: F) -> &mut Self
1756        where
1757            F: for<'a> FnOnce(
1758                &'a mut crate::generated::all::builders::InsertedTextBuilder,
1759            ) -> &'a mut crate::generated::all::builders::InsertedTextBuilder,
1760        {
1761            let ty: crate::generated::all::InsertedText = Default::default();
1762            let mut ty_builder = crate::generated::all::builders::InsertedTextBuilder::new(
1763                ty,
1764            );
1765            (f)(&mut ty_builder);
1766            let ty = ty_builder.build();
1767            self.element.children_mut().push(ty.into());
1768            self
1769        }
1770        /// Append a new `Italic` element
1771        pub fn italic<F>(&mut self, f: F) -> &mut Self
1772        where
1773            F: for<'a> FnOnce(
1774                &'a mut crate::generated::all::builders::ItalicBuilder,
1775            ) -> &'a mut crate::generated::all::builders::ItalicBuilder,
1776        {
1777            let ty: crate::generated::all::Italic = Default::default();
1778            let mut ty_builder = crate::generated::all::builders::ItalicBuilder::new(ty);
1779            (f)(&mut ty_builder);
1780            let ty = ty_builder.build();
1781            self.element.children_mut().push(ty.into());
1782            self
1783        }
1784        /// Append a new `KeyboardInput` element
1785        pub fn keyboard_input<F>(&mut self, f: F) -> &mut Self
1786        where
1787            F: for<'a> FnOnce(
1788                &'a mut crate::generated::all::builders::KeyboardInputBuilder,
1789            ) -> &'a mut crate::generated::all::builders::KeyboardInputBuilder,
1790        {
1791            let ty: crate::generated::all::KeyboardInput = Default::default();
1792            let mut ty_builder = crate::generated::all::builders::KeyboardInputBuilder::new(
1793                ty,
1794            );
1795            (f)(&mut ty_builder);
1796            let ty = ty_builder.build();
1797            self.element.children_mut().push(ty.into());
1798            self
1799        }
1800        /// Append a new `Label` element
1801        pub fn label<F>(&mut self, f: F) -> &mut Self
1802        where
1803            F: for<'a> FnOnce(
1804                &'a mut crate::generated::all::builders::LabelBuilder,
1805            ) -> &'a mut crate::generated::all::builders::LabelBuilder,
1806        {
1807            let ty: crate::generated::all::Label = Default::default();
1808            let mut ty_builder = crate::generated::all::builders::LabelBuilder::new(ty);
1809            (f)(&mut ty_builder);
1810            let ty = ty_builder.build();
1811            self.element.children_mut().push(ty.into());
1812            self
1813        }
1814        /// Append a new `LineBreak` element
1815        pub fn line_break<F>(&mut self, f: F) -> &mut Self
1816        where
1817            F: for<'a> FnOnce(
1818                &'a mut crate::generated::all::builders::LineBreakBuilder,
1819            ) -> &'a mut crate::generated::all::builders::LineBreakBuilder,
1820        {
1821            let ty: crate::generated::all::LineBreak = Default::default();
1822            let mut ty_builder = crate::generated::all::builders::LineBreakBuilder::new(
1823                ty,
1824            );
1825            (f)(&mut ty_builder);
1826            let ty = ty_builder.build();
1827            self.element.children_mut().push(ty.into());
1828            self
1829        }
1830        /// Append a new `LineBreakOpportunity` element
1831        pub fn line_break_opportunity<F>(&mut self, f: F) -> &mut Self
1832        where
1833            F: for<'a> FnOnce(
1834                &'a mut crate::generated::all::builders::LineBreakOpportunityBuilder,
1835            ) -> &'a mut crate::generated::all::builders::LineBreakOpportunityBuilder,
1836        {
1837            let ty: crate::generated::all::LineBreakOpportunity = Default::default();
1838            let mut ty_builder = crate::generated::all::builders::LineBreakOpportunityBuilder::new(
1839                ty,
1840            );
1841            (f)(&mut ty_builder);
1842            let ty = ty_builder.build();
1843            self.element.children_mut().push(ty.into());
1844            self
1845        }
1846        /// Append a new `Link` element
1847        pub fn link<F>(&mut self, f: F) -> &mut Self
1848        where
1849            F: for<'a> FnOnce(
1850                &'a mut crate::generated::all::builders::LinkBuilder,
1851            ) -> &'a mut crate::generated::all::builders::LinkBuilder,
1852        {
1853            let ty: crate::generated::all::Link = Default::default();
1854            let mut ty_builder = crate::generated::all::builders::LinkBuilder::new(ty);
1855            (f)(&mut ty_builder);
1856            let ty = ty_builder.build();
1857            self.element.children_mut().push(ty.into());
1858            self
1859        }
1860        /// Append a new `MarkText` element
1861        pub fn mark_text<F>(&mut self, f: F) -> &mut Self
1862        where
1863            F: for<'a> FnOnce(
1864                &'a mut crate::generated::all::builders::MarkTextBuilder,
1865            ) -> &'a mut crate::generated::all::builders::MarkTextBuilder,
1866        {
1867            let ty: crate::generated::all::MarkText = Default::default();
1868            let mut ty_builder = crate::generated::all::builders::MarkTextBuilder::new(
1869                ty,
1870            );
1871            (f)(&mut ty_builder);
1872            let ty = ty_builder.build();
1873            self.element.children_mut().push(ty.into());
1874            self
1875        }
1876        /// Append a new `Meta` element
1877        pub fn meta<F>(&mut self, f: F) -> &mut Self
1878        where
1879            F: for<'a> FnOnce(
1880                &'a mut crate::generated::all::builders::MetaBuilder,
1881            ) -> &'a mut crate::generated::all::builders::MetaBuilder,
1882        {
1883            let ty: crate::generated::all::Meta = Default::default();
1884            let mut ty_builder = crate::generated::all::builders::MetaBuilder::new(ty);
1885            (f)(&mut ty_builder);
1886            let ty = ty_builder.build();
1887            self.element.children_mut().push(ty.into());
1888            self
1889        }
1890        /// Append a new `Meter` element
1891        pub fn meter<F>(&mut self, f: F) -> &mut Self
1892        where
1893            F: for<'a> FnOnce(
1894                &'a mut crate::generated::all::builders::MeterBuilder,
1895            ) -> &'a mut crate::generated::all::builders::MeterBuilder,
1896        {
1897            let ty: crate::generated::all::Meter = Default::default();
1898            let mut ty_builder = crate::generated::all::builders::MeterBuilder::new(ty);
1899            (f)(&mut ty_builder);
1900            let ty = ty_builder.build();
1901            self.element.children_mut().push(ty.into());
1902            self
1903        }
1904        /// Append a new `NoScript` element
1905        pub fn no_script<F>(&mut self, f: F) -> &mut Self
1906        where
1907            F: for<'a> FnOnce(
1908                &'a mut crate::generated::all::builders::NoScriptBuilder,
1909            ) -> &'a mut crate::generated::all::builders::NoScriptBuilder,
1910        {
1911            let ty: crate::generated::all::NoScript = Default::default();
1912            let mut ty_builder = crate::generated::all::builders::NoScriptBuilder::new(
1913                ty,
1914            );
1915            (f)(&mut ty_builder);
1916            let ty = ty_builder.build();
1917            self.element.children_mut().push(ty.into());
1918            self
1919        }
1920        /// Append a new `Object` element
1921        pub fn object<F>(&mut self, f: F) -> &mut Self
1922        where
1923            F: for<'a> FnOnce(
1924                &'a mut crate::generated::all::builders::ObjectBuilder,
1925            ) -> &'a mut crate::generated::all::builders::ObjectBuilder,
1926        {
1927            let ty: crate::generated::all::Object = Default::default();
1928            let mut ty_builder = crate::generated::all::builders::ObjectBuilder::new(ty);
1929            (f)(&mut ty_builder);
1930            let ty = ty_builder.build();
1931            self.element.children_mut().push(ty.into());
1932            self
1933        }
1934        /// Append a new `Output` element
1935        pub fn output<F>(&mut self, f: F) -> &mut Self
1936        where
1937            F: for<'a> FnOnce(
1938                &'a mut crate::generated::all::builders::OutputBuilder,
1939            ) -> &'a mut crate::generated::all::builders::OutputBuilder,
1940        {
1941            let ty: crate::generated::all::Output = Default::default();
1942            let mut ty_builder = crate::generated::all::builders::OutputBuilder::new(ty);
1943            (f)(&mut ty_builder);
1944            let ty = ty_builder.build();
1945            self.element.children_mut().push(ty.into());
1946            self
1947        }
1948        /// Append a new `Picture` element
1949        pub fn picture<F>(&mut self, f: F) -> &mut Self
1950        where
1951            F: for<'a> FnOnce(
1952                &'a mut crate::generated::all::builders::PictureBuilder,
1953            ) -> &'a mut crate::generated::all::builders::PictureBuilder,
1954        {
1955            let ty: crate::generated::all::Picture = Default::default();
1956            let mut ty_builder = crate::generated::all::builders::PictureBuilder::new(
1957                ty,
1958            );
1959            (f)(&mut ty_builder);
1960            let ty = ty_builder.build();
1961            self.element.children_mut().push(ty.into());
1962            self
1963        }
1964        /// Append a new `Progress` element
1965        pub fn progress<F>(&mut self, f: F) -> &mut Self
1966        where
1967            F: for<'a> FnOnce(
1968                &'a mut crate::generated::all::builders::ProgressBuilder,
1969            ) -> &'a mut crate::generated::all::builders::ProgressBuilder,
1970        {
1971            let ty: crate::generated::all::Progress = Default::default();
1972            let mut ty_builder = crate::generated::all::builders::ProgressBuilder::new(
1973                ty,
1974            );
1975            (f)(&mut ty_builder);
1976            let ty = ty_builder.build();
1977            self.element.children_mut().push(ty.into());
1978            self
1979        }
1980        /// Append a new `Quotation` element
1981        pub fn quotation<F>(&mut self, f: F) -> &mut Self
1982        where
1983            F: for<'a> FnOnce(
1984                &'a mut crate::generated::all::builders::QuotationBuilder,
1985            ) -> &'a mut crate::generated::all::builders::QuotationBuilder,
1986        {
1987            let ty: crate::generated::all::Quotation = Default::default();
1988            let mut ty_builder = crate::generated::all::builders::QuotationBuilder::new(
1989                ty,
1990            );
1991            (f)(&mut ty_builder);
1992            let ty = ty_builder.build();
1993            self.element.children_mut().push(ty.into());
1994            self
1995        }
1996        /// Append a new `RubyAnnotation` element
1997        pub fn ruby_annotation<F>(&mut self, f: F) -> &mut Self
1998        where
1999            F: for<'a> FnOnce(
2000                &'a mut crate::generated::all::builders::RubyAnnotationBuilder,
2001            ) -> &'a mut crate::generated::all::builders::RubyAnnotationBuilder,
2002        {
2003            let ty: crate::generated::all::RubyAnnotation = Default::default();
2004            let mut ty_builder = crate::generated::all::builders::RubyAnnotationBuilder::new(
2005                ty,
2006            );
2007            (f)(&mut ty_builder);
2008            let ty = ty_builder.build();
2009            self.element.children_mut().push(ty.into());
2010            self
2011        }
2012        /// Append a new `SampleOutput` element
2013        pub fn sample_output<F>(&mut self, f: F) -> &mut Self
2014        where
2015            F: for<'a> FnOnce(
2016                &'a mut crate::generated::all::builders::SampleOutputBuilder,
2017            ) -> &'a mut crate::generated::all::builders::SampleOutputBuilder,
2018        {
2019            let ty: crate::generated::all::SampleOutput = Default::default();
2020            let mut ty_builder = crate::generated::all::builders::SampleOutputBuilder::new(
2021                ty,
2022            );
2023            (f)(&mut ty_builder);
2024            let ty = ty_builder.build();
2025            self.element.children_mut().push(ty.into());
2026            self
2027        }
2028        /// Append a new `Script` element
2029        pub fn script<F>(&mut self, f: F) -> &mut Self
2030        where
2031            F: for<'a> FnOnce(
2032                &'a mut crate::generated::all::builders::ScriptBuilder,
2033            ) -> &'a mut crate::generated::all::builders::ScriptBuilder,
2034        {
2035            let ty: crate::generated::all::Script = Default::default();
2036            let mut ty_builder = crate::generated::all::builders::ScriptBuilder::new(ty);
2037            (f)(&mut ty_builder);
2038            let ty = ty_builder.build();
2039            self.element.children_mut().push(ty.into());
2040            self
2041        }
2042        /// Append a new `Select` element
2043        pub fn select<F>(&mut self, f: F) -> &mut Self
2044        where
2045            F: for<'a> FnOnce(
2046                &'a mut crate::generated::all::builders::SelectBuilder,
2047            ) -> &'a mut crate::generated::all::builders::SelectBuilder,
2048        {
2049            let ty: crate::generated::all::Select = Default::default();
2050            let mut ty_builder = crate::generated::all::builders::SelectBuilder::new(ty);
2051            (f)(&mut ty_builder);
2052            let ty = ty_builder.build();
2053            self.element.children_mut().push(ty.into());
2054            self
2055        }
2056        /// Append a new `SideComment` element
2057        pub fn side_comment<F>(&mut self, f: F) -> &mut Self
2058        where
2059            F: for<'a> FnOnce(
2060                &'a mut crate::generated::all::builders::SideCommentBuilder,
2061            ) -> &'a mut crate::generated::all::builders::SideCommentBuilder,
2062        {
2063            let ty: crate::generated::all::SideComment = Default::default();
2064            let mut ty_builder = crate::generated::all::builders::SideCommentBuilder::new(
2065                ty,
2066            );
2067            (f)(&mut ty_builder);
2068            let ty = ty_builder.build();
2069            self.element.children_mut().push(ty.into());
2070            self
2071        }
2072        /// Append a new `Slot` element
2073        pub fn slot<F>(&mut self, f: F) -> &mut Self
2074        where
2075            F: for<'a> FnOnce(
2076                &'a mut crate::generated::all::builders::SlotBuilder,
2077            ) -> &'a mut crate::generated::all::builders::SlotBuilder,
2078        {
2079            let ty: crate::generated::all::Slot = Default::default();
2080            let mut ty_builder = crate::generated::all::builders::SlotBuilder::new(ty);
2081            (f)(&mut ty_builder);
2082            let ty = ty_builder.build();
2083            self.element.children_mut().push(ty.into());
2084            self
2085        }
2086        /// Append a new `Span` element
2087        pub fn span<F>(&mut self, f: F) -> &mut Self
2088        where
2089            F: for<'a> FnOnce(
2090                &'a mut crate::generated::all::builders::SpanBuilder,
2091            ) -> &'a mut crate::generated::all::builders::SpanBuilder,
2092        {
2093            let ty: crate::generated::all::Span = Default::default();
2094            let mut ty_builder = crate::generated::all::builders::SpanBuilder::new(ty);
2095            (f)(&mut ty_builder);
2096            let ty = ty_builder.build();
2097            self.element.children_mut().push(ty.into());
2098            self
2099        }
2100        /// Append a new `StrikeThrough` element
2101        pub fn strike_through<F>(&mut self, f: F) -> &mut Self
2102        where
2103            F: for<'a> FnOnce(
2104                &'a mut crate::generated::all::builders::StrikeThroughBuilder,
2105            ) -> &'a mut crate::generated::all::builders::StrikeThroughBuilder,
2106        {
2107            let ty: crate::generated::all::StrikeThrough = Default::default();
2108            let mut ty_builder = crate::generated::all::builders::StrikeThroughBuilder::new(
2109                ty,
2110            );
2111            (f)(&mut ty_builder);
2112            let ty = ty_builder.build();
2113            self.element.children_mut().push(ty.into());
2114            self
2115        }
2116        /// Append a new `Strong` element
2117        pub fn strong<F>(&mut self, f: F) -> &mut Self
2118        where
2119            F: for<'a> FnOnce(
2120                &'a mut crate::generated::all::builders::StrongBuilder,
2121            ) -> &'a mut crate::generated::all::builders::StrongBuilder,
2122        {
2123            let ty: crate::generated::all::Strong = Default::default();
2124            let mut ty_builder = crate::generated::all::builders::StrongBuilder::new(ty);
2125            (f)(&mut ty_builder);
2126            let ty = ty_builder.build();
2127            self.element.children_mut().push(ty.into());
2128            self
2129        }
2130        /// Append a new `SubScript` element
2131        pub fn sub_script<F>(&mut self, f: F) -> &mut Self
2132        where
2133            F: for<'a> FnOnce(
2134                &'a mut crate::generated::all::builders::SubScriptBuilder,
2135            ) -> &'a mut crate::generated::all::builders::SubScriptBuilder,
2136        {
2137            let ty: crate::generated::all::SubScript = Default::default();
2138            let mut ty_builder = crate::generated::all::builders::SubScriptBuilder::new(
2139                ty,
2140            );
2141            (f)(&mut ty_builder);
2142            let ty = ty_builder.build();
2143            self.element.children_mut().push(ty.into());
2144            self
2145        }
2146        /// Append a new `SuperScript` element
2147        pub fn super_script<F>(&mut self, f: F) -> &mut Self
2148        where
2149            F: for<'a> FnOnce(
2150                &'a mut crate::generated::all::builders::SuperScriptBuilder,
2151            ) -> &'a mut crate::generated::all::builders::SuperScriptBuilder,
2152        {
2153            let ty: crate::generated::all::SuperScript = Default::default();
2154            let mut ty_builder = crate::generated::all::builders::SuperScriptBuilder::new(
2155                ty,
2156            );
2157            (f)(&mut ty_builder);
2158            let ty = ty_builder.build();
2159            self.element.children_mut().push(ty.into());
2160            self
2161        }
2162        /// Append a new `Template` element
2163        pub fn template<F>(&mut self, f: F) -> &mut Self
2164        where
2165            F: for<'a> FnOnce(
2166                &'a mut crate::generated::all::builders::TemplateBuilder,
2167            ) -> &'a mut crate::generated::all::builders::TemplateBuilder,
2168        {
2169            let ty: crate::generated::all::Template = Default::default();
2170            let mut ty_builder = crate::generated::all::builders::TemplateBuilder::new(
2171                ty,
2172            );
2173            (f)(&mut ty_builder);
2174            let ty = ty_builder.build();
2175            self.element.children_mut().push(ty.into());
2176            self
2177        }
2178        /// Append a new text element.
2179        pub fn text(
2180            &mut self,
2181            s: impl Into<std::borrow::Cow<'static, str>>,
2182        ) -> &mut Self {
2183            let cow = s.into();
2184            self.element.children_mut().push(cow.into());
2185            self
2186        }
2187        /// Append a new `TextArea` element
2188        pub fn text_area<F>(&mut self, f: F) -> &mut Self
2189        where
2190            F: for<'a> FnOnce(
2191                &'a mut crate::generated::all::builders::TextAreaBuilder,
2192            ) -> &'a mut crate::generated::all::builders::TextAreaBuilder,
2193        {
2194            let ty: crate::generated::all::TextArea = Default::default();
2195            let mut ty_builder = crate::generated::all::builders::TextAreaBuilder::new(
2196                ty,
2197            );
2198            (f)(&mut ty_builder);
2199            let ty = ty_builder.build();
2200            self.element.children_mut().push(ty.into());
2201            self
2202        }
2203        /// Append a new `Time` element
2204        pub fn time<F>(&mut self, f: F) -> &mut Self
2205        where
2206            F: for<'a> FnOnce(
2207                &'a mut crate::generated::all::builders::TimeBuilder,
2208            ) -> &'a mut crate::generated::all::builders::TimeBuilder,
2209        {
2210            let ty: crate::generated::all::Time = Default::default();
2211            let mut ty_builder = crate::generated::all::builders::TimeBuilder::new(ty);
2212            (f)(&mut ty_builder);
2213            let ty = ty_builder.build();
2214            self.element.children_mut().push(ty.into());
2215            self
2216        }
2217        /// Append a new `Underline` element
2218        pub fn underline<F>(&mut self, f: F) -> &mut Self
2219        where
2220            F: for<'a> FnOnce(
2221                &'a mut crate::generated::all::builders::UnderlineBuilder,
2222            ) -> &'a mut crate::generated::all::builders::UnderlineBuilder,
2223        {
2224            let ty: crate::generated::all::Underline = Default::default();
2225            let mut ty_builder = crate::generated::all::builders::UnderlineBuilder::new(
2226                ty,
2227            );
2228            (f)(&mut ty_builder);
2229            let ty = ty_builder.build();
2230            self.element.children_mut().push(ty.into());
2231            self
2232        }
2233        /// Append a new `Variable` element
2234        pub fn variable<F>(&mut self, f: F) -> &mut Self
2235        where
2236            F: for<'a> FnOnce(
2237                &'a mut crate::generated::all::builders::VariableBuilder,
2238            ) -> &'a mut crate::generated::all::builders::VariableBuilder,
2239        {
2240            let ty: crate::generated::all::Variable = Default::default();
2241            let mut ty_builder = crate::generated::all::builders::VariableBuilder::new(
2242                ty,
2243            );
2244            (f)(&mut ty_builder);
2245            let ty = ty_builder.build();
2246            self.element.children_mut().push(ty.into());
2247            self
2248        }
2249        /// Append a new `Video` element
2250        pub fn video<F>(&mut self, f: F) -> &mut Self
2251        where
2252            F: for<'a> FnOnce(
2253                &'a mut crate::generated::all::builders::VideoBuilder,
2254            ) -> &'a mut crate::generated::all::builders::VideoBuilder,
2255        {
2256            let ty: crate::generated::all::Video = Default::default();
2257            let mut ty_builder = crate::generated::all::builders::VideoBuilder::new(ty);
2258            (f)(&mut ty_builder);
2259            let ty = ty_builder.build();
2260            self.element.children_mut().push(ty.into());
2261            self
2262        }
2263        /// Set the value of the `value` attribute
2264        pub fn value(
2265            &mut self,
2266            value: impl Into<std::borrow::Cow<'static, str>>,
2267        ) -> &mut Self {
2268            self.element.set_value(Some(value.into()));
2269            self
2270        }
2271        /// Set the value of the `role` attribute
2272        pub fn role(
2273            &mut self,
2274            value: impl Into<std::borrow::Cow<'static, str>>,
2275        ) -> &mut Self {
2276            self.element.set_role(Some(value.into()));
2277            self
2278        }
2279        /// Set the value of the `aria-activedescendant` attribute
2280        pub fn aria_active_descendant_element(
2281            &mut self,
2282            value: impl Into<std::borrow::Cow<'static, str>>,
2283        ) -> &mut Self {
2284            self.element.set_aria_active_descendant_element(Some(value.into()));
2285            self
2286        }
2287        /// Set the value of the `aria-atomic` attribute
2288        pub fn aria_atomic(&mut self, value: bool) -> &mut Self {
2289            self.element.set_aria_atomic(value);
2290            self
2291        }
2292        /// Set the value of the `aria-autocomplete` attribute
2293        pub fn aria_auto_complete(
2294            &mut self,
2295            value: impl Into<std::borrow::Cow<'static, str>>,
2296        ) -> &mut Self {
2297            self.element.set_aria_auto_complete(Some(value.into()));
2298            self
2299        }
2300        /// Set the value of the `aria-brailleroledescription` attribute
2301        pub fn aria_braille_role_description(
2302            &mut self,
2303            value: impl Into<std::borrow::Cow<'static, str>>,
2304        ) -> &mut Self {
2305            self.element.set_aria_braille_role_description(Some(value.into()));
2306            self
2307        }
2308        /// Set the value of the `aria-busy` attribute
2309        pub fn aria_busy(&mut self, value: bool) -> &mut Self {
2310            self.element.set_aria_busy(value);
2311            self
2312        }
2313        /// Set the value of the `aria-checked` attribute
2314        pub fn aria_checked(
2315            &mut self,
2316            value: impl Into<std::borrow::Cow<'static, str>>,
2317        ) -> &mut Self {
2318            self.element.set_aria_checked(Some(value.into()));
2319            self
2320        }
2321        /// Set the value of the `aria-colcount` attribute
2322        pub fn aria_col_count(&mut self, value: i64) -> &mut Self {
2323            self.element.set_aria_col_count(Some(value));
2324            self
2325        }
2326        /// Set the value of the `aria-colindex` attribute
2327        pub fn aria_col_index(&mut self, value: i64) -> &mut Self {
2328            self.element.set_aria_col_index(Some(value));
2329            self
2330        }
2331        /// Set the value of the `aria-colindextext` attribute
2332        pub fn aria_col_index_text(
2333            &mut self,
2334            value: impl Into<std::borrow::Cow<'static, str>>,
2335        ) -> &mut Self {
2336            self.element.set_aria_col_index_text(Some(value.into()));
2337            self
2338        }
2339        /// Set the value of the `aria-colspan` attribute
2340        pub fn aria_col_span(&mut self, value: i64) -> &mut Self {
2341            self.element.set_aria_col_span(Some(value));
2342            self
2343        }
2344        /// Set the value of the `aria-controls` attribute
2345        pub fn aria_controls_elements(
2346            &mut self,
2347            value: impl Into<std::borrow::Cow<'static, str>>,
2348        ) -> &mut Self {
2349            self.element.set_aria_controls_elements(Some(value.into()));
2350            self
2351        }
2352        /// Set the value of the `aria-current` attribute
2353        pub fn aria_current(
2354            &mut self,
2355            value: impl Into<std::borrow::Cow<'static, str>>,
2356        ) -> &mut Self {
2357            self.element.set_aria_current(Some(value.into()));
2358            self
2359        }
2360        /// Set the value of the `aria-describedby` attribute
2361        pub fn aria_described_by_elements(
2362            &mut self,
2363            value: impl Into<std::borrow::Cow<'static, str>>,
2364        ) -> &mut Self {
2365            self.element.set_aria_described_by_elements(Some(value.into()));
2366            self
2367        }
2368        /// Set the value of the `aria-description` attribute
2369        pub fn aria_description(
2370            &mut self,
2371            value: impl Into<std::borrow::Cow<'static, str>>,
2372        ) -> &mut Self {
2373            self.element.set_aria_description(Some(value.into()));
2374            self
2375        }
2376        /// Set the value of the `aria-details` attribute
2377        pub fn aria_details_elements(
2378            &mut self,
2379            value: impl Into<std::borrow::Cow<'static, str>>,
2380        ) -> &mut Self {
2381            self.element.set_aria_details_elements(Some(value.into()));
2382            self
2383        }
2384        /// Set the value of the `aria-disabled` attribute
2385        pub fn aria_disabled(&mut self, value: bool) -> &mut Self {
2386            self.element.set_aria_disabled(value);
2387            self
2388        }
2389        /// Set the value of the `aria-dropeffect` attribute
2390        pub fn aria_drop_effect(
2391            &mut self,
2392            value: impl Into<std::borrow::Cow<'static, str>>,
2393        ) -> &mut Self {
2394            self.element.set_aria_drop_effect(Some(value.into()));
2395            self
2396        }
2397        /// Set the value of the `aria-errormessage` attribute
2398        pub fn aria_error_message_elements(
2399            &mut self,
2400            value: impl Into<std::borrow::Cow<'static, str>>,
2401        ) -> &mut Self {
2402            self.element.set_aria_error_message_elements(Some(value.into()));
2403            self
2404        }
2405        /// Set the value of the `aria-expanded` attribute
2406        pub fn aria_expanded(&mut self, value: bool) -> &mut Self {
2407            self.element.set_aria_expanded(value);
2408            self
2409        }
2410        /// Set the value of the `aria-flowto` attribute
2411        pub fn aria_flow_to_elements(
2412            &mut self,
2413            value: impl Into<std::borrow::Cow<'static, str>>,
2414        ) -> &mut Self {
2415            self.element.set_aria_flow_to_elements(Some(value.into()));
2416            self
2417        }
2418        /// Set the value of the `aria-grabbed` attribute
2419        pub fn aria_grabbed(&mut self, value: bool) -> &mut Self {
2420            self.element.set_aria_grabbed(value);
2421            self
2422        }
2423        /// Set the value of the `aria-haspopup` attribute
2424        pub fn aria_has_popup(
2425            &mut self,
2426            value: impl Into<std::borrow::Cow<'static, str>>,
2427        ) -> &mut Self {
2428            self.element.set_aria_has_popup(Some(value.into()));
2429            self
2430        }
2431        /// Set the value of the `aria-hidden` attribute
2432        pub fn aria_hidden(&mut self, value: bool) -> &mut Self {
2433            self.element.set_aria_hidden(value);
2434            self
2435        }
2436        /// Set the value of the `aria-invalid` attribute
2437        pub fn aria_invalid(
2438            &mut self,
2439            value: impl Into<std::borrow::Cow<'static, str>>,
2440        ) -> &mut Self {
2441            self.element.set_aria_invalid(Some(value.into()));
2442            self
2443        }
2444        /// Set the value of the `aria-keyshortcuts` attribute
2445        pub fn aria_key_shortcuts(
2446            &mut self,
2447            value: impl Into<std::borrow::Cow<'static, str>>,
2448        ) -> &mut Self {
2449            self.element.set_aria_key_shortcuts(Some(value.into()));
2450            self
2451        }
2452        /// Set the value of the `aria-level` attribute
2453        pub fn aria_level(&mut self, value: i64) -> &mut Self {
2454            self.element.set_aria_level(Some(value));
2455            self
2456        }
2457        /// Set the value of the `aria-live` attribute
2458        pub fn aria_live(
2459            &mut self,
2460            value: impl Into<std::borrow::Cow<'static, str>>,
2461        ) -> &mut Self {
2462            self.element.set_aria_live(Some(value.into()));
2463            self
2464        }
2465        /// Set the value of the `aria-modal` attribute
2466        pub fn aria_modal(&mut self, value: bool) -> &mut Self {
2467            self.element.set_aria_modal(value);
2468            self
2469        }
2470        /// Set the value of the `aria-multiline` attribute
2471        pub fn aria_multi_line(&mut self, value: bool) -> &mut Self {
2472            self.element.set_aria_multi_line(value);
2473            self
2474        }
2475        /// Set the value of the `aria-multiselectable` attribute
2476        pub fn aria_multi_selectable(&mut self, value: bool) -> &mut Self {
2477            self.element.set_aria_multi_selectable(value);
2478            self
2479        }
2480        /// Set the value of the `aria-orientation` attribute
2481        pub fn aria_orientation(
2482            &mut self,
2483            value: impl Into<std::borrow::Cow<'static, str>>,
2484        ) -> &mut Self {
2485            self.element.set_aria_orientation(Some(value.into()));
2486            self
2487        }
2488        /// Set the value of the `aria-owns` attribute
2489        pub fn aria_owns_elements(
2490            &mut self,
2491            value: impl Into<std::borrow::Cow<'static, str>>,
2492        ) -> &mut Self {
2493            self.element.set_aria_owns_elements(Some(value.into()));
2494            self
2495        }
2496        /// Set the value of the `aria-placeholder` attribute
2497        pub fn aria_placeholder(
2498            &mut self,
2499            value: impl Into<std::borrow::Cow<'static, str>>,
2500        ) -> &mut Self {
2501            self.element.set_aria_placeholder(Some(value.into()));
2502            self
2503        }
2504        /// Set the value of the `aria-posinset` attribute
2505        pub fn aria_pos_in_set(&mut self, value: i64) -> &mut Self {
2506            self.element.set_aria_pos_in_set(Some(value));
2507            self
2508        }
2509        /// Set the value of the `aria-pressed` attribute
2510        pub fn aria_pressed(
2511            &mut self,
2512            value: impl Into<std::borrow::Cow<'static, str>>,
2513        ) -> &mut Self {
2514            self.element.set_aria_pressed(Some(value.into()));
2515            self
2516        }
2517        /// Set the value of the `aria-readonly` attribute
2518        pub fn aria_read_only(&mut self, value: bool) -> &mut Self {
2519            self.element.set_aria_read_only(value);
2520            self
2521        }
2522        /// Set the value of the `aria-relevant` attribute
2523        pub fn aria_relevant(
2524            &mut self,
2525            value: impl Into<std::borrow::Cow<'static, str>>,
2526        ) -> &mut Self {
2527            self.element.set_aria_relevant(Some(value.into()));
2528            self
2529        }
2530        /// Set the value of the `aria-required` attribute
2531        pub fn aria_required(&mut self, value: bool) -> &mut Self {
2532            self.element.set_aria_required(value);
2533            self
2534        }
2535        /// Set the value of the `aria-roledescription` attribute
2536        pub fn aria_role_description(
2537            &mut self,
2538            value: impl Into<std::borrow::Cow<'static, str>>,
2539        ) -> &mut Self {
2540            self.element.set_aria_role_description(Some(value.into()));
2541            self
2542        }
2543        /// Set the value of the `aria-rowcount` attribute
2544        pub fn aria_row_count(&mut self, value: i64) -> &mut Self {
2545            self.element.set_aria_row_count(Some(value));
2546            self
2547        }
2548        /// Set the value of the `aria-rowindex` attribute
2549        pub fn aria_row_index(&mut self, value: i64) -> &mut Self {
2550            self.element.set_aria_row_index(Some(value));
2551            self
2552        }
2553        /// Set the value of the `aria-rowindextext` attribute
2554        pub fn aria_row_index_text(
2555            &mut self,
2556            value: impl Into<std::borrow::Cow<'static, str>>,
2557        ) -> &mut Self {
2558            self.element.set_aria_row_index_text(Some(value.into()));
2559            self
2560        }
2561        /// Set the value of the `aria-rowspan` attribute
2562        pub fn aria_row_span(&mut self, value: i64) -> &mut Self {
2563            self.element.set_aria_row_span(Some(value));
2564            self
2565        }
2566        /// Set the value of the `aria-selected` attribute
2567        pub fn aria_selected(&mut self, value: bool) -> &mut Self {
2568            self.element.set_aria_selected(value);
2569            self
2570        }
2571        /// Set the value of the `aria-setsize` attribute
2572        pub fn aria_set_size(&mut self, value: i64) -> &mut Self {
2573            self.element.set_aria_set_size(Some(value));
2574            self
2575        }
2576        /// Set the value of the `aria-sort` attribute
2577        pub fn aria_sort(
2578            &mut self,
2579            value: impl Into<std::borrow::Cow<'static, str>>,
2580        ) -> &mut Self {
2581            self.element.set_aria_sort(Some(value.into()));
2582            self
2583        }
2584        /// Set the value of the `aria-valuemax` attribute
2585        pub fn aria_value_max(&mut self, value: f64) -> &mut Self {
2586            self.element.set_aria_value_max(Some(value));
2587            self
2588        }
2589        /// Set the value of the `aria-valuemin` attribute
2590        pub fn aria_value_min(&mut self, value: f64) -> &mut Self {
2591            self.element.set_aria_value_min(Some(value));
2592            self
2593        }
2594        /// Set the value of the `aria-valuenow` attribute
2595        pub fn aria_value_now(&mut self, value: f64) -> &mut Self {
2596            self.element.set_aria_value_now(Some(value));
2597            self
2598        }
2599        /// Set the value of the `aria-valuetext` attribute
2600        pub fn aria_value_text(
2601            &mut self,
2602            value: impl Into<std::borrow::Cow<'static, str>>,
2603        ) -> &mut Self {
2604            self.element.set_aria_value_text(Some(value.into()));
2605            self
2606        }
2607        /// Set the value of the `accesskey` attribute
2608        pub fn access_key(
2609            &mut self,
2610            value: impl Into<std::borrow::Cow<'static, str>>,
2611        ) -> &mut Self {
2612            self.element.set_access_key(Some(value.into()));
2613            self
2614        }
2615        /// Set the value of the `autocapitalize` attribute
2616        pub fn auto_capitalize(
2617            &mut self,
2618            value: impl Into<std::borrow::Cow<'static, str>>,
2619        ) -> &mut Self {
2620            self.element.set_auto_capitalize(Some(value.into()));
2621            self
2622        }
2623        /// Set the value of the `autofocus` attribute
2624        pub fn autofocus(&mut self, value: bool) -> &mut Self {
2625            self.element.set_autofocus(value);
2626            self
2627        }
2628        /// Set the value of the `class` attribute
2629        pub fn class(
2630            &mut self,
2631            value: impl Into<std::borrow::Cow<'static, str>>,
2632        ) -> &mut Self {
2633            self.element.set_class(Some(value.into()));
2634            self
2635        }
2636        /// Set the value of the `contenteditable` attribute
2637        pub fn content_editable(
2638            &mut self,
2639            value: impl Into<std::borrow::Cow<'static, str>>,
2640        ) -> &mut Self {
2641            self.element.set_content_editable(Some(value.into()));
2642            self
2643        }
2644        /// Set the value of the `dir` attribute
2645        pub fn direction(
2646            &mut self,
2647            value: impl Into<std::borrow::Cow<'static, str>>,
2648        ) -> &mut Self {
2649            self.element.set_direction(Some(value.into()));
2650            self
2651        }
2652        /// Set the value of the `draggable` attribute
2653        pub fn draggable(&mut self, value: bool) -> &mut Self {
2654            self.element.set_draggable(value);
2655            self
2656        }
2657        /// Set the value of the `enterkeyhint` attribute
2658        pub fn enter_key_hint(
2659            &mut self,
2660            value: impl Into<std::borrow::Cow<'static, str>>,
2661        ) -> &mut Self {
2662            self.element.set_enter_key_hint(Some(value.into()));
2663            self
2664        }
2665        /// Set the value of the `exportparts` attribute
2666        pub fn export_parts(
2667            &mut self,
2668            value: impl Into<std::borrow::Cow<'static, str>>,
2669        ) -> &mut Self {
2670            self.element.set_export_parts(Some(value.into()));
2671            self
2672        }
2673        /// Set the value of the `hidden` attribute
2674        pub fn hidden(
2675            &mut self,
2676            value: impl Into<std::borrow::Cow<'static, str>>,
2677        ) -> &mut Self {
2678            self.element.set_hidden(Some(value.into()));
2679            self
2680        }
2681        /// Set the value of the `id` attribute
2682        pub fn id(
2683            &mut self,
2684            value: impl Into<std::borrow::Cow<'static, str>>,
2685        ) -> &mut Self {
2686            self.element.set_id(Some(value.into()));
2687            self
2688        }
2689        /// Set the value of the `inert` attribute
2690        pub fn inert(&mut self, value: bool) -> &mut Self {
2691            self.element.set_inert(value);
2692            self
2693        }
2694        /// Set the value of the `inputmode` attribute
2695        pub fn input_mode(
2696            &mut self,
2697            value: impl Into<std::borrow::Cow<'static, str>>,
2698        ) -> &mut Self {
2699            self.element.set_input_mode(Some(value.into()));
2700            self
2701        }
2702        /// Set the value of the `is` attribute
2703        pub fn is_(
2704            &mut self,
2705            value: impl Into<std::borrow::Cow<'static, str>>,
2706        ) -> &mut Self {
2707            self.element.set_is_(Some(value.into()));
2708            self
2709        }
2710        /// Set the value of the `itemid` attribute
2711        pub fn item_id(
2712            &mut self,
2713            value: impl Into<std::borrow::Cow<'static, str>>,
2714        ) -> &mut Self {
2715            self.element.set_item_id(Some(value.into()));
2716            self
2717        }
2718        /// Set the value of the `itemprop` attribute
2719        pub fn item_prop(
2720            &mut self,
2721            value: impl Into<std::borrow::Cow<'static, str>>,
2722        ) -> &mut Self {
2723            self.element.set_item_prop(Some(value.into()));
2724            self
2725        }
2726        /// Set the value of the `itemref` attribute
2727        pub fn item_ref(
2728            &mut self,
2729            value: impl Into<std::borrow::Cow<'static, str>>,
2730        ) -> &mut Self {
2731            self.element.set_item_ref(Some(value.into()));
2732            self
2733        }
2734        /// Set the value of the `itemscope` attribute
2735        pub fn item_scope(
2736            &mut self,
2737            value: impl Into<std::borrow::Cow<'static, str>>,
2738        ) -> &mut Self {
2739            self.element.set_item_scope(Some(value.into()));
2740            self
2741        }
2742        /// Set the value of the `itemtype` attribute
2743        pub fn item_type(
2744            &mut self,
2745            value: impl Into<std::borrow::Cow<'static, str>>,
2746        ) -> &mut Self {
2747            self.element.set_item_type(Some(value.into()));
2748            self
2749        }
2750        /// Set the value of the `lang` attribute
2751        pub fn lang(
2752            &mut self,
2753            value: impl Into<std::borrow::Cow<'static, str>>,
2754        ) -> &mut Self {
2755            self.element.set_lang(Some(value.into()));
2756            self
2757        }
2758        /// Set the value of the `nonce` attribute
2759        pub fn nonce(
2760            &mut self,
2761            value: impl Into<std::borrow::Cow<'static, str>>,
2762        ) -> &mut Self {
2763            self.element.set_nonce(Some(value.into()));
2764            self
2765        }
2766        /// Set the value of the `part` attribute
2767        pub fn part(
2768            &mut self,
2769            value: impl Into<std::borrow::Cow<'static, str>>,
2770        ) -> &mut Self {
2771            self.element.set_part(Some(value.into()));
2772            self
2773        }
2774        /// Set the value of the `slot` attribute
2775        pub fn slot_attr(
2776            &mut self,
2777            value: impl Into<std::borrow::Cow<'static, str>>,
2778        ) -> &mut Self {
2779            self.element.set_slot(Some(value.into()));
2780            self
2781        }
2782        /// Set the value of the `spellcheck` attribute
2783        pub fn spellcheck(
2784            &mut self,
2785            value: impl Into<std::borrow::Cow<'static, str>>,
2786        ) -> &mut Self {
2787            self.element.set_spellcheck(Some(value.into()));
2788            self
2789        }
2790        /// Set the value of the `style` attribute
2791        pub fn style(
2792            &mut self,
2793            value: impl Into<std::borrow::Cow<'static, str>>,
2794        ) -> &mut Self {
2795            self.element.set_style(Some(value.into()));
2796            self
2797        }
2798        /// Set the value of the `tabindex` attribute
2799        pub fn tab_index(&mut self, value: i64) -> &mut Self {
2800            self.element.set_tab_index(Some(value));
2801            self
2802        }
2803        /// Set the value of the `title` attribute
2804        pub fn title(
2805            &mut self,
2806            value: impl Into<std::borrow::Cow<'static, str>>,
2807        ) -> &mut Self {
2808            self.element.set_title(Some(value.into()));
2809            self
2810        }
2811        /// Set the value of the `translate` attribute
2812        pub fn translate(&mut self, value: bool) -> &mut Self {
2813            self.element.set_translate(value);
2814            self
2815        }
2816        /// Push a new child element to the list of children.
2817        pub fn push<T>(&mut self, child_el: T) -> &mut Self
2818        where
2819            T: Into<crate::generated::all::children::DataChild>,
2820        {
2821            let child_el = child_el.into();
2822            self.element.children_mut().push(child_el);
2823            self
2824        }
2825        /// Extend the list of children with an iterator of child elements.
2826        pub fn extend<I, T>(&mut self, iter: I) -> &mut Self
2827        where
2828            I: IntoIterator<Item = T>,
2829            T: Into<crate::generated::all::children::DataChild>,
2830        {
2831            let iter = iter.into_iter().map(|child_el| child_el.into());
2832            self.element.children_mut().extend(iter);
2833            self
2834        }
2835    }
2836}