html/generated/
nav.rs

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