html/generated/
main.rs

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