html/generated/
legend.rs

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