html/generated/
label.rs

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