1use facet::Facet;
22use facet_html as html;
23
24#[derive(Default, Facet)]
34#[facet(default, skip_all_unless_truthy)]
35pub struct GlobalAttrs {
36 #[facet(html::attribute, default)]
39 pub id: Option<String>,
40 #[facet(html::attribute, default)]
42 pub class: Option<String>,
43 #[facet(html::attribute, default)]
45 pub style: Option<String>,
46 #[facet(html::attribute, default, rename = "title")]
50 pub tooltip: Option<String>,
51 #[facet(html::attribute, default)]
53 pub lang: Option<String>,
54 #[facet(html::attribute, default)]
56 pub dir: Option<String>,
57 #[facet(html::attribute, default)]
59 pub hidden: Option<String>,
60 #[facet(html::attribute, default)]
62 pub tabindex: Option<String>,
63 #[facet(html::attribute, default)]
65 pub accesskey: Option<String>,
66 #[facet(html::attribute, default)]
68 pub draggable: Option<String>,
69 #[facet(html::attribute, default)]
71 pub contenteditable: Option<String>,
72 #[facet(html::attribute, default)]
74 pub spellcheck: Option<String>,
75 #[facet(html::attribute, default)]
77 pub translate: Option<String>,
78 #[facet(html::attribute, default)]
80 pub role: Option<String>,
81
82 #[facet(html::attribute, default)]
85 pub onclick: Option<String>,
86 #[facet(html::attribute, default)]
88 pub ondblclick: Option<String>,
89 #[facet(html::attribute, default)]
91 pub onmousedown: Option<String>,
92 #[facet(html::attribute, default)]
94 pub onmouseover: Option<String>,
95 #[facet(html::attribute, default)]
97 pub onmouseout: Option<String>,
98 #[facet(html::attribute, default)]
100 pub onmouseup: Option<String>,
101 #[facet(html::attribute, default)]
103 pub onmouseenter: Option<String>,
104 #[facet(html::attribute, default)]
106 pub onmouseleave: Option<String>,
107 #[facet(html::attribute, default)]
109 pub onkeydown: Option<String>,
110 #[facet(html::attribute, default)]
112 pub onkeyup: Option<String>,
113 #[facet(html::attribute, default)]
115 pub onfocus: Option<String>,
116 #[facet(html::attribute, default)]
118 pub onblur: Option<String>,
119 #[facet(html::attribute, default)]
121 pub onchange: Option<String>,
122 #[facet(html::attribute, default)]
124 pub oninput: Option<String>,
125 #[facet(html::attribute, default)]
127 pub onsubmit: Option<String>,
128 #[facet(html::attribute, default)]
130 pub onload: Option<String>,
131 #[facet(html::attribute, default)]
133 pub onerror: Option<String>,
134 #[facet(html::attribute, default)]
136 pub onscroll: Option<String>,
137 #[facet(html::attribute, default)]
139 pub oncontextmenu: Option<String>,
140
141 #[facet(flatten, default)]
146 pub extra: std::collections::HashMap<String, String>,
147}
148
149#[derive(Default, Facet)]
155#[facet(rename = "html")]
156pub struct Html {
157 #[facet(flatten, default)]
159 pub attrs: GlobalAttrs,
160 #[facet(default)]
162 pub head: Option<Head>,
163 #[facet(default)]
165 pub body: Option<Body>,
166}
167
168#[derive(Default, Facet)]
170#[facet(rename = "head")]
171pub struct Head {
172 #[facet(flatten, default)]
174 pub attrs: GlobalAttrs,
175 #[facet(default)]
177 pub title: Option<Title>,
178 #[facet(default)]
180 pub base: Option<Base>,
181 #[facet(html::elements, default)]
183 pub link: Vec<Link>,
184 #[facet(html::elements, default)]
186 pub meta: Vec<Meta>,
187 #[facet(html::elements, default)]
189 pub style: Vec<Style>,
190 #[facet(html::elements, default)]
192 pub script: Vec<Script>,
193}
194
195#[derive(Default, Facet)]
197#[facet(rename = "body")]
198pub struct Body {
199 #[facet(flatten, default)]
201 pub attrs: GlobalAttrs,
202 #[facet(html::elements, default)]
204 #[facet(recursive_type)]
205 pub children: Vec<FlowContent>,
206}
207
208#[derive(Default, Facet)]
214#[facet(rename = "title")]
215pub struct Title {
216 #[facet(flatten, default)]
218 pub attrs: GlobalAttrs,
219 #[facet(html::text, default)]
221 pub text: String,
222}
223
224#[derive(Default, Facet)]
226#[facet(rename = "base")]
227pub struct Base {
228 #[facet(flatten, default)]
230 pub attrs: GlobalAttrs,
231 #[facet(html::attribute, default)]
233 pub href: Option<String>,
234 #[facet(html::attribute, default)]
236 pub target: Option<String>,
237}
238
239#[derive(Default, Facet)]
241#[facet(rename = "link")]
242pub struct Link {
243 #[facet(flatten, default)]
245 pub attrs: GlobalAttrs,
246 #[facet(html::attribute, default)]
248 pub href: Option<String>,
249 #[facet(html::attribute, default)]
251 pub rel: Option<String>,
252 #[facet(html::attribute, default, rename = "type")]
254 pub type_: Option<String>,
255 #[facet(html::attribute, default)]
257 pub media: Option<String>,
258 #[facet(html::attribute, default)]
260 pub integrity: Option<String>,
261 #[facet(html::attribute, default)]
263 pub crossorigin: Option<String>,
264 #[facet(html::attribute, default)]
266 pub sizes: Option<String>,
267 #[facet(html::attribute, default, rename = "as")]
269 pub as_: Option<String>,
270}
271
272#[derive(Default, Facet)]
274#[facet(rename = "meta")]
275pub struct Meta {
276 #[facet(flatten, default)]
278 pub attrs: GlobalAttrs,
279 #[facet(html::attribute, default)]
281 pub name: Option<String>,
282 #[facet(html::attribute, default)]
284 pub content: Option<String>,
285 #[facet(html::attribute, default)]
287 pub charset: Option<String>,
288 #[facet(html::attribute, default, rename = "http-equiv")]
290 pub http_equiv: Option<String>,
291 #[facet(html::attribute, default)]
293 pub property: Option<String>,
294}
295
296#[derive(Default, Facet)]
298#[facet(rename = "style")]
299pub struct Style {
300 #[facet(flatten, default)]
302 pub attrs: GlobalAttrs,
303 #[facet(html::attribute, default)]
305 pub media: Option<String>,
306 #[facet(html::attribute, default, rename = "type")]
308 pub type_: Option<String>,
309 #[facet(html::text, default)]
311 pub text: String,
312}
313
314#[derive(Default, Facet)]
320#[facet(rename = "header")]
321pub struct Header {
322 #[facet(flatten, default)]
324 pub attrs: GlobalAttrs,
325 #[facet(html::elements, default)]
327 #[facet(recursive_type)]
328 pub children: Vec<FlowContent>,
329}
330
331#[derive(Default, Facet)]
333#[facet(rename = "footer")]
334pub struct Footer {
335 #[facet(flatten, default)]
337 pub attrs: GlobalAttrs,
338 #[facet(html::elements, default)]
340 #[facet(recursive_type)]
341 pub children: Vec<FlowContent>,
342}
343
344#[derive(Default, Facet)]
346#[facet(rename = "main")]
347pub struct Main {
348 #[facet(flatten, default)]
350 pub attrs: GlobalAttrs,
351 #[facet(html::elements, default)]
353 #[facet(recursive_type)]
354 pub children: Vec<FlowContent>,
355}
356
357#[derive(Default, Facet)]
359#[facet(rename = "article")]
360pub struct Article {
361 #[facet(flatten, default)]
363 pub attrs: GlobalAttrs,
364 #[facet(html::elements, default)]
366 #[facet(recursive_type)]
367 pub children: Vec<FlowContent>,
368}
369
370#[derive(Default, Facet)]
372#[facet(rename = "section")]
373pub struct Section {
374 #[facet(flatten, default)]
376 pub attrs: GlobalAttrs,
377 #[facet(html::elements, default)]
379 #[facet(recursive_type)]
380 pub children: Vec<FlowContent>,
381}
382
383#[derive(Default, Facet)]
385#[facet(rename = "nav")]
386pub struct Nav {
387 #[facet(flatten, default)]
389 pub attrs: GlobalAttrs,
390 #[facet(html::elements, default)]
392 #[facet(recursive_type)]
393 pub children: Vec<FlowContent>,
394}
395
396#[derive(Default, Facet)]
398#[facet(rename = "aside")]
399pub struct Aside {
400 #[facet(flatten, default)]
402 pub attrs: GlobalAttrs,
403 #[facet(html::elements, default)]
405 #[facet(recursive_type)]
406 pub children: Vec<FlowContent>,
407}
408
409#[derive(Default, Facet)]
411#[facet(rename = "address")]
412pub struct Address {
413 #[facet(flatten, default)]
415 pub attrs: GlobalAttrs,
416 #[facet(html::elements, default)]
418 #[facet(recursive_type)]
419 pub children: Vec<FlowContent>,
420}
421
422#[derive(Default, Facet)]
428#[facet(rename = "h1")]
429pub struct H1 {
430 #[facet(flatten, default)]
432 pub attrs: GlobalAttrs,
433 #[facet(html::elements, default)]
435 #[facet(recursive_type)]
436 pub children: Vec<PhrasingContent>,
437}
438
439#[derive(Default, Facet)]
441#[facet(rename = "h2")]
442pub struct H2 {
443 #[facet(flatten, default)]
445 pub attrs: GlobalAttrs,
446 #[facet(html::elements, default)]
448 #[facet(recursive_type)]
449 pub children: Vec<PhrasingContent>,
450}
451
452#[derive(Default, Facet)]
454#[facet(rename = "h3")]
455pub struct H3 {
456 #[facet(flatten, default)]
458 pub attrs: GlobalAttrs,
459 #[facet(html::elements, default)]
461 #[facet(recursive_type)]
462 pub children: Vec<PhrasingContent>,
463}
464
465#[derive(Default, Facet)]
467#[facet(rename = "h4")]
468pub struct H4 {
469 #[facet(flatten, default)]
471 pub attrs: GlobalAttrs,
472 #[facet(html::elements, default)]
474 #[facet(recursive_type)]
475 pub children: Vec<PhrasingContent>,
476}
477
478#[derive(Default, Facet)]
480#[facet(rename = "h5")]
481pub struct H5 {
482 #[facet(flatten, default)]
484 pub attrs: GlobalAttrs,
485 #[facet(html::elements, default)]
487 #[facet(recursive_type)]
488 pub children: Vec<PhrasingContent>,
489}
490
491#[derive(Default, Facet)]
493#[facet(rename = "h6")]
494pub struct H6 {
495 #[facet(flatten, default)]
497 pub attrs: GlobalAttrs,
498 #[facet(html::elements, default)]
500 #[facet(recursive_type)]
501 pub children: Vec<PhrasingContent>,
502}
503
504#[derive(Default, Facet)]
510#[facet(rename = "p")]
511pub struct P {
512 #[facet(flatten, default)]
514 pub attrs: GlobalAttrs,
515 #[facet(html::elements, default)]
517 #[facet(recursive_type)]
518 pub children: Vec<PhrasingContent>,
519}
520
521#[derive(Default, Facet)]
523#[facet(rename = "div")]
524pub struct Div {
525 #[facet(flatten, default)]
527 pub attrs: GlobalAttrs,
528 #[facet(html::elements, default)]
530 #[facet(recursive_type)]
531 pub children: Vec<FlowContent>,
532}
533
534#[derive(Default, Facet)]
536#[facet(rename = "span")]
537pub struct Span {
538 #[facet(flatten, default)]
540 pub attrs: GlobalAttrs,
541 #[facet(html::elements, default)]
543 #[facet(recursive_type)]
544 pub children: Vec<PhrasingContent>,
545}
546
547#[derive(Default, Facet)]
549#[facet(rename = "pre")]
550pub struct Pre {
551 #[facet(flatten, default)]
553 pub attrs: GlobalAttrs,
554 #[facet(html::elements, default)]
556 #[facet(recursive_type)]
557 pub children: Vec<PhrasingContent>,
558}
559
560#[derive(Default, Facet)]
562#[facet(rename = "blockquote")]
563pub struct Blockquote {
564 #[facet(flatten, default)]
566 pub attrs: GlobalAttrs,
567 #[facet(html::attribute, default)]
569 pub cite: Option<String>,
570 #[facet(html::elements, default)]
572 #[facet(recursive_type)]
573 pub children: Vec<FlowContent>,
574}
575
576#[derive(Default, Facet)]
578#[facet(rename = "ol")]
579pub struct Ol {
580 #[facet(flatten, default)]
582 pub attrs: GlobalAttrs,
583 #[facet(html::attribute, default)]
585 pub start: Option<String>,
586 #[facet(html::attribute, default, rename = "type")]
588 pub type_: Option<String>,
589 #[facet(html::attribute, default)]
591 pub reversed: Option<String>,
592 #[facet(html::elements, default)]
594 pub li: Vec<Li>,
595}
596
597#[derive(Default, Facet)]
599#[facet(rename = "ul")]
600pub struct Ul {
601 #[facet(flatten, default)]
603 pub attrs: GlobalAttrs,
604 #[facet(html::elements, default)]
606 pub li: Vec<Li>,
607}
608
609#[derive(Default, Facet)]
611#[facet(rename = "li")]
612pub struct Li {
613 #[facet(flatten, default)]
615 pub attrs: GlobalAttrs,
616 #[facet(html::attribute, default)]
618 pub value: Option<String>,
619 #[facet(html::elements, default)]
621 #[facet(recursive_type)]
622 pub children: Vec<FlowContent>,
623}
624
625#[derive(Default, Facet)]
627#[facet(rename = "dl")]
628pub struct Dl {
629 #[facet(flatten, default)]
631 pub attrs: GlobalAttrs,
632 #[facet(html::elements, default)]
634 pub dt: Vec<Dt>,
635 #[facet(html::elements, default)]
637 pub dd: Vec<Dd>,
638}
639
640#[derive(Default, Facet)]
642#[facet(rename = "dt")]
643pub struct Dt {
644 #[facet(flatten, default)]
646 pub attrs: GlobalAttrs,
647 #[facet(html::elements, default)]
649 #[facet(recursive_type)]
650 pub children: Vec<FlowContent>,
651}
652
653#[derive(Default, Facet)]
655#[facet(rename = "dd")]
656pub struct Dd {
657 #[facet(flatten, default)]
659 pub attrs: GlobalAttrs,
660 #[facet(html::elements, default)]
662 #[facet(recursive_type)]
663 pub children: Vec<FlowContent>,
664}
665
666#[derive(Default, Facet)]
668#[facet(rename = "figure")]
669pub struct Figure {
670 #[facet(flatten, default)]
672 pub attrs: GlobalAttrs,
673 #[facet(default)]
675 pub figcaption: Option<Figcaption>,
676 #[facet(html::elements, default)]
678 #[facet(recursive_type)]
679 pub children: Vec<FlowContent>,
680}
681
682#[derive(Default, Facet)]
684#[facet(rename = "figcaption")]
685pub struct Figcaption {
686 #[facet(flatten, default)]
688 pub attrs: GlobalAttrs,
689 #[facet(html::elements, default)]
691 #[facet(recursive_type)]
692 pub children: Vec<FlowContent>,
693}
694
695#[derive(Default, Facet)]
697#[facet(rename = "hr")]
698pub struct Hr {
699 #[facet(flatten, default)]
701 pub attrs: GlobalAttrs,
702}
703
704#[derive(Default, Facet)]
710#[facet(rename = "a")]
711pub struct A {
712 #[facet(flatten, default)]
714 pub attrs: GlobalAttrs,
715 #[facet(html::attribute, default)]
717 pub href: Option<String>,
718 #[facet(html::attribute, default)]
720 pub target: Option<String>,
721 #[facet(html::attribute, default)]
723 pub rel: Option<String>,
724 #[facet(html::attribute, default)]
726 pub download: Option<String>,
727 #[facet(html::attribute, default, rename = "type")]
729 pub type_: Option<String>,
730 #[facet(html::attribute, default)]
732 pub hreflang: Option<String>,
733 #[facet(html::attribute, default)]
735 pub referrerpolicy: Option<String>,
736 #[facet(html::elements, default)]
738 #[facet(recursive_type)]
739 pub children: Vec<PhrasingContent>,
740}
741
742#[derive(Default, Facet)]
744#[facet(rename = "em")]
745pub struct Em {
746 #[facet(flatten, default)]
748 pub attrs: GlobalAttrs,
749 #[facet(html::elements, default)]
751 #[facet(recursive_type)]
752 pub children: Vec<PhrasingContent>,
753}
754
755#[derive(Default, Facet)]
757#[facet(rename = "strong")]
758pub struct Strong {
759 #[facet(flatten, default)]
761 pub attrs: GlobalAttrs,
762 #[facet(html::elements, default)]
764 #[facet(recursive_type)]
765 pub children: Vec<PhrasingContent>,
766}
767
768#[derive(Default, Facet)]
770#[facet(rename = "small")]
771pub struct Small {
772 #[facet(flatten, default)]
774 pub attrs: GlobalAttrs,
775 #[facet(html::elements, default)]
777 #[facet(recursive_type)]
778 pub children: Vec<PhrasingContent>,
779}
780
781#[derive(Default, Facet)]
783#[facet(rename = "s")]
784pub struct S {
785 #[facet(flatten, default)]
787 pub attrs: GlobalAttrs,
788 #[facet(html::elements, default)]
790 #[facet(recursive_type)]
791 pub children: Vec<PhrasingContent>,
792}
793
794#[derive(Default, Facet)]
796#[facet(rename = "cite")]
797pub struct Cite {
798 #[facet(flatten, default)]
800 pub attrs: GlobalAttrs,
801 #[facet(html::elements, default)]
803 #[facet(recursive_type)]
804 pub children: Vec<PhrasingContent>,
805}
806
807#[derive(Default, Facet)]
809#[facet(rename = "q")]
810pub struct Q {
811 #[facet(flatten, default)]
813 pub attrs: GlobalAttrs,
814 #[facet(html::attribute, default)]
816 pub cite: Option<String>,
817 #[facet(html::elements, default)]
819 #[facet(recursive_type)]
820 pub children: Vec<PhrasingContent>,
821}
822
823#[derive(Default, Facet)]
825#[facet(rename = "dfn")]
826pub struct Dfn {
827 #[facet(flatten, default)]
829 pub attrs: GlobalAttrs,
830 #[facet(html::elements, default)]
832 #[facet(recursive_type)]
833 pub children: Vec<PhrasingContent>,
834}
835
836#[derive(Default, Facet)]
838#[facet(rename = "abbr")]
839pub struct Abbr {
840 #[facet(flatten, default)]
842 pub attrs: GlobalAttrs,
843 #[facet(html::elements, default)]
845 #[facet(recursive_type)]
846 pub children: Vec<PhrasingContent>,
847}
848
849#[derive(Default, Facet)]
851#[facet(rename = "ruby")]
852pub struct Ruby {
853 #[facet(flatten, default)]
855 pub attrs: GlobalAttrs,
856 #[facet(html::elements, default)]
858 #[facet(recursive_type)]
859 pub children: Vec<PhrasingContent>,
860}
861
862#[derive(Default, Facet)]
864#[facet(rename = "data")]
865pub struct Data {
866 #[facet(flatten, default)]
868 pub attrs: GlobalAttrs,
869 #[facet(html::attribute, default)]
871 pub value: Option<String>,
872 #[facet(html::elements, default)]
874 #[facet(recursive_type)]
875 pub children: Vec<PhrasingContent>,
876}
877
878#[derive(Default, Facet)]
880#[facet(rename = "time")]
881pub struct Time {
882 #[facet(flatten, default)]
884 pub attrs: GlobalAttrs,
885 #[facet(html::attribute, default)]
887 pub datetime: Option<String>,
888 #[facet(html::elements, default)]
890 #[facet(recursive_type)]
891 pub children: Vec<PhrasingContent>,
892}
893
894#[derive(Default, Facet)]
896#[facet(rename = "code")]
897pub struct Code {
898 #[facet(flatten, default)]
900 pub attrs: GlobalAttrs,
901 #[facet(html::elements, default)]
903 #[facet(recursive_type)]
904 pub children: Vec<PhrasingContent>,
905}
906
907#[derive(Default, Facet)]
909#[facet(rename = "var")]
910pub struct Var {
911 #[facet(flatten, default)]
913 pub attrs: GlobalAttrs,
914 #[facet(html::elements, default)]
916 #[facet(recursive_type)]
917 pub children: Vec<PhrasingContent>,
918}
919
920#[derive(Default, Facet)]
922#[facet(rename = "samp")]
923pub struct Samp {
924 #[facet(flatten, default)]
926 pub attrs: GlobalAttrs,
927 #[facet(html::elements, default)]
929 #[facet(recursive_type)]
930 pub children: Vec<PhrasingContent>,
931}
932
933#[derive(Default, Facet)]
935#[facet(rename = "kbd")]
936pub struct Kbd {
937 #[facet(flatten, default)]
939 pub attrs: GlobalAttrs,
940 #[facet(html::elements, default)]
942 #[facet(recursive_type)]
943 pub children: Vec<PhrasingContent>,
944}
945
946#[derive(Default, Facet)]
948#[facet(rename = "sub")]
949pub struct Sub {
950 #[facet(flatten, default)]
952 pub attrs: GlobalAttrs,
953 #[facet(html::elements, default)]
955 #[facet(recursive_type)]
956 pub children: Vec<PhrasingContent>,
957}
958
959#[derive(Default, Facet)]
961#[facet(rename = "sup")]
962pub struct Sup {
963 #[facet(flatten, default)]
965 pub attrs: GlobalAttrs,
966 #[facet(html::elements, default)]
968 #[facet(recursive_type)]
969 pub children: Vec<PhrasingContent>,
970}
971
972#[derive(Default, Facet)]
974#[facet(rename = "i")]
975pub struct I {
976 #[facet(flatten, default)]
978 pub attrs: GlobalAttrs,
979 #[facet(html::elements, default)]
981 #[facet(recursive_type)]
982 pub children: Vec<PhrasingContent>,
983}
984
985#[derive(Default, Facet)]
987#[facet(rename = "b")]
988pub struct B {
989 #[facet(flatten, default)]
991 pub attrs: GlobalAttrs,
992 #[facet(html::elements, default)]
994 #[facet(recursive_type)]
995 pub children: Vec<PhrasingContent>,
996}
997
998#[derive(Default, Facet)]
1000#[facet(rename = "u")]
1001pub struct U {
1002 #[facet(flatten, default)]
1004 pub attrs: GlobalAttrs,
1005 #[facet(html::elements, default)]
1007 #[facet(recursive_type)]
1008 pub children: Vec<PhrasingContent>,
1009}
1010
1011#[derive(Default, Facet)]
1013#[facet(rename = "mark")]
1014pub struct Mark {
1015 #[facet(flatten, default)]
1017 pub attrs: GlobalAttrs,
1018 #[facet(html::elements, default)]
1020 #[facet(recursive_type)]
1021 pub children: Vec<PhrasingContent>,
1022}
1023
1024#[derive(Default, Facet)]
1026#[facet(rename = "bdi")]
1027pub struct Bdi {
1028 #[facet(flatten, default)]
1030 pub attrs: GlobalAttrs,
1031 #[facet(html::elements, default)]
1033 #[facet(recursive_type)]
1034 pub children: Vec<PhrasingContent>,
1035}
1036
1037#[derive(Default, Facet)]
1039#[facet(rename = "bdo")]
1040pub struct Bdo {
1041 #[facet(flatten, default)]
1043 pub attrs: GlobalAttrs,
1044 #[facet(html::elements, default)]
1046 #[facet(recursive_type)]
1047 pub children: Vec<PhrasingContent>,
1048}
1049
1050#[derive(Default, Facet)]
1052#[facet(rename = "br")]
1053pub struct Br {
1054 #[facet(flatten, default)]
1056 pub attrs: GlobalAttrs,
1057}
1058
1059#[derive(Default, Facet)]
1061#[facet(rename = "wbr")]
1062pub struct Wbr {
1063 #[facet(flatten, default)]
1065 pub attrs: GlobalAttrs,
1066}
1067
1068#[derive(Default, Facet)]
1074#[facet(rename = "img")]
1075pub struct Img {
1076 #[facet(flatten, default)]
1078 pub attrs: GlobalAttrs,
1079 #[facet(html::attribute, default)]
1081 pub src: Option<String>,
1082 #[facet(html::attribute, default)]
1084 pub alt: Option<String>,
1085 #[facet(html::attribute, default)]
1087 pub width: Option<String>,
1088 #[facet(html::attribute, default)]
1090 pub height: Option<String>,
1091 #[facet(html::attribute, default)]
1093 pub srcset: Option<String>,
1094 #[facet(html::attribute, default)]
1096 pub sizes: Option<String>,
1097 #[facet(html::attribute, default)]
1099 pub loading: Option<String>,
1100 #[facet(html::attribute, default)]
1102 pub decoding: Option<String>,
1103 #[facet(html::attribute, default)]
1105 pub crossorigin: Option<String>,
1106 #[facet(html::attribute, default)]
1108 pub referrerpolicy: Option<String>,
1109 #[facet(html::attribute, default)]
1111 pub usemap: Option<String>,
1112 #[facet(html::attribute, default)]
1114 pub ismap: Option<String>,
1115}
1116
1117#[derive(Default, Facet)]
1119#[facet(rename = "iframe")]
1120pub struct Iframe {
1121 #[facet(flatten, default)]
1123 pub attrs: GlobalAttrs,
1124 #[facet(html::attribute, default)]
1126 pub src: Option<String>,
1127 #[facet(html::attribute, default)]
1129 pub srcdoc: Option<String>,
1130 #[facet(html::attribute, default)]
1132 pub name: Option<String>,
1133 #[facet(html::attribute, default)]
1135 pub width: Option<String>,
1136 #[facet(html::attribute, default)]
1138 pub height: Option<String>,
1139 #[facet(html::attribute, default)]
1141 pub sandbox: Option<String>,
1142 #[facet(html::attribute, default)]
1144 pub allow: Option<String>,
1145 #[facet(html::attribute, default)]
1147 pub allowfullscreen: Option<String>,
1148 #[facet(html::attribute, default)]
1150 pub loading: Option<String>,
1151 #[facet(html::attribute, default)]
1153 pub referrerpolicy: Option<String>,
1154}
1155
1156#[derive(Default, Facet)]
1158#[facet(rename = "object")]
1159pub struct Object {
1160 #[facet(flatten, default)]
1162 pub attrs: GlobalAttrs,
1163 #[facet(html::attribute, default)]
1165 pub data: Option<String>,
1166 #[facet(html::attribute, default, rename = "type")]
1168 pub type_: Option<String>,
1169 #[facet(html::attribute, default)]
1171 pub name: Option<String>,
1172 #[facet(html::attribute, default)]
1174 pub width: Option<String>,
1175 #[facet(html::attribute, default)]
1177 pub height: Option<String>,
1178 #[facet(html::attribute, default)]
1180 pub usemap: Option<String>,
1181 #[facet(html::elements, default)]
1183 #[facet(recursive_type)]
1184 pub children: Vec<FlowContent>,
1185}
1186
1187#[derive(Default, Facet)]
1189#[facet(rename = "video")]
1190pub struct Video {
1191 #[facet(flatten, default)]
1193 pub attrs: GlobalAttrs,
1194 #[facet(html::attribute, default)]
1196 pub src: Option<String>,
1197 #[facet(html::attribute, default)]
1199 pub poster: Option<String>,
1200 #[facet(html::attribute, default)]
1202 pub width: Option<String>,
1203 #[facet(html::attribute, default)]
1205 pub height: Option<String>,
1206 #[facet(html::attribute, default)]
1208 pub controls: Option<String>,
1209 #[facet(html::attribute, default)]
1211 pub autoplay: Option<String>,
1212 #[facet(html::attribute, default, rename = "loop")]
1214 pub loop_: Option<String>,
1215 #[facet(html::attribute, default)]
1217 pub muted: Option<String>,
1218 #[facet(html::attribute, default)]
1220 pub preload: Option<String>,
1221 #[facet(html::attribute, default)]
1223 pub playsinline: Option<String>,
1224 #[facet(html::attribute, default)]
1226 pub crossorigin: Option<String>,
1227 #[facet(html::elements, default)]
1229 pub source: Vec<Source>,
1230 #[facet(html::elements, default)]
1232 pub track: Vec<Track>,
1233}
1234
1235#[derive(Default, Facet)]
1237#[facet(rename = "audio")]
1238pub struct Audio {
1239 #[facet(flatten, default)]
1241 pub attrs: GlobalAttrs,
1242 #[facet(html::attribute, default)]
1244 pub src: Option<String>,
1245 #[facet(html::attribute, default)]
1247 pub controls: Option<String>,
1248 #[facet(html::attribute, default)]
1250 pub autoplay: Option<String>,
1251 #[facet(html::attribute, default, rename = "loop")]
1253 pub loop_: Option<String>,
1254 #[facet(html::attribute, default)]
1256 pub muted: Option<String>,
1257 #[facet(html::attribute, default)]
1259 pub preload: Option<String>,
1260 #[facet(html::attribute, default)]
1262 pub crossorigin: Option<String>,
1263 #[facet(html::elements, default)]
1265 pub source: Vec<Source>,
1266}
1267
1268#[derive(Default, Facet)]
1270#[facet(rename = "source")]
1271pub struct Source {
1272 #[facet(flatten, default)]
1274 pub attrs: GlobalAttrs,
1275 #[facet(html::attribute, default)]
1277 pub src: Option<String>,
1278 #[facet(html::attribute, default, rename = "type")]
1280 pub type_: Option<String>,
1281 #[facet(html::attribute, default)]
1283 pub srcset: Option<String>,
1284 #[facet(html::attribute, default)]
1286 pub sizes: Option<String>,
1287 #[facet(html::attribute, default)]
1289 pub media: Option<String>,
1290 #[facet(html::attribute, default)]
1292 pub width: Option<String>,
1293 #[facet(html::attribute, default)]
1295 pub height: Option<String>,
1296}
1297
1298#[derive(Default, Facet)]
1300#[facet(rename = "track")]
1301pub struct Track {
1302 #[facet(flatten, default)]
1304 pub attrs: GlobalAttrs,
1305 #[facet(html::attribute, default)]
1307 pub src: Option<String>,
1308 #[facet(html::attribute, default)]
1310 pub kind: Option<String>,
1311 #[facet(html::attribute, default)]
1313 pub srclang: Option<String>,
1314 #[facet(html::attribute, default)]
1316 pub label: Option<String>,
1317 #[facet(html::attribute, default)]
1319 pub default: Option<String>,
1320}
1321
1322#[derive(Default, Facet)]
1324#[facet(rename = "picture")]
1325pub struct Picture {
1326 #[facet(flatten, default)]
1328 pub attrs: GlobalAttrs,
1329 #[facet(html::elements, default)]
1331 pub source: Vec<Source>,
1332 #[facet(default)]
1334 pub img: Option<Img>,
1335}
1336
1337#[derive(Default, Facet)]
1339#[facet(rename = "canvas")]
1340pub struct Canvas {
1341 #[facet(flatten, default)]
1343 pub attrs: GlobalAttrs,
1344 #[facet(html::attribute, default)]
1346 pub width: Option<String>,
1347 #[facet(html::attribute, default)]
1349 pub height: Option<String>,
1350 #[facet(html::elements, default)]
1352 #[facet(recursive_type)]
1353 pub children: Vec<FlowContent>,
1354}
1355
1356#[derive(Default, Facet)]
1358#[facet(rename = "svg")]
1359pub struct Svg {
1360 #[facet(flatten, default)]
1362 pub attrs: GlobalAttrs,
1363 #[facet(html::attribute, default)]
1365 pub width: Option<String>,
1366 #[facet(html::attribute, default)]
1368 pub height: Option<String>,
1369 #[facet(html::attribute, default, rename = "viewBox")]
1371 pub view_box: Option<String>,
1372 #[facet(html::attribute, default)]
1374 pub xmlns: Option<String>,
1375 #[facet(html::attribute, default, rename = "preserveAspectRatio")]
1377 pub preserve_aspect_ratio: Option<String>,
1378}
1379
1380#[derive(Default, Facet)]
1386#[facet(rename = "table")]
1387pub struct Table {
1388 #[facet(flatten, default)]
1390 pub attrs: GlobalAttrs,
1391 #[facet(default)]
1393 pub caption: Option<Caption>,
1394 #[facet(html::elements, default)]
1396 pub colgroup: Vec<Colgroup>,
1397 #[facet(default)]
1399 pub thead: Option<Thead>,
1400 #[facet(html::elements, default)]
1402 pub tbody: Vec<Tbody>,
1403 #[facet(default)]
1405 pub tfoot: Option<Tfoot>,
1406 #[facet(html::elements, default)]
1408 pub tr: Vec<Tr>,
1409}
1410
1411#[derive(Default, Facet)]
1413#[facet(rename = "caption")]
1414pub struct Caption {
1415 #[facet(flatten, default)]
1417 pub attrs: GlobalAttrs,
1418 #[facet(html::elements, default)]
1420 #[facet(recursive_type)]
1421 pub children: Vec<FlowContent>,
1422}
1423
1424#[derive(Default, Facet)]
1426#[facet(rename = "colgroup")]
1427pub struct Colgroup {
1428 #[facet(flatten, default)]
1430 pub attrs: GlobalAttrs,
1431 #[facet(html::attribute, default)]
1433 pub span: Option<String>,
1434 #[facet(html::elements, default)]
1436 pub col: Vec<Col>,
1437}
1438
1439#[derive(Default, Facet)]
1441#[facet(rename = "col")]
1442pub struct Col {
1443 #[facet(flatten, default)]
1445 pub attrs: GlobalAttrs,
1446 #[facet(html::attribute, default)]
1448 pub span: Option<String>,
1449}
1450
1451#[derive(Default, Facet)]
1453#[facet(rename = "thead")]
1454pub struct Thead {
1455 #[facet(flatten, default)]
1457 pub attrs: GlobalAttrs,
1458 #[facet(html::elements, default)]
1460 pub tr: Vec<Tr>,
1461}
1462
1463#[derive(Default, Facet)]
1465#[facet(rename = "tbody")]
1466pub struct Tbody {
1467 #[facet(flatten, default)]
1469 pub attrs: GlobalAttrs,
1470 #[facet(html::elements, default)]
1472 pub tr: Vec<Tr>,
1473}
1474
1475#[derive(Default, Facet)]
1477#[facet(rename = "tfoot")]
1478pub struct Tfoot {
1479 #[facet(flatten, default)]
1481 pub attrs: GlobalAttrs,
1482 #[facet(html::elements, default)]
1484 pub tr: Vec<Tr>,
1485}
1486
1487#[derive(Default, Facet)]
1489#[facet(rename = "tr")]
1490pub struct Tr {
1491 #[facet(flatten, default)]
1493 pub attrs: GlobalAttrs,
1494 #[facet(html::elements, default)]
1496 pub th: Vec<Th>,
1497 #[facet(html::elements, default)]
1499 pub td: Vec<Td>,
1500}
1501
1502#[derive(Default, Facet)]
1504#[facet(rename = "th")]
1505pub struct Th {
1506 #[facet(flatten, default)]
1508 pub attrs: GlobalAttrs,
1509 #[facet(html::attribute, default)]
1511 pub colspan: Option<String>,
1512 #[facet(html::attribute, default)]
1514 pub rowspan: Option<String>,
1515 #[facet(html::attribute, default)]
1517 pub scope: Option<String>,
1518 #[facet(html::attribute, default)]
1520 pub headers: Option<String>,
1521 #[facet(html::attribute, default)]
1523 pub abbr: Option<String>,
1524 #[facet(html::elements, default)]
1526 #[facet(recursive_type)]
1527 pub children: Vec<FlowContent>,
1528}
1529
1530#[derive(Default, Facet)]
1532#[facet(rename = "td")]
1533pub struct Td {
1534 #[facet(flatten, default)]
1536 pub attrs: GlobalAttrs,
1537 #[facet(html::attribute, default)]
1539 pub colspan: Option<String>,
1540 #[facet(html::attribute, default)]
1542 pub rowspan: Option<String>,
1543 #[facet(html::attribute, default)]
1545 pub headers: Option<String>,
1546 #[facet(html::elements, default)]
1548 #[facet(recursive_type)]
1549 pub children: Vec<FlowContent>,
1550}
1551
1552#[derive(Default, Facet)]
1558#[facet(rename = "form")]
1559pub struct Form {
1560 #[facet(flatten, default)]
1562 pub attrs: GlobalAttrs,
1563 #[facet(html::attribute, default)]
1565 pub action: Option<String>,
1566 #[facet(html::attribute, default)]
1568 pub method: Option<String>,
1569 #[facet(html::attribute, default)]
1571 pub enctype: Option<String>,
1572 #[facet(html::attribute, default)]
1574 pub target: Option<String>,
1575 #[facet(html::attribute, default)]
1577 pub name: Option<String>,
1578 #[facet(html::attribute, default)]
1580 pub autocomplete: Option<String>,
1581 #[facet(html::attribute, default)]
1583 pub novalidate: Option<String>,
1584 #[facet(html::attribute, default, rename = "accept-charset")]
1586 pub accept_charset: Option<String>,
1587 #[facet(html::elements, default)]
1589 #[facet(recursive_type)]
1590 pub children: Vec<FlowContent>,
1591}
1592
1593#[derive(Default, Facet)]
1595#[facet(rename = "input")]
1596pub struct Input {
1597 #[facet(flatten, default)]
1599 pub attrs: GlobalAttrs,
1600 #[facet(html::attribute, default, rename = "type")]
1602 pub type_: Option<String>,
1603 #[facet(html::attribute, default)]
1605 pub name: Option<String>,
1606 #[facet(html::attribute, default)]
1608 pub value: Option<String>,
1609 #[facet(html::attribute, default)]
1611 pub placeholder: Option<String>,
1612 #[facet(html::attribute, default)]
1614 pub required: Option<String>,
1615 #[facet(html::attribute, default)]
1617 pub disabled: Option<String>,
1618 #[facet(html::attribute, default)]
1620 pub readonly: Option<String>,
1621 #[facet(html::attribute, default)]
1623 pub checked: Option<String>,
1624 #[facet(html::attribute, default)]
1626 pub autocomplete: Option<String>,
1627 #[facet(html::attribute, default)]
1629 pub autofocus: Option<String>,
1630 #[facet(html::attribute, default)]
1632 pub min: Option<String>,
1633 #[facet(html::attribute, default)]
1635 pub max: Option<String>,
1636 #[facet(html::attribute, default)]
1638 pub step: Option<String>,
1639 #[facet(html::attribute, default)]
1641 pub pattern: Option<String>,
1642 #[facet(html::attribute, default)]
1644 pub size: Option<String>,
1645 #[facet(html::attribute, default)]
1647 pub maxlength: Option<String>,
1648 #[facet(html::attribute, default)]
1650 pub minlength: Option<String>,
1651 #[facet(html::attribute, default)]
1653 pub multiple: Option<String>,
1654 #[facet(html::attribute, default)]
1656 pub accept: Option<String>,
1657 #[facet(html::attribute, default)]
1659 pub alt: Option<String>,
1660 #[facet(html::attribute, default)]
1662 pub src: Option<String>,
1663 #[facet(html::attribute, default)]
1665 pub width: Option<String>,
1666 #[facet(html::attribute, default)]
1668 pub height: Option<String>,
1669 #[facet(html::attribute, default)]
1671 pub list: Option<String>,
1672 #[facet(html::attribute, default)]
1674 pub form: Option<String>,
1675 #[facet(html::attribute, default)]
1677 pub formaction: Option<String>,
1678 #[facet(html::attribute, default)]
1680 pub formmethod: Option<String>,
1681 #[facet(html::attribute, default)]
1683 pub formenctype: Option<String>,
1684 #[facet(html::attribute, default)]
1686 pub formtarget: Option<String>,
1687 #[facet(html::attribute, default)]
1689 pub formnovalidate: Option<String>,
1690}
1691
1692#[derive(Default, Facet)]
1694#[facet(rename = "button")]
1695pub struct Button {
1696 #[facet(flatten, default)]
1698 pub attrs: GlobalAttrs,
1699 #[facet(html::attribute, default, rename = "type")]
1701 pub type_: Option<String>,
1702 #[facet(html::attribute, default)]
1704 pub name: Option<String>,
1705 #[facet(html::attribute, default)]
1707 pub value: Option<String>,
1708 #[facet(html::attribute, default)]
1710 pub disabled: Option<String>,
1711 #[facet(html::attribute, default)]
1713 pub autofocus: Option<String>,
1714 #[facet(html::attribute, default)]
1716 pub form: Option<String>,
1717 #[facet(html::attribute, default)]
1719 pub formaction: Option<String>,
1720 #[facet(html::attribute, default)]
1722 pub formmethod: Option<String>,
1723 #[facet(html::attribute, default)]
1725 pub formenctype: Option<String>,
1726 #[facet(html::attribute, default)]
1728 pub formtarget: Option<String>,
1729 #[facet(html::attribute, default)]
1731 pub formnovalidate: Option<String>,
1732 #[facet(html::elements, default)]
1734 #[facet(recursive_type)]
1735 pub children: Vec<PhrasingContent>,
1736}
1737
1738#[derive(Default, Facet)]
1740#[facet(rename = "select")]
1741pub struct Select {
1742 #[facet(flatten, default)]
1744 pub attrs: GlobalAttrs,
1745 #[facet(html::attribute, default)]
1747 pub name: Option<String>,
1748 #[facet(html::attribute, default)]
1750 pub multiple: Option<String>,
1751 #[facet(html::attribute, default)]
1753 pub size: Option<String>,
1754 #[facet(html::attribute, default)]
1756 pub required: Option<String>,
1757 #[facet(html::attribute, default)]
1759 pub disabled: Option<String>,
1760 #[facet(html::attribute, default)]
1762 pub autofocus: Option<String>,
1763 #[facet(html::attribute, default)]
1765 pub autocomplete: Option<String>,
1766 #[facet(html::attribute, default)]
1768 pub form: Option<String>,
1769 #[facet(html::elements, default)]
1771 pub option: Vec<OptionElement>,
1772 #[facet(html::elements, default)]
1774 pub optgroup: Vec<Optgroup>,
1775}
1776
1777#[derive(Default, Facet)]
1779#[facet(rename = "option")]
1780pub struct OptionElement {
1781 #[facet(flatten, default)]
1783 pub attrs: GlobalAttrs,
1784 #[facet(html::attribute, default)]
1786 pub value: Option<String>,
1787 #[facet(html::attribute, default)]
1789 pub selected: Option<String>,
1790 #[facet(html::attribute, default)]
1792 pub disabled: Option<String>,
1793 #[facet(html::attribute, default)]
1795 pub label: Option<String>,
1796 #[facet(html::text, default)]
1798 pub text: String,
1799}
1800
1801#[derive(Default, Facet)]
1803#[facet(rename = "optgroup")]
1804pub struct Optgroup {
1805 #[facet(flatten, default)]
1807 pub attrs: GlobalAttrs,
1808 #[facet(html::attribute, default)]
1810 pub label: Option<String>,
1811 #[facet(html::attribute, default)]
1813 pub disabled: Option<String>,
1814 #[facet(html::elements, default)]
1816 pub option: Vec<OptionElement>,
1817}
1818
1819#[derive(Default, Facet)]
1821#[facet(rename = "textarea")]
1822pub struct Textarea {
1823 #[facet(flatten, default)]
1825 pub attrs: GlobalAttrs,
1826 #[facet(html::attribute, default)]
1828 pub name: Option<String>,
1829 #[facet(html::attribute, default)]
1831 pub rows: Option<String>,
1832 #[facet(html::attribute, default)]
1834 pub cols: Option<String>,
1835 #[facet(html::attribute, default)]
1837 pub placeholder: Option<String>,
1838 #[facet(html::attribute, default)]
1840 pub required: Option<String>,
1841 #[facet(html::attribute, default)]
1843 pub disabled: Option<String>,
1844 #[facet(html::attribute, default)]
1846 pub readonly: Option<String>,
1847 #[facet(html::attribute, default)]
1849 pub autofocus: Option<String>,
1850 #[facet(html::attribute, default)]
1852 pub autocomplete: Option<String>,
1853 #[facet(html::attribute, default)]
1855 pub maxlength: Option<String>,
1856 #[facet(html::attribute, default)]
1858 pub minlength: Option<String>,
1859 #[facet(html::attribute, default)]
1861 pub wrap: Option<String>,
1862 #[facet(html::attribute, default)]
1864 pub form: Option<String>,
1865 #[facet(html::text, default)]
1867 pub text: String,
1868}
1869
1870#[derive(Default, Facet)]
1872#[facet(rename = "label")]
1873pub struct Label {
1874 #[facet(flatten, default)]
1876 pub attrs: GlobalAttrs,
1877 #[facet(html::attribute, default, rename = "for")]
1879 pub for_: Option<String>,
1880 #[facet(html::elements, default)]
1882 #[facet(recursive_type)]
1883 pub children: Vec<PhrasingContent>,
1884}
1885
1886#[derive(Default, Facet)]
1888#[facet(rename = "fieldset")]
1889pub struct Fieldset {
1890 #[facet(flatten, default)]
1892 pub attrs: GlobalAttrs,
1893 #[facet(html::attribute, default)]
1895 pub name: Option<String>,
1896 #[facet(html::attribute, default)]
1898 pub disabled: Option<String>,
1899 #[facet(html::attribute, default)]
1901 pub form: Option<String>,
1902 #[facet(default)]
1904 pub legend: Option<Legend>,
1905 #[facet(html::elements, default)]
1907 #[facet(recursive_type)]
1908 pub children: Vec<FlowContent>,
1909}
1910
1911#[derive(Default, Facet)]
1913#[facet(rename = "legend")]
1914pub struct Legend {
1915 #[facet(flatten, default)]
1917 pub attrs: GlobalAttrs,
1918 #[facet(html::elements, default)]
1920 #[facet(recursive_type)]
1921 pub children: Vec<PhrasingContent>,
1922}
1923
1924#[derive(Default, Facet)]
1926#[facet(rename = "datalist")]
1927pub struct Datalist {
1928 #[facet(flatten, default)]
1930 pub attrs: GlobalAttrs,
1931 #[facet(html::elements, default)]
1933 pub option: Vec<OptionElement>,
1934}
1935
1936#[derive(Default, Facet)]
1938#[facet(rename = "output")]
1939pub struct Output {
1940 #[facet(flatten, default)]
1942 pub attrs: GlobalAttrs,
1943 #[facet(html::attribute, default, rename = "for")]
1945 pub for_: Option<String>,
1946 #[facet(html::attribute, default)]
1948 pub name: Option<String>,
1949 #[facet(html::attribute, default)]
1951 pub form: Option<String>,
1952 #[facet(html::elements, default)]
1954 #[facet(recursive_type)]
1955 pub children: Vec<PhrasingContent>,
1956}
1957
1958#[derive(Default, Facet)]
1960#[facet(rename = "progress")]
1961pub struct Progress {
1962 #[facet(flatten, default)]
1964 pub attrs: GlobalAttrs,
1965 #[facet(html::attribute, default)]
1967 pub value: Option<String>,
1968 #[facet(html::attribute, default)]
1970 pub max: Option<String>,
1971 #[facet(html::elements, default)]
1973 #[facet(recursive_type)]
1974 pub children: Vec<PhrasingContent>,
1975}
1976
1977#[derive(Default, Facet)]
1979#[facet(rename = "meter")]
1980pub struct Meter {
1981 #[facet(flatten, default)]
1983 pub attrs: GlobalAttrs,
1984 #[facet(html::attribute, default)]
1986 pub value: Option<String>,
1987 #[facet(html::attribute, default)]
1989 pub min: Option<String>,
1990 #[facet(html::attribute, default)]
1992 pub max: Option<String>,
1993 #[facet(html::attribute, default)]
1995 pub low: Option<String>,
1996 #[facet(html::attribute, default)]
1998 pub high: Option<String>,
1999 #[facet(html::attribute, default)]
2001 pub optimum: Option<String>,
2002 #[facet(html::elements, default)]
2004 #[facet(recursive_type)]
2005 pub children: Vec<PhrasingContent>,
2006}
2007
2008#[derive(Default, Facet)]
2014#[facet(rename = "details")]
2015pub struct Details {
2016 #[facet(flatten, default)]
2018 pub attrs: GlobalAttrs,
2019 #[facet(html::attribute, default)]
2021 pub open: Option<String>,
2022 #[facet(default)]
2024 pub summary: Option<Summary>,
2025 #[facet(html::elements, default)]
2027 #[facet(recursive_type)]
2028 pub children: Vec<FlowContent>,
2029}
2030
2031#[derive(Default, Facet)]
2033#[facet(rename = "summary")]
2034pub struct Summary {
2035 #[facet(flatten, default)]
2037 pub attrs: GlobalAttrs,
2038 #[facet(html::elements, default)]
2040 #[facet(recursive_type)]
2041 pub children: Vec<PhrasingContent>,
2042}
2043
2044#[derive(Default, Facet)]
2046#[facet(rename = "dialog")]
2047pub struct Dialog {
2048 #[facet(flatten, default)]
2050 pub attrs: GlobalAttrs,
2051 #[facet(html::attribute, default)]
2053 pub open: Option<String>,
2054 #[facet(html::elements, default)]
2056 #[facet(recursive_type)]
2057 pub children: Vec<FlowContent>,
2058}
2059
2060#[derive(Default, Facet)]
2066#[facet(rename = "script")]
2067pub struct Script {
2068 #[facet(flatten, default)]
2070 pub attrs: GlobalAttrs,
2071 #[facet(html::attribute, default)]
2073 pub src: Option<String>,
2074 #[facet(html::attribute, default, rename = "type")]
2076 pub type_: Option<String>,
2077 #[facet(html::attribute, default, rename = "async")]
2079 pub async_: Option<String>,
2080 #[facet(html::attribute, default)]
2082 pub defer: Option<String>,
2083 #[facet(html::attribute, default)]
2085 pub crossorigin: Option<String>,
2086 #[facet(html::attribute, default)]
2088 pub integrity: Option<String>,
2089 #[facet(html::attribute, default)]
2091 pub referrerpolicy: Option<String>,
2092 #[facet(html::attribute, default)]
2094 pub nomodule: Option<String>,
2095 #[facet(html::text, default)]
2097 pub text: String,
2098}
2099
2100#[derive(Default, Facet)]
2102#[facet(rename = "noscript")]
2103pub struct Noscript {
2104 #[facet(flatten, default)]
2106 pub attrs: GlobalAttrs,
2107 #[facet(html::elements, default)]
2109 #[facet(recursive_type)]
2110 pub children: Vec<FlowContent>,
2111}
2112
2113#[derive(Default, Facet)]
2115#[facet(rename = "template")]
2116pub struct Template {
2117 #[facet(flatten, default)]
2119 pub attrs: GlobalAttrs,
2120 #[facet(html::elements, default)]
2122 #[facet(recursive_type)]
2123 pub children: Vec<FlowContent>,
2124}
2125
2126#[derive(Default, Facet)]
2128#[facet(rename = "slot")]
2129pub struct Slot {
2130 #[facet(flatten, default)]
2132 pub attrs: GlobalAttrs,
2133 #[facet(html::attribute, default)]
2135 pub name: Option<String>,
2136 #[facet(html::elements, default)]
2138 #[facet(recursive_type)]
2139 pub children: Vec<FlowContent>,
2140}
2141
2142#[derive(Facet)]
2148#[repr(u8)]
2149#[allow(clippy::large_enum_variant)] pub enum FlowContent {
2151 #[facet(rename = "_text", html::text)]
2153 Text(String),
2154
2155 #[facet(rename = "header")]
2158 Header(Header),
2159 #[facet(rename = "footer")]
2161 Footer(Footer),
2162 #[facet(rename = "main")]
2164 Main(Main),
2165 #[facet(rename = "article")]
2167 Article(Article),
2168 #[facet(rename = "section")]
2170 Section(Section),
2171 #[facet(rename = "nav")]
2173 Nav(Nav),
2174 #[facet(rename = "aside")]
2176 Aside(Aside),
2177 #[facet(rename = "address")]
2179 Address(Address),
2180
2181 #[facet(rename = "h1")]
2184 H1(H1),
2185 #[facet(rename = "h2")]
2187 H2(H2),
2188 #[facet(rename = "h3")]
2190 H3(H3),
2191 #[facet(rename = "h4")]
2193 H4(H4),
2194 #[facet(rename = "h5")]
2196 H5(H5),
2197 #[facet(rename = "h6")]
2199 H6(H6),
2200
2201 #[facet(rename = "p")]
2204 P(P),
2205 #[facet(rename = "div")]
2207 Div(Div),
2208 #[facet(rename = "pre")]
2210 Pre(Pre),
2211 #[facet(rename = "blockquote")]
2213 Blockquote(Blockquote),
2214 #[facet(rename = "ol")]
2216 Ol(Ol),
2217 #[facet(rename = "ul")]
2219 Ul(Ul),
2220 #[facet(rename = "dl")]
2222 Dl(Dl),
2223 #[facet(rename = "figure")]
2225 Figure(Figure),
2226 #[facet(rename = "hr")]
2228 Hr(Hr),
2229
2230 #[facet(rename = "a")]
2233 A(A),
2234 #[facet(rename = "span")]
2236 Span(Span),
2237 #[facet(rename = "em")]
2239 Em(Em),
2240 #[facet(rename = "strong")]
2242 Strong(Strong),
2243 #[facet(rename = "code")]
2245 Code(Code),
2246 #[facet(rename = "img")]
2248 Img(Img),
2249 #[facet(rename = "br")]
2251 Br(Br),
2252
2253 #[facet(rename = "table")]
2256 Table(Table),
2257
2258 #[facet(rename = "form")]
2261 Form(Form),
2262 #[facet(rename = "input")]
2264 Input(Input),
2265 #[facet(rename = "button")]
2267 Button(Button),
2268 #[facet(rename = "select")]
2270 Select(Select),
2271 #[facet(rename = "textarea")]
2273 Textarea(Textarea),
2274 #[facet(rename = "label")]
2276 Label(Label),
2277 #[facet(rename = "fieldset")]
2279 Fieldset(Fieldset),
2280
2281 #[facet(rename = "details")]
2284 Details(Details),
2285 #[facet(rename = "dialog")]
2287 Dialog(Dialog),
2288
2289 #[facet(rename = "iframe")]
2292 Iframe(Iframe),
2293 #[facet(rename = "video")]
2295 Video(Video),
2296 #[facet(rename = "audio")]
2298 Audio(Audio),
2299 #[facet(rename = "picture")]
2301 Picture(Picture),
2302 #[facet(rename = "canvas")]
2304 Canvas(Canvas),
2305 #[facet(rename = "svg")]
2307 Svg(Svg),
2308
2309 #[facet(rename = "script")]
2312 Script(Script),
2313 #[facet(rename = "noscript")]
2315 Noscript(Noscript),
2316 #[facet(rename = "template")]
2318 Template(Template),
2319}
2320
2321#[derive(Facet)]
2323#[repr(u8)]
2324#[allow(clippy::large_enum_variant)] pub enum PhrasingContent {
2326 #[facet(rename = "_text", html::text)]
2328 Text(String),
2329 #[facet(rename = "a")]
2331 A(A),
2332 #[facet(rename = "span")]
2334 Span(Span),
2335 #[facet(rename = "em")]
2337 Em(Em),
2338 #[facet(rename = "strong")]
2340 Strong(Strong),
2341 #[facet(rename = "small")]
2343 Small(Small),
2344 #[facet(rename = "s")]
2346 S(S),
2347 #[facet(rename = "cite")]
2349 Cite(Cite),
2350 #[facet(rename = "q")]
2352 Q(Q),
2353 #[facet(rename = "dfn")]
2355 Dfn(Dfn),
2356 #[facet(rename = "abbr")]
2358 Abbr(Abbr),
2359 #[facet(rename = "data")]
2361 Data(Data),
2362 #[facet(rename = "time")]
2364 Time(Time),
2365 #[facet(rename = "code")]
2367 Code(Code),
2368 #[facet(rename = "var")]
2370 Var(Var),
2371 #[facet(rename = "samp")]
2373 Samp(Samp),
2374 #[facet(rename = "kbd")]
2376 Kbd(Kbd),
2377 #[facet(rename = "sub")]
2379 Sub(Sub),
2380 #[facet(rename = "sup")]
2382 Sup(Sup),
2383 #[facet(rename = "i")]
2385 I(I),
2386 #[facet(rename = "b")]
2388 B(B),
2389 #[facet(rename = "u")]
2391 U(U),
2392 #[facet(rename = "mark")]
2394 Mark(Mark),
2395 #[facet(rename = "bdi")]
2397 Bdi(Bdi),
2398 #[facet(rename = "bdo")]
2400 Bdo(Bdo),
2401 #[facet(rename = "br")]
2403 Br(Br),
2404 #[facet(rename = "wbr")]
2406 Wbr(Wbr),
2407 #[facet(rename = "img")]
2409 Img(Img),
2410 #[facet(rename = "input")]
2412 Input(Input),
2413 #[facet(rename = "button")]
2415 Button(Button),
2416 #[facet(rename = "select")]
2418 Select(Select),
2419 #[facet(rename = "textarea")]
2421 Textarea(Textarea),
2422 #[facet(rename = "label")]
2424 Label(Label),
2425 #[facet(rename = "output")]
2427 Output(Output),
2428 #[facet(rename = "progress")]
2430 Progress(Progress),
2431 #[facet(rename = "meter")]
2433 Meter(Meter),
2434 #[facet(rename = "script")]
2436 Script(Script),
2437}