html/generated/
summary.rs

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