1use facet::Facet;
76use facet_html as html;
77
78#[derive(Default, Facet)]
88#[facet(default, skip_all_unless_truthy)]
89pub struct GlobalAttrs {
90 #[facet(html::attribute, default)]
93 pub id: Option<String>,
94 #[facet(html::attribute, default)]
96 pub class: Option<String>,
97 #[facet(html::attribute, default)]
99 pub style: Option<String>,
100 #[facet(html::attribute, default, rename = "title")]
104 pub tooltip: Option<String>,
105 #[facet(html::attribute, default)]
107 pub lang: Option<String>,
108 #[facet(html::attribute, default)]
110 pub dir: Option<String>,
111 #[facet(html::attribute, default)]
113 pub hidden: Option<String>,
114 #[facet(html::attribute, default)]
116 pub tabindex: Option<String>,
117 #[facet(html::attribute, default)]
119 pub accesskey: Option<String>,
120 #[facet(html::attribute, default)]
122 pub draggable: Option<String>,
123 #[facet(html::attribute, default)]
125 pub contenteditable: Option<String>,
126 #[facet(html::attribute, default)]
128 pub spellcheck: Option<String>,
129 #[facet(html::attribute, default)]
131 pub translate: Option<String>,
132 #[facet(html::attribute, default)]
134 pub role: Option<String>,
135
136 #[facet(html::attribute, default)]
139 pub onclick: Option<String>,
140 #[facet(html::attribute, default)]
142 pub ondblclick: Option<String>,
143 #[facet(html::attribute, default)]
145 pub onmousedown: Option<String>,
146 #[facet(html::attribute, default)]
148 pub onmouseover: Option<String>,
149 #[facet(html::attribute, default)]
151 pub onmouseout: Option<String>,
152 #[facet(html::attribute, default)]
154 pub onmouseup: Option<String>,
155 #[facet(html::attribute, default)]
157 pub onmouseenter: Option<String>,
158 #[facet(html::attribute, default)]
160 pub onmouseleave: Option<String>,
161 #[facet(html::attribute, default)]
163 pub onkeydown: Option<String>,
164 #[facet(html::attribute, default)]
166 pub onkeyup: Option<String>,
167 #[facet(html::attribute, default)]
169 pub onfocus: Option<String>,
170 #[facet(html::attribute, default)]
172 pub onblur: Option<String>,
173 #[facet(html::attribute, default)]
175 pub onchange: Option<String>,
176 #[facet(html::attribute, default)]
178 pub oninput: Option<String>,
179 #[facet(html::attribute, default)]
181 pub onsubmit: Option<String>,
182 #[facet(html::attribute, default)]
184 pub onload: Option<String>,
185 #[facet(html::attribute, default)]
187 pub onerror: Option<String>,
188 #[facet(html::attribute, default)]
190 pub onscroll: Option<String>,
191 #[facet(html::attribute, default)]
193 pub oncontextmenu: Option<String>,
194
195 #[facet(flatten, default)]
201 pub extra: std::collections::BTreeMap<String, String>,
202}
203
204#[derive(Default, Facet)]
210#[facet(rename = "html")]
211pub struct Html {
212 #[facet(html::attribute, default)]
217 pub doctype: Option<String>,
218 #[facet(flatten, default)]
220 pub attrs: GlobalAttrs,
221 #[facet(default)]
223 pub head: Option<Head>,
224 #[facet(default)]
226 pub body: Option<Body>,
227}
228
229#[derive(Default, Facet)]
231#[facet(rename = "head")]
232pub struct Head {
233 #[facet(flatten, default)]
235 pub attrs: GlobalAttrs,
236 #[facet(default)]
238 pub title: Option<Title>,
239 #[facet(default)]
241 pub base: Option<Base>,
242 #[facet(html::elements, default)]
244 pub link: Vec<Link>,
245 #[facet(html::elements, default)]
247 pub meta: Vec<Meta>,
248 #[facet(html::elements, default)]
250 pub style: Vec<Style>,
251 #[facet(html::elements, default)]
253 pub script: Vec<Script>,
254}
255
256#[derive(Default, Facet)]
258#[facet(rename = "body")]
259pub struct Body {
260 #[facet(flatten, default)]
262 pub attrs: GlobalAttrs,
263 #[facet(html::elements, default)]
265 #[facet(recursive_type)]
266 pub children: Vec<FlowContent>,
267}
268
269#[derive(Default, Facet)]
275#[facet(rename = "title")]
276pub struct Title {
277 #[facet(flatten, default)]
279 pub attrs: GlobalAttrs,
280 #[facet(html::text, default)]
282 pub text: String,
283}
284
285#[derive(Default, Facet)]
287#[facet(rename = "base")]
288pub struct Base {
289 #[facet(flatten, default)]
291 pub attrs: GlobalAttrs,
292 #[facet(html::attribute, default)]
294 pub href: Option<String>,
295 #[facet(html::attribute, default)]
297 pub target: Option<String>,
298}
299
300#[derive(Default, Facet)]
302#[facet(rename = "link")]
303pub struct Link {
304 #[facet(flatten, default)]
306 pub attrs: GlobalAttrs,
307 #[facet(html::attribute, default)]
309 pub href: Option<String>,
310 #[facet(html::attribute, default)]
312 pub rel: Option<String>,
313 #[facet(html::attribute, default, rename = "type")]
315 pub type_: Option<String>,
316 #[facet(html::attribute, default)]
318 pub media: Option<String>,
319 #[facet(html::attribute, default)]
321 pub integrity: Option<String>,
322 #[facet(html::attribute, default)]
324 pub crossorigin: Option<String>,
325 #[facet(html::attribute, default)]
327 pub sizes: Option<String>,
328 #[facet(html::attribute, default, rename = "as")]
330 pub as_: Option<String>,
331}
332
333#[derive(Default, Facet)]
335#[facet(rename = "meta")]
336pub struct Meta {
337 #[facet(flatten, default)]
339 pub attrs: GlobalAttrs,
340 #[facet(html::attribute, default)]
342 pub name: Option<String>,
343 #[facet(html::attribute, default)]
345 pub content: Option<String>,
346 #[facet(html::attribute, default)]
348 pub charset: Option<String>,
349 #[facet(html::attribute, default, rename = "http-equiv")]
351 pub http_equiv: Option<String>,
352 #[facet(html::attribute, default)]
354 pub property: Option<String>,
355}
356
357#[derive(Default, Facet)]
359#[facet(rename = "style")]
360pub struct Style {
361 #[facet(flatten, default)]
363 pub attrs: GlobalAttrs,
364 #[facet(html::attribute, default)]
366 pub media: Option<String>,
367 #[facet(html::attribute, default, rename = "type")]
369 pub type_: Option<String>,
370 #[facet(html::text, default)]
372 pub text: String,
373}
374
375#[derive(Default, Facet)]
381#[facet(rename = "header")]
382pub struct Header {
383 #[facet(flatten, default)]
385 pub attrs: GlobalAttrs,
386 #[facet(html::elements, default)]
388 #[facet(recursive_type)]
389 pub children: Vec<FlowContent>,
390}
391
392#[derive(Default, Facet)]
394#[facet(rename = "footer")]
395pub struct Footer {
396 #[facet(flatten, default)]
398 pub attrs: GlobalAttrs,
399 #[facet(html::elements, default)]
401 #[facet(recursive_type)]
402 pub children: Vec<FlowContent>,
403}
404
405#[derive(Default, Facet)]
407#[facet(rename = "main")]
408pub struct Main {
409 #[facet(flatten, default)]
411 pub attrs: GlobalAttrs,
412 #[facet(html::elements, default)]
414 #[facet(recursive_type)]
415 pub children: Vec<FlowContent>,
416}
417
418#[derive(Default, Facet)]
420#[facet(rename = "article")]
421pub struct Article {
422 #[facet(flatten, default)]
424 pub attrs: GlobalAttrs,
425 #[facet(html::elements, default)]
427 #[facet(recursive_type)]
428 pub children: Vec<FlowContent>,
429}
430
431#[derive(Default, Facet)]
433#[facet(rename = "section")]
434pub struct Section {
435 #[facet(flatten, default)]
437 pub attrs: GlobalAttrs,
438 #[facet(html::elements, default)]
440 #[facet(recursive_type)]
441 pub children: Vec<FlowContent>,
442}
443
444#[derive(Default, Facet)]
446#[facet(rename = "nav")]
447pub struct Nav {
448 #[facet(flatten, default)]
450 pub attrs: GlobalAttrs,
451 #[facet(html::elements, default)]
453 #[facet(recursive_type)]
454 pub children: Vec<FlowContent>,
455}
456
457#[derive(Default, Facet)]
459#[facet(rename = "aside")]
460pub struct Aside {
461 #[facet(flatten, default)]
463 pub attrs: GlobalAttrs,
464 #[facet(html::elements, default)]
466 #[facet(recursive_type)]
467 pub children: Vec<FlowContent>,
468}
469
470#[derive(Default, Facet)]
472#[facet(rename = "address")]
473pub struct Address {
474 #[facet(flatten, default)]
476 pub attrs: GlobalAttrs,
477 #[facet(html::elements, default)]
479 #[facet(recursive_type)]
480 pub children: Vec<FlowContent>,
481}
482
483#[derive(Default, Facet)]
489#[facet(rename = "h1")]
490pub struct H1 {
491 #[facet(flatten, default)]
493 pub attrs: GlobalAttrs,
494 #[facet(html::elements, default)]
496 #[facet(recursive_type)]
497 pub children: Vec<PhrasingContent>,
498}
499
500#[derive(Default, Facet)]
502#[facet(rename = "h2")]
503pub struct H2 {
504 #[facet(flatten, default)]
506 pub attrs: GlobalAttrs,
507 #[facet(html::elements, default)]
509 #[facet(recursive_type)]
510 pub children: Vec<PhrasingContent>,
511}
512
513#[derive(Default, Facet)]
515#[facet(rename = "h3")]
516pub struct H3 {
517 #[facet(flatten, default)]
519 pub attrs: GlobalAttrs,
520 #[facet(html::elements, default)]
522 #[facet(recursive_type)]
523 pub children: Vec<PhrasingContent>,
524}
525
526#[derive(Default, Facet)]
528#[facet(rename = "h4")]
529pub struct H4 {
530 #[facet(flatten, default)]
532 pub attrs: GlobalAttrs,
533 #[facet(html::elements, default)]
535 #[facet(recursive_type)]
536 pub children: Vec<PhrasingContent>,
537}
538
539#[derive(Default, Facet)]
541#[facet(rename = "h5")]
542pub struct H5 {
543 #[facet(flatten, default)]
545 pub attrs: GlobalAttrs,
546 #[facet(html::elements, default)]
548 #[facet(recursive_type)]
549 pub children: Vec<PhrasingContent>,
550}
551
552#[derive(Default, Facet)]
554#[facet(rename = "h6")]
555pub struct H6 {
556 #[facet(flatten, default)]
558 pub attrs: GlobalAttrs,
559 #[facet(html::elements, default)]
561 #[facet(recursive_type)]
562 pub children: Vec<PhrasingContent>,
563}
564
565#[derive(Default, Facet)]
571#[facet(rename = "p")]
572pub struct P {
573 #[facet(flatten, default)]
575 pub attrs: GlobalAttrs,
576 #[facet(html::elements, default)]
578 #[facet(recursive_type)]
579 pub children: Vec<PhrasingContent>,
580}
581
582#[derive(Default, Facet)]
584#[facet(rename = "div")]
585pub struct Div {
586 #[facet(flatten, default)]
588 pub attrs: GlobalAttrs,
589 #[facet(html::elements, default)]
591 #[facet(recursive_type)]
592 pub children: Vec<FlowContent>,
593}
594
595#[derive(Default, Facet)]
597#[facet(rename = "span")]
598pub struct Span {
599 #[facet(flatten, default)]
601 pub attrs: GlobalAttrs,
602 #[facet(html::elements, default)]
604 #[facet(recursive_type)]
605 pub children: Vec<PhrasingContent>,
606}
607
608#[derive(Default, Facet)]
610#[facet(rename = "pre")]
611pub struct Pre {
612 #[facet(flatten, default)]
614 pub attrs: GlobalAttrs,
615 #[facet(html::elements, default)]
617 #[facet(recursive_type)]
618 pub children: Vec<PhrasingContent>,
619}
620
621#[derive(Default, Facet)]
623#[facet(rename = "blockquote")]
624pub struct Blockquote {
625 #[facet(flatten, default)]
627 pub attrs: GlobalAttrs,
628 #[facet(html::attribute, default)]
630 pub cite: Option<String>,
631 #[facet(html::elements, default)]
633 #[facet(recursive_type)]
634 pub children: Vec<FlowContent>,
635}
636
637#[derive(Default, Facet)]
639#[facet(rename = "ol")]
640pub struct Ol {
641 #[facet(flatten, default)]
643 pub attrs: GlobalAttrs,
644 #[facet(html::attribute, default)]
646 pub start: Option<String>,
647 #[facet(html::attribute, default, rename = "type")]
649 pub type_: Option<String>,
650 #[facet(html::attribute, default)]
652 pub reversed: Option<String>,
653 #[facet(html::elements, default)]
655 pub li: Vec<Li>,
656}
657
658#[derive(Default, Facet)]
660#[facet(rename = "ul")]
661pub struct Ul {
662 #[facet(flatten, default)]
664 pub attrs: GlobalAttrs,
665 #[facet(html::elements, default)]
667 pub li: Vec<Li>,
668}
669
670#[derive(Default, Facet)]
672#[facet(rename = "li")]
673pub struct Li {
674 #[facet(flatten, default)]
676 pub attrs: GlobalAttrs,
677 #[facet(html::attribute, default)]
679 pub value: Option<String>,
680 #[facet(html::elements, default)]
682 #[facet(recursive_type)]
683 pub children: Vec<FlowContent>,
684}
685
686#[derive(Default, Facet)]
688#[facet(rename = "dl")]
689pub struct Dl {
690 #[facet(flatten, default)]
692 pub attrs: GlobalAttrs,
693 #[facet(html::elements, default)]
695 pub dt: Vec<Dt>,
696 #[facet(html::elements, default)]
698 pub dd: Vec<Dd>,
699}
700
701#[derive(Default, Facet)]
703#[facet(rename = "dt")]
704pub struct Dt {
705 #[facet(flatten, default)]
707 pub attrs: GlobalAttrs,
708 #[facet(html::elements, default)]
710 #[facet(recursive_type)]
711 pub children: Vec<FlowContent>,
712}
713
714#[derive(Default, Facet)]
716#[facet(rename = "dd")]
717pub struct Dd {
718 #[facet(flatten, default)]
720 pub attrs: GlobalAttrs,
721 #[facet(html::elements, default)]
723 #[facet(recursive_type)]
724 pub children: Vec<FlowContent>,
725}
726
727#[derive(Default, Facet)]
729#[facet(rename = "figure")]
730pub struct Figure {
731 #[facet(flatten, default)]
733 pub attrs: GlobalAttrs,
734 #[facet(default)]
736 pub figcaption: Option<Figcaption>,
737 #[facet(html::elements, default)]
739 #[facet(recursive_type)]
740 pub children: Vec<FlowContent>,
741}
742
743#[derive(Default, Facet)]
745#[facet(rename = "figcaption")]
746pub struct Figcaption {
747 #[facet(flatten, default)]
749 pub attrs: GlobalAttrs,
750 #[facet(html::elements, default)]
752 #[facet(recursive_type)]
753 pub children: Vec<FlowContent>,
754}
755
756#[derive(Default, Facet)]
758#[facet(rename = "hr")]
759pub struct Hr {
760 #[facet(flatten, default)]
762 pub attrs: GlobalAttrs,
763}
764
765#[derive(Default, Facet)]
771#[facet(rename = "a")]
772pub struct A {
773 #[facet(flatten, default)]
775 pub attrs: GlobalAttrs,
776 #[facet(html::attribute, default)]
778 pub href: Option<String>,
779 #[facet(html::attribute, default)]
781 pub target: Option<String>,
782 #[facet(html::attribute, default)]
784 pub rel: Option<String>,
785 #[facet(html::attribute, default)]
787 pub download: Option<String>,
788 #[facet(html::attribute, default, rename = "type")]
790 pub type_: Option<String>,
791 #[facet(html::attribute, default)]
793 pub hreflang: Option<String>,
794 #[facet(html::attribute, default)]
796 pub referrerpolicy: Option<String>,
797 #[facet(html::elements, default)]
799 #[facet(recursive_type)]
800 pub children: Vec<PhrasingContent>,
801}
802
803#[derive(Default, Facet)]
805#[facet(rename = "em")]
806pub struct Em {
807 #[facet(flatten, default)]
809 pub attrs: GlobalAttrs,
810 #[facet(html::elements, default)]
812 #[facet(recursive_type)]
813 pub children: Vec<PhrasingContent>,
814}
815
816#[derive(Default, Facet)]
818#[facet(rename = "strong")]
819pub struct Strong {
820 #[facet(flatten, default)]
822 pub attrs: GlobalAttrs,
823 #[facet(html::elements, default)]
825 #[facet(recursive_type)]
826 pub children: Vec<PhrasingContent>,
827}
828
829#[derive(Default, Facet)]
831#[facet(rename = "small")]
832pub struct Small {
833 #[facet(flatten, default)]
835 pub attrs: GlobalAttrs,
836 #[facet(html::elements, default)]
838 #[facet(recursive_type)]
839 pub children: Vec<PhrasingContent>,
840}
841
842#[derive(Default, Facet)]
844#[facet(rename = "s")]
845pub struct S {
846 #[facet(flatten, default)]
848 pub attrs: GlobalAttrs,
849 #[facet(html::elements, default)]
851 #[facet(recursive_type)]
852 pub children: Vec<PhrasingContent>,
853}
854
855#[derive(Default, Facet)]
857#[facet(rename = "cite")]
858pub struct Cite {
859 #[facet(flatten, default)]
861 pub attrs: GlobalAttrs,
862 #[facet(html::elements, default)]
864 #[facet(recursive_type)]
865 pub children: Vec<PhrasingContent>,
866}
867
868#[derive(Default, Facet)]
870#[facet(rename = "q")]
871pub struct Q {
872 #[facet(flatten, default)]
874 pub attrs: GlobalAttrs,
875 #[facet(html::attribute, default)]
877 pub cite: Option<String>,
878 #[facet(html::elements, default)]
880 #[facet(recursive_type)]
881 pub children: Vec<PhrasingContent>,
882}
883
884#[derive(Default, Facet)]
886#[facet(rename = "dfn")]
887pub struct Dfn {
888 #[facet(flatten, default)]
890 pub attrs: GlobalAttrs,
891 #[facet(html::elements, default)]
893 #[facet(recursive_type)]
894 pub children: Vec<PhrasingContent>,
895}
896
897#[derive(Default, Facet)]
899#[facet(rename = "abbr")]
900pub struct Abbr {
901 #[facet(flatten, default)]
903 pub attrs: GlobalAttrs,
904 #[facet(html::elements, default)]
906 #[facet(recursive_type)]
907 pub children: Vec<PhrasingContent>,
908}
909
910#[derive(Default, Facet)]
912#[facet(rename = "ruby")]
913pub struct Ruby {
914 #[facet(flatten, default)]
916 pub attrs: GlobalAttrs,
917 #[facet(html::elements, default)]
919 #[facet(recursive_type)]
920 pub children: Vec<PhrasingContent>,
921}
922
923#[derive(Default, Facet)]
925#[facet(rename = "data")]
926pub struct Data {
927 #[facet(flatten, default)]
929 pub attrs: GlobalAttrs,
930 #[facet(html::attribute, default)]
932 pub value: Option<String>,
933 #[facet(html::elements, default)]
935 #[facet(recursive_type)]
936 pub children: Vec<PhrasingContent>,
937}
938
939#[derive(Default, Facet)]
941#[facet(rename = "time")]
942pub struct Time {
943 #[facet(flatten, default)]
945 pub attrs: GlobalAttrs,
946 #[facet(html::attribute, default)]
948 pub datetime: Option<String>,
949 #[facet(html::elements, default)]
951 #[facet(recursive_type)]
952 pub children: Vec<PhrasingContent>,
953}
954
955#[derive(Default, Facet)]
957#[facet(rename = "code")]
958pub struct Code {
959 #[facet(flatten, default)]
961 pub attrs: GlobalAttrs,
962 #[facet(html::elements, default)]
964 #[facet(recursive_type)]
965 pub children: Vec<PhrasingContent>,
966}
967
968#[derive(Default, Facet)]
970#[facet(rename = "var")]
971pub struct Var {
972 #[facet(flatten, default)]
974 pub attrs: GlobalAttrs,
975 #[facet(html::elements, default)]
977 #[facet(recursive_type)]
978 pub children: Vec<PhrasingContent>,
979}
980
981#[derive(Default, Facet)]
983#[facet(rename = "samp")]
984pub struct Samp {
985 #[facet(flatten, default)]
987 pub attrs: GlobalAttrs,
988 #[facet(html::elements, default)]
990 #[facet(recursive_type)]
991 pub children: Vec<PhrasingContent>,
992}
993
994#[derive(Default, Facet)]
996#[facet(rename = "kbd")]
997pub struct Kbd {
998 #[facet(flatten, default)]
1000 pub attrs: GlobalAttrs,
1001 #[facet(html::elements, default)]
1003 #[facet(recursive_type)]
1004 pub children: Vec<PhrasingContent>,
1005}
1006
1007#[derive(Default, Facet)]
1009#[facet(rename = "sub")]
1010pub struct Sub {
1011 #[facet(flatten, default)]
1013 pub attrs: GlobalAttrs,
1014 #[facet(html::elements, default)]
1016 #[facet(recursive_type)]
1017 pub children: Vec<PhrasingContent>,
1018}
1019
1020#[derive(Default, Facet)]
1022#[facet(rename = "sup")]
1023pub struct Sup {
1024 #[facet(flatten, default)]
1026 pub attrs: GlobalAttrs,
1027 #[facet(html::elements, default)]
1029 #[facet(recursive_type)]
1030 pub children: Vec<PhrasingContent>,
1031}
1032
1033#[derive(Default, Facet)]
1035#[facet(rename = "i")]
1036pub struct I {
1037 #[facet(flatten, default)]
1039 pub attrs: GlobalAttrs,
1040 #[facet(html::elements, default)]
1042 #[facet(recursive_type)]
1043 pub children: Vec<PhrasingContent>,
1044}
1045
1046#[derive(Default, Facet)]
1048#[facet(rename = "b")]
1049pub struct B {
1050 #[facet(flatten, default)]
1052 pub attrs: GlobalAttrs,
1053 #[facet(html::elements, default)]
1055 #[facet(recursive_type)]
1056 pub children: Vec<PhrasingContent>,
1057}
1058
1059#[derive(Default, Facet)]
1061#[facet(rename = "u")]
1062pub struct U {
1063 #[facet(flatten, default)]
1065 pub attrs: GlobalAttrs,
1066 #[facet(html::elements, default)]
1068 #[facet(recursive_type)]
1069 pub children: Vec<PhrasingContent>,
1070}
1071
1072#[derive(Default, Facet)]
1074#[facet(rename = "mark")]
1075pub struct Mark {
1076 #[facet(flatten, default)]
1078 pub attrs: GlobalAttrs,
1079 #[facet(html::elements, default)]
1081 #[facet(recursive_type)]
1082 pub children: Vec<PhrasingContent>,
1083}
1084
1085#[derive(Default, Facet)]
1087#[facet(rename = "bdi")]
1088pub struct Bdi {
1089 #[facet(flatten, default)]
1091 pub attrs: GlobalAttrs,
1092 #[facet(html::elements, default)]
1094 #[facet(recursive_type)]
1095 pub children: Vec<PhrasingContent>,
1096}
1097
1098#[derive(Default, Facet)]
1100#[facet(rename = "bdo")]
1101pub struct Bdo {
1102 #[facet(flatten, default)]
1104 pub attrs: GlobalAttrs,
1105 #[facet(html::elements, default)]
1107 #[facet(recursive_type)]
1108 pub children: Vec<PhrasingContent>,
1109}
1110
1111#[derive(Default, Facet)]
1113#[facet(rename = "br")]
1114pub struct Br {
1115 #[facet(flatten, default)]
1117 pub attrs: GlobalAttrs,
1118}
1119
1120#[derive(Default, Facet)]
1122#[facet(rename = "wbr")]
1123pub struct Wbr {
1124 #[facet(flatten, default)]
1126 pub attrs: GlobalAttrs,
1127}
1128
1129#[derive(Default, Facet)]
1135#[facet(rename = "img")]
1136pub struct Img {
1137 #[facet(flatten, default)]
1139 pub attrs: GlobalAttrs,
1140 #[facet(html::attribute, default)]
1142 pub src: Option<String>,
1143 #[facet(html::attribute, default)]
1145 pub alt: Option<String>,
1146 #[facet(html::attribute, default)]
1148 pub width: Option<String>,
1149 #[facet(html::attribute, default)]
1151 pub height: Option<String>,
1152 #[facet(html::attribute, default)]
1154 pub srcset: Option<String>,
1155 #[facet(html::attribute, default)]
1157 pub sizes: Option<String>,
1158 #[facet(html::attribute, default)]
1160 pub loading: Option<String>,
1161 #[facet(html::attribute, default)]
1163 pub decoding: Option<String>,
1164 #[facet(html::attribute, default)]
1166 pub crossorigin: Option<String>,
1167 #[facet(html::attribute, default)]
1169 pub referrerpolicy: Option<String>,
1170 #[facet(html::attribute, default)]
1172 pub usemap: Option<String>,
1173 #[facet(html::attribute, default)]
1175 pub ismap: Option<String>,
1176}
1177
1178#[derive(Default, Facet)]
1180#[facet(rename = "iframe")]
1181pub struct Iframe {
1182 #[facet(flatten, default)]
1184 pub attrs: GlobalAttrs,
1185 #[facet(html::attribute, default)]
1187 pub src: Option<String>,
1188 #[facet(html::attribute, default)]
1190 pub srcdoc: Option<String>,
1191 #[facet(html::attribute, default)]
1193 pub name: Option<String>,
1194 #[facet(html::attribute, default)]
1196 pub width: Option<String>,
1197 #[facet(html::attribute, default)]
1199 pub height: Option<String>,
1200 #[facet(html::attribute, default)]
1202 pub sandbox: Option<String>,
1203 #[facet(html::attribute, default)]
1205 pub allow: Option<String>,
1206 #[facet(html::attribute, default)]
1208 pub allowfullscreen: Option<String>,
1209 #[facet(html::attribute, default)]
1211 pub loading: Option<String>,
1212 #[facet(html::attribute, default)]
1214 pub referrerpolicy: Option<String>,
1215}
1216
1217#[derive(Default, Facet)]
1219#[facet(rename = "object")]
1220pub struct Object {
1221 #[facet(flatten, default)]
1223 pub attrs: GlobalAttrs,
1224 #[facet(html::attribute, default)]
1226 pub data: Option<String>,
1227 #[facet(html::attribute, default, rename = "type")]
1229 pub type_: Option<String>,
1230 #[facet(html::attribute, default)]
1232 pub name: Option<String>,
1233 #[facet(html::attribute, default)]
1235 pub width: Option<String>,
1236 #[facet(html::attribute, default)]
1238 pub height: Option<String>,
1239 #[facet(html::attribute, default)]
1241 pub usemap: Option<String>,
1242 #[facet(html::elements, default)]
1244 #[facet(recursive_type)]
1245 pub children: Vec<FlowContent>,
1246}
1247
1248#[derive(Default, Facet)]
1250#[facet(rename = "video")]
1251pub struct Video {
1252 #[facet(flatten, default)]
1254 pub attrs: GlobalAttrs,
1255 #[facet(html::attribute, default)]
1257 pub src: Option<String>,
1258 #[facet(html::attribute, default)]
1260 pub poster: Option<String>,
1261 #[facet(html::attribute, default)]
1263 pub width: Option<String>,
1264 #[facet(html::attribute, default)]
1266 pub height: Option<String>,
1267 #[facet(html::attribute, default)]
1269 pub controls: Option<String>,
1270 #[facet(html::attribute, default)]
1272 pub autoplay: Option<String>,
1273 #[facet(html::attribute, default, rename = "loop")]
1275 pub loop_: Option<String>,
1276 #[facet(html::attribute, default)]
1278 pub muted: Option<String>,
1279 #[facet(html::attribute, default)]
1281 pub preload: Option<String>,
1282 #[facet(html::attribute, default)]
1284 pub playsinline: Option<String>,
1285 #[facet(html::attribute, default)]
1287 pub crossorigin: Option<String>,
1288 #[facet(html::elements, default)]
1290 pub source: Vec<Source>,
1291 #[facet(html::elements, default)]
1293 pub track: Vec<Track>,
1294}
1295
1296#[derive(Default, Facet)]
1298#[facet(rename = "audio")]
1299pub struct Audio {
1300 #[facet(flatten, default)]
1302 pub attrs: GlobalAttrs,
1303 #[facet(html::attribute, default)]
1305 pub src: Option<String>,
1306 #[facet(html::attribute, default)]
1308 pub controls: Option<String>,
1309 #[facet(html::attribute, default)]
1311 pub autoplay: Option<String>,
1312 #[facet(html::attribute, default, rename = "loop")]
1314 pub loop_: Option<String>,
1315 #[facet(html::attribute, default)]
1317 pub muted: Option<String>,
1318 #[facet(html::attribute, default)]
1320 pub preload: Option<String>,
1321 #[facet(html::attribute, default)]
1323 pub crossorigin: Option<String>,
1324 #[facet(html::elements, default)]
1326 pub source: Vec<Source>,
1327}
1328
1329#[derive(Default, Facet)]
1331#[facet(rename = "source")]
1332pub struct Source {
1333 #[facet(flatten, default)]
1335 pub attrs: GlobalAttrs,
1336 #[facet(html::attribute, default)]
1338 pub src: Option<String>,
1339 #[facet(html::attribute, default, rename = "type")]
1341 pub type_: Option<String>,
1342 #[facet(html::attribute, default)]
1344 pub srcset: Option<String>,
1345 #[facet(html::attribute, default)]
1347 pub sizes: Option<String>,
1348 #[facet(html::attribute, default)]
1350 pub media: Option<String>,
1351 #[facet(html::attribute, default)]
1353 pub width: Option<String>,
1354 #[facet(html::attribute, default)]
1356 pub height: Option<String>,
1357}
1358
1359#[derive(Default, Facet)]
1361#[facet(rename = "track")]
1362pub struct Track {
1363 #[facet(flatten, default)]
1365 pub attrs: GlobalAttrs,
1366 #[facet(html::attribute, default)]
1368 pub src: Option<String>,
1369 #[facet(html::attribute, default)]
1371 pub kind: Option<String>,
1372 #[facet(html::attribute, default)]
1374 pub srclang: Option<String>,
1375 #[facet(html::attribute, default)]
1377 pub label: Option<String>,
1378 #[facet(html::attribute, default)]
1380 pub default: Option<String>,
1381}
1382
1383#[derive(Default, Facet)]
1385#[facet(rename = "picture")]
1386pub struct Picture {
1387 #[facet(flatten, default)]
1389 pub attrs: GlobalAttrs,
1390 #[facet(html::elements, default)]
1392 pub source: Vec<Source>,
1393 #[facet(default)]
1395 pub img: Option<Img>,
1396}
1397
1398#[derive(Default, Facet)]
1400#[facet(rename = "canvas")]
1401pub struct Canvas {
1402 #[facet(flatten, default)]
1404 pub attrs: GlobalAttrs,
1405 #[facet(html::attribute, default)]
1407 pub width: Option<String>,
1408 #[facet(html::attribute, default)]
1410 pub height: Option<String>,
1411 #[facet(html::elements, default)]
1413 #[facet(recursive_type)]
1414 pub children: Vec<FlowContent>,
1415}
1416
1417#[derive(Default, Facet)]
1419#[facet(rename = "svg")]
1420pub struct Svg {
1421 #[facet(flatten, default)]
1423 pub attrs: GlobalAttrs,
1424 #[facet(html::attribute, default)]
1426 pub width: Option<String>,
1427 #[facet(html::attribute, default)]
1429 pub height: Option<String>,
1430 #[facet(html::attribute, default, rename = "viewBox")]
1432 pub view_box: Option<String>,
1433 #[facet(html::attribute, default)]
1435 pub xmlns: Option<String>,
1436 #[facet(html::attribute, default, rename = "preserveAspectRatio")]
1438 pub preserve_aspect_ratio: Option<String>,
1439}
1440
1441#[derive(Default, Facet)]
1447#[facet(rename = "table")]
1448pub struct Table {
1449 #[facet(flatten, default)]
1451 pub attrs: GlobalAttrs,
1452 #[facet(default)]
1454 pub caption: Option<Caption>,
1455 #[facet(html::elements, default)]
1457 pub colgroup: Vec<Colgroup>,
1458 #[facet(default)]
1460 pub thead: Option<Thead>,
1461 #[facet(html::elements, default)]
1463 pub tbody: Vec<Tbody>,
1464 #[facet(default)]
1466 pub tfoot: Option<Tfoot>,
1467 #[facet(html::elements, default)]
1469 pub tr: Vec<Tr>,
1470}
1471
1472#[derive(Default, Facet)]
1474#[facet(rename = "caption")]
1475pub struct Caption {
1476 #[facet(flatten, default)]
1478 pub attrs: GlobalAttrs,
1479 #[facet(html::elements, default)]
1481 #[facet(recursive_type)]
1482 pub children: Vec<FlowContent>,
1483}
1484
1485#[derive(Default, Facet)]
1487#[facet(rename = "colgroup")]
1488pub struct Colgroup {
1489 #[facet(flatten, default)]
1491 pub attrs: GlobalAttrs,
1492 #[facet(html::attribute, default)]
1494 pub span: Option<String>,
1495 #[facet(html::elements, default)]
1497 pub col: Vec<Col>,
1498}
1499
1500#[derive(Default, Facet)]
1502#[facet(rename = "col")]
1503pub struct Col {
1504 #[facet(flatten, default)]
1506 pub attrs: GlobalAttrs,
1507 #[facet(html::attribute, default)]
1509 pub span: Option<String>,
1510}
1511
1512#[derive(Default, Facet)]
1514#[facet(rename = "thead")]
1515pub struct Thead {
1516 #[facet(flatten, default)]
1518 pub attrs: GlobalAttrs,
1519 #[facet(html::elements, default)]
1521 pub tr: Vec<Tr>,
1522}
1523
1524#[derive(Default, Facet)]
1526#[facet(rename = "tbody")]
1527pub struct Tbody {
1528 #[facet(flatten, default)]
1530 pub attrs: GlobalAttrs,
1531 #[facet(html::elements, default)]
1533 pub tr: Vec<Tr>,
1534}
1535
1536#[derive(Default, Facet)]
1538#[facet(rename = "tfoot")]
1539pub struct Tfoot {
1540 #[facet(flatten, default)]
1542 pub attrs: GlobalAttrs,
1543 #[facet(html::elements, default)]
1545 pub tr: Vec<Tr>,
1546}
1547
1548#[derive(Default, Facet)]
1550#[facet(rename = "tr")]
1551pub struct Tr {
1552 #[facet(flatten, default)]
1554 pub attrs: GlobalAttrs,
1555 #[facet(html::elements, default)]
1557 pub th: Vec<Th>,
1558 #[facet(html::elements, default)]
1560 pub td: Vec<Td>,
1561}
1562
1563#[derive(Default, Facet)]
1565#[facet(rename = "th")]
1566pub struct Th {
1567 #[facet(flatten, default)]
1569 pub attrs: GlobalAttrs,
1570 #[facet(html::attribute, default)]
1572 pub colspan: Option<String>,
1573 #[facet(html::attribute, default)]
1575 pub rowspan: Option<String>,
1576 #[facet(html::attribute, default)]
1578 pub scope: Option<String>,
1579 #[facet(html::attribute, default)]
1581 pub headers: Option<String>,
1582 #[facet(html::attribute, default)]
1584 pub abbr: Option<String>,
1585 #[facet(html::elements, default)]
1587 #[facet(recursive_type)]
1588 pub children: Vec<FlowContent>,
1589}
1590
1591#[derive(Default, Facet)]
1593#[facet(rename = "td")]
1594pub struct Td {
1595 #[facet(flatten, default)]
1597 pub attrs: GlobalAttrs,
1598 #[facet(html::attribute, default)]
1600 pub colspan: Option<String>,
1601 #[facet(html::attribute, default)]
1603 pub rowspan: Option<String>,
1604 #[facet(html::attribute, default)]
1606 pub headers: Option<String>,
1607 #[facet(html::elements, default)]
1609 #[facet(recursive_type)]
1610 pub children: Vec<FlowContent>,
1611}
1612
1613#[derive(Default, Facet)]
1619#[facet(rename = "form")]
1620pub struct Form {
1621 #[facet(flatten, default)]
1623 pub attrs: GlobalAttrs,
1624 #[facet(html::attribute, default)]
1626 pub action: Option<String>,
1627 #[facet(html::attribute, default)]
1629 pub method: Option<String>,
1630 #[facet(html::attribute, default)]
1632 pub enctype: Option<String>,
1633 #[facet(html::attribute, default)]
1635 pub target: Option<String>,
1636 #[facet(html::attribute, default)]
1638 pub name: Option<String>,
1639 #[facet(html::attribute, default)]
1641 pub autocomplete: Option<String>,
1642 #[facet(html::attribute, default)]
1644 pub novalidate: Option<String>,
1645 #[facet(html::attribute, default, rename = "accept-charset")]
1647 pub accept_charset: Option<String>,
1648 #[facet(html::elements, default)]
1650 #[facet(recursive_type)]
1651 pub children: Vec<FlowContent>,
1652}
1653
1654#[derive(Default, Facet)]
1656#[facet(rename = "input")]
1657pub struct Input {
1658 #[facet(flatten, default)]
1660 pub attrs: GlobalAttrs,
1661 #[facet(html::attribute, default, rename = "type")]
1663 pub type_: Option<String>,
1664 #[facet(html::attribute, default)]
1666 pub name: Option<String>,
1667 #[facet(html::attribute, default)]
1669 pub value: Option<String>,
1670 #[facet(html::attribute, default)]
1672 pub placeholder: Option<String>,
1673 #[facet(html::attribute, default)]
1675 pub required: Option<String>,
1676 #[facet(html::attribute, default)]
1678 pub disabled: Option<String>,
1679 #[facet(html::attribute, default)]
1681 pub readonly: Option<String>,
1682 #[facet(html::attribute, default)]
1684 pub checked: Option<String>,
1685 #[facet(html::attribute, default)]
1687 pub autocomplete: Option<String>,
1688 #[facet(html::attribute, default)]
1690 pub autofocus: Option<String>,
1691 #[facet(html::attribute, default)]
1693 pub min: Option<String>,
1694 #[facet(html::attribute, default)]
1696 pub max: Option<String>,
1697 #[facet(html::attribute, default)]
1699 pub step: Option<String>,
1700 #[facet(html::attribute, default)]
1702 pub pattern: Option<String>,
1703 #[facet(html::attribute, default)]
1705 pub size: Option<String>,
1706 #[facet(html::attribute, default)]
1708 pub maxlength: Option<String>,
1709 #[facet(html::attribute, default)]
1711 pub minlength: Option<String>,
1712 #[facet(html::attribute, default)]
1714 pub multiple: Option<String>,
1715 #[facet(html::attribute, default)]
1717 pub accept: Option<String>,
1718 #[facet(html::attribute, default)]
1720 pub alt: Option<String>,
1721 #[facet(html::attribute, default)]
1723 pub src: Option<String>,
1724 #[facet(html::attribute, default)]
1726 pub width: Option<String>,
1727 #[facet(html::attribute, default)]
1729 pub height: Option<String>,
1730 #[facet(html::attribute, default)]
1732 pub list: Option<String>,
1733 #[facet(html::attribute, default)]
1735 pub form: Option<String>,
1736 #[facet(html::attribute, default)]
1738 pub formaction: Option<String>,
1739 #[facet(html::attribute, default)]
1741 pub formmethod: Option<String>,
1742 #[facet(html::attribute, default)]
1744 pub formenctype: Option<String>,
1745 #[facet(html::attribute, default)]
1747 pub formtarget: Option<String>,
1748 #[facet(html::attribute, default)]
1750 pub formnovalidate: Option<String>,
1751}
1752
1753#[derive(Default, Facet)]
1755#[facet(rename = "button")]
1756pub struct Button {
1757 #[facet(flatten, default)]
1759 pub attrs: GlobalAttrs,
1760 #[facet(html::attribute, default, rename = "type")]
1762 pub type_: Option<String>,
1763 #[facet(html::attribute, default)]
1765 pub name: Option<String>,
1766 #[facet(html::attribute, default)]
1768 pub value: Option<String>,
1769 #[facet(html::attribute, default)]
1771 pub disabled: Option<String>,
1772 #[facet(html::attribute, default)]
1774 pub autofocus: Option<String>,
1775 #[facet(html::attribute, default)]
1777 pub form: Option<String>,
1778 #[facet(html::attribute, default)]
1780 pub formaction: Option<String>,
1781 #[facet(html::attribute, default)]
1783 pub formmethod: Option<String>,
1784 #[facet(html::attribute, default)]
1786 pub formenctype: Option<String>,
1787 #[facet(html::attribute, default)]
1789 pub formtarget: Option<String>,
1790 #[facet(html::attribute, default)]
1792 pub formnovalidate: Option<String>,
1793 #[facet(html::elements, default)]
1795 #[facet(recursive_type)]
1796 pub children: Vec<PhrasingContent>,
1797}
1798
1799#[derive(Default, Facet)]
1801#[facet(rename = "select")]
1802pub struct Select {
1803 #[facet(flatten, default)]
1805 pub attrs: GlobalAttrs,
1806 #[facet(html::attribute, default)]
1808 pub name: Option<String>,
1809 #[facet(html::attribute, default)]
1811 pub multiple: Option<String>,
1812 #[facet(html::attribute, default)]
1814 pub size: Option<String>,
1815 #[facet(html::attribute, default)]
1817 pub required: Option<String>,
1818 #[facet(html::attribute, default)]
1820 pub disabled: Option<String>,
1821 #[facet(html::attribute, default)]
1823 pub autofocus: Option<String>,
1824 #[facet(html::attribute, default)]
1826 pub autocomplete: Option<String>,
1827 #[facet(html::attribute, default)]
1829 pub form: Option<String>,
1830 #[facet(html::elements, default)]
1832 pub option: Vec<OptionElement>,
1833 #[facet(html::elements, default)]
1835 pub optgroup: Vec<Optgroup>,
1836}
1837
1838#[derive(Default, Facet)]
1840#[facet(rename = "option")]
1841pub struct OptionElement {
1842 #[facet(flatten, default)]
1844 pub attrs: GlobalAttrs,
1845 #[facet(html::attribute, default)]
1847 pub value: Option<String>,
1848 #[facet(html::attribute, default)]
1850 pub selected: Option<String>,
1851 #[facet(html::attribute, default)]
1853 pub disabled: Option<String>,
1854 #[facet(html::attribute, default)]
1856 pub label: Option<String>,
1857 #[facet(html::text, default)]
1859 pub text: String,
1860}
1861
1862#[derive(Default, Facet)]
1864#[facet(rename = "optgroup")]
1865pub struct Optgroup {
1866 #[facet(flatten, default)]
1868 pub attrs: GlobalAttrs,
1869 #[facet(html::attribute, default)]
1871 pub label: Option<String>,
1872 #[facet(html::attribute, default)]
1874 pub disabled: Option<String>,
1875 #[facet(html::elements, default)]
1877 pub option: Vec<OptionElement>,
1878}
1879
1880#[derive(Default, Facet)]
1882#[facet(rename = "textarea")]
1883pub struct Textarea {
1884 #[facet(flatten, default)]
1886 pub attrs: GlobalAttrs,
1887 #[facet(html::attribute, default)]
1889 pub name: Option<String>,
1890 #[facet(html::attribute, default)]
1892 pub rows: Option<String>,
1893 #[facet(html::attribute, default)]
1895 pub cols: Option<String>,
1896 #[facet(html::attribute, default)]
1898 pub placeholder: Option<String>,
1899 #[facet(html::attribute, default)]
1901 pub required: Option<String>,
1902 #[facet(html::attribute, default)]
1904 pub disabled: Option<String>,
1905 #[facet(html::attribute, default)]
1907 pub readonly: Option<String>,
1908 #[facet(html::attribute, default)]
1910 pub autofocus: Option<String>,
1911 #[facet(html::attribute, default)]
1913 pub autocomplete: Option<String>,
1914 #[facet(html::attribute, default)]
1916 pub maxlength: Option<String>,
1917 #[facet(html::attribute, default)]
1919 pub minlength: Option<String>,
1920 #[facet(html::attribute, default)]
1922 pub wrap: Option<String>,
1923 #[facet(html::attribute, default)]
1925 pub form: Option<String>,
1926 #[facet(html::text, default)]
1928 pub text: String,
1929}
1930
1931#[derive(Default, Facet)]
1933#[facet(rename = "label")]
1934pub struct Label {
1935 #[facet(flatten, default)]
1937 pub attrs: GlobalAttrs,
1938 #[facet(html::attribute, default, rename = "for")]
1940 pub for_: Option<String>,
1941 #[facet(html::elements, default)]
1943 #[facet(recursive_type)]
1944 pub children: Vec<PhrasingContent>,
1945}
1946
1947#[derive(Default, Facet)]
1949#[facet(rename = "fieldset")]
1950pub struct Fieldset {
1951 #[facet(flatten, default)]
1953 pub attrs: GlobalAttrs,
1954 #[facet(html::attribute, default)]
1956 pub name: Option<String>,
1957 #[facet(html::attribute, default)]
1959 pub disabled: Option<String>,
1960 #[facet(html::attribute, default)]
1962 pub form: Option<String>,
1963 #[facet(default)]
1965 pub legend: Option<Legend>,
1966 #[facet(html::elements, default)]
1968 #[facet(recursive_type)]
1969 pub children: Vec<FlowContent>,
1970}
1971
1972#[derive(Default, Facet)]
1974#[facet(rename = "legend")]
1975pub struct Legend {
1976 #[facet(flatten, default)]
1978 pub attrs: GlobalAttrs,
1979 #[facet(html::elements, default)]
1981 #[facet(recursive_type)]
1982 pub children: Vec<PhrasingContent>,
1983}
1984
1985#[derive(Default, Facet)]
1987#[facet(rename = "datalist")]
1988pub struct Datalist {
1989 #[facet(flatten, default)]
1991 pub attrs: GlobalAttrs,
1992 #[facet(html::elements, default)]
1994 pub option: Vec<OptionElement>,
1995}
1996
1997#[derive(Default, Facet)]
1999#[facet(rename = "output")]
2000pub struct Output {
2001 #[facet(flatten, default)]
2003 pub attrs: GlobalAttrs,
2004 #[facet(html::attribute, default, rename = "for")]
2006 pub for_: Option<String>,
2007 #[facet(html::attribute, default)]
2009 pub name: Option<String>,
2010 #[facet(html::attribute, default)]
2012 pub form: Option<String>,
2013 #[facet(html::elements, default)]
2015 #[facet(recursive_type)]
2016 pub children: Vec<PhrasingContent>,
2017}
2018
2019#[derive(Default, Facet)]
2021#[facet(rename = "progress")]
2022pub struct Progress {
2023 #[facet(flatten, default)]
2025 pub attrs: GlobalAttrs,
2026 #[facet(html::attribute, default)]
2028 pub value: Option<String>,
2029 #[facet(html::attribute, default)]
2031 pub max: Option<String>,
2032 #[facet(html::elements, default)]
2034 #[facet(recursive_type)]
2035 pub children: Vec<PhrasingContent>,
2036}
2037
2038#[derive(Default, Facet)]
2040#[facet(rename = "meter")]
2041pub struct Meter {
2042 #[facet(flatten, default)]
2044 pub attrs: GlobalAttrs,
2045 #[facet(html::attribute, default)]
2047 pub value: Option<String>,
2048 #[facet(html::attribute, default)]
2050 pub min: Option<String>,
2051 #[facet(html::attribute, default)]
2053 pub max: Option<String>,
2054 #[facet(html::attribute, default)]
2056 pub low: Option<String>,
2057 #[facet(html::attribute, default)]
2059 pub high: Option<String>,
2060 #[facet(html::attribute, default)]
2062 pub optimum: Option<String>,
2063 #[facet(html::elements, default)]
2065 #[facet(recursive_type)]
2066 pub children: Vec<PhrasingContent>,
2067}
2068
2069#[derive(Default, Facet)]
2075#[facet(rename = "details")]
2076pub struct Details {
2077 #[facet(flatten, default)]
2079 pub attrs: GlobalAttrs,
2080 #[facet(html::attribute, default)]
2082 pub open: Option<String>,
2083 #[facet(default)]
2085 pub summary: Option<Summary>,
2086 #[facet(html::elements, default)]
2088 #[facet(recursive_type)]
2089 pub children: Vec<FlowContent>,
2090}
2091
2092#[derive(Default, Facet)]
2094#[facet(rename = "summary")]
2095pub struct Summary {
2096 #[facet(flatten, default)]
2098 pub attrs: GlobalAttrs,
2099 #[facet(html::elements, default)]
2101 #[facet(recursive_type)]
2102 pub children: Vec<PhrasingContent>,
2103}
2104
2105#[derive(Default, Facet)]
2107#[facet(rename = "dialog")]
2108pub struct Dialog {
2109 #[facet(flatten, default)]
2111 pub attrs: GlobalAttrs,
2112 #[facet(html::attribute, default)]
2114 pub open: Option<String>,
2115 #[facet(html::elements, default)]
2117 #[facet(recursive_type)]
2118 pub children: Vec<FlowContent>,
2119}
2120
2121#[derive(Default, Facet)]
2127#[facet(rename = "script")]
2128pub struct Script {
2129 #[facet(flatten, default)]
2131 pub attrs: GlobalAttrs,
2132 #[facet(html::attribute, default)]
2134 pub src: Option<String>,
2135 #[facet(html::attribute, default, rename = "type")]
2137 pub type_: Option<String>,
2138 #[facet(html::attribute, default, rename = "async")]
2140 pub async_: Option<String>,
2141 #[facet(html::attribute, default)]
2143 pub defer: Option<String>,
2144 #[facet(html::attribute, default)]
2146 pub crossorigin: Option<String>,
2147 #[facet(html::attribute, default)]
2149 pub integrity: Option<String>,
2150 #[facet(html::attribute, default)]
2152 pub referrerpolicy: Option<String>,
2153 #[facet(html::attribute, default)]
2155 pub nomodule: Option<String>,
2156 #[facet(html::text, default)]
2158 pub text: String,
2159}
2160
2161#[derive(Default, Facet)]
2163#[facet(rename = "noscript")]
2164pub struct Noscript {
2165 #[facet(flatten, default)]
2167 pub attrs: GlobalAttrs,
2168 #[facet(html::elements, default)]
2170 #[facet(recursive_type)]
2171 pub children: Vec<FlowContent>,
2172}
2173
2174#[derive(Default, Facet)]
2176#[facet(rename = "template")]
2177pub struct Template {
2178 #[facet(flatten, default)]
2180 pub attrs: GlobalAttrs,
2181 #[facet(html::elements, default)]
2183 #[facet(recursive_type)]
2184 pub children: Vec<FlowContent>,
2185}
2186
2187#[derive(Default, Facet)]
2189#[facet(rename = "slot")]
2190pub struct Slot {
2191 #[facet(flatten, default)]
2193 pub attrs: GlobalAttrs,
2194 #[facet(html::attribute, default)]
2196 pub name: Option<String>,
2197 #[facet(html::elements, default)]
2199 #[facet(recursive_type)]
2200 pub children: Vec<FlowContent>,
2201}
2202
2203#[derive(Default, Facet)]
2225pub struct CustomElement {
2226 #[facet(html::tag, default)]
2231 pub tag: String,
2232 #[facet(flatten, default)]
2234 pub attrs: GlobalAttrs,
2235 #[facet(html::elements, default)]
2237 #[facet(recursive_type)]
2238 pub children: Vec<FlowContent>,
2239}
2240
2241#[derive(Default, Facet)]
2246pub struct CustomPhrasingElement {
2247 #[facet(html::tag, default)]
2249 pub tag: String,
2250 #[facet(flatten, default)]
2252 pub attrs: GlobalAttrs,
2253 #[facet(html::elements, default)]
2255 #[facet(recursive_type)]
2256 pub children: Vec<PhrasingContent>,
2257}
2258
2259#[derive(Facet)]
2265#[repr(u8)]
2266#[allow(clippy::large_enum_variant)] pub enum FlowContent {
2268 #[facet(rename = "_text", html::text)]
2270 Text(String),
2271
2272 #[facet(rename = "header")]
2275 Header(Header),
2276 #[facet(rename = "footer")]
2278 Footer(Footer),
2279 #[facet(rename = "main")]
2281 Main(Main),
2282 #[facet(rename = "article")]
2284 Article(Article),
2285 #[facet(rename = "section")]
2287 Section(Section),
2288 #[facet(rename = "nav")]
2290 Nav(Nav),
2291 #[facet(rename = "aside")]
2293 Aside(Aside),
2294 #[facet(rename = "address")]
2296 Address(Address),
2297
2298 #[facet(rename = "h1")]
2301 H1(H1),
2302 #[facet(rename = "h2")]
2304 H2(H2),
2305 #[facet(rename = "h3")]
2307 H3(H3),
2308 #[facet(rename = "h4")]
2310 H4(H4),
2311 #[facet(rename = "h5")]
2313 H5(H5),
2314 #[facet(rename = "h6")]
2316 H6(H6),
2317
2318 #[facet(rename = "p")]
2321 P(P),
2322 #[facet(rename = "div")]
2324 Div(Div),
2325 #[facet(rename = "pre")]
2327 Pre(Pre),
2328 #[facet(rename = "blockquote")]
2330 Blockquote(Blockquote),
2331 #[facet(rename = "ol")]
2333 Ol(Ol),
2334 #[facet(rename = "ul")]
2336 Ul(Ul),
2337 #[facet(rename = "dl")]
2339 Dl(Dl),
2340 #[facet(rename = "figure")]
2342 Figure(Figure),
2343 #[facet(rename = "hr")]
2345 Hr(Hr),
2346
2347 #[facet(rename = "a")]
2350 A(A),
2351 #[facet(rename = "span")]
2353 Span(Span),
2354 #[facet(rename = "em")]
2356 Em(Em),
2357 #[facet(rename = "strong")]
2359 Strong(Strong),
2360 #[facet(rename = "code")]
2362 Code(Code),
2363 #[facet(rename = "img")]
2365 Img(Img),
2366 #[facet(rename = "br")]
2368 Br(Br),
2369
2370 #[facet(rename = "table")]
2373 Table(Table),
2374
2375 #[facet(rename = "form")]
2378 Form(Form),
2379 #[facet(rename = "input")]
2381 Input(Input),
2382 #[facet(rename = "button")]
2384 Button(Button),
2385 #[facet(rename = "select")]
2387 Select(Select),
2388 #[facet(rename = "textarea")]
2390 Textarea(Textarea),
2391 #[facet(rename = "label")]
2393 Label(Label),
2394 #[facet(rename = "fieldset")]
2396 Fieldset(Fieldset),
2397
2398 #[facet(rename = "details")]
2401 Details(Details),
2402 #[facet(rename = "dialog")]
2404 Dialog(Dialog),
2405
2406 #[facet(rename = "iframe")]
2409 Iframe(Iframe),
2410 #[facet(rename = "video")]
2412 Video(Video),
2413 #[facet(rename = "audio")]
2415 Audio(Audio),
2416 #[facet(rename = "picture")]
2418 Picture(Picture),
2419 #[facet(rename = "canvas")]
2421 Canvas(Canvas),
2422 #[facet(rename = "svg")]
2424 Svg(Svg),
2425
2426 #[facet(rename = "script")]
2429 Script(Script),
2430 #[facet(rename = "noscript")]
2432 Noscript(Noscript),
2433 #[facet(rename = "template")]
2435 Template(Template),
2436
2437 #[facet(html::custom_element)]
2440 Custom(CustomElement),
2441}
2442
2443#[derive(Facet)]
2445#[repr(u8)]
2446#[allow(clippy::large_enum_variant)] pub enum PhrasingContent {
2448 #[facet(rename = "_text", html::text)]
2450 Text(String),
2451 #[facet(rename = "a")]
2453 A(A),
2454 #[facet(rename = "span")]
2456 Span(Span),
2457 #[facet(rename = "em")]
2459 Em(Em),
2460 #[facet(rename = "strong")]
2462 Strong(Strong),
2463 #[facet(rename = "small")]
2465 Small(Small),
2466 #[facet(rename = "s")]
2468 S(S),
2469 #[facet(rename = "cite")]
2471 Cite(Cite),
2472 #[facet(rename = "q")]
2474 Q(Q),
2475 #[facet(rename = "dfn")]
2477 Dfn(Dfn),
2478 #[facet(rename = "abbr")]
2480 Abbr(Abbr),
2481 #[facet(rename = "data")]
2483 Data(Data),
2484 #[facet(rename = "time")]
2486 Time(Time),
2487 #[facet(rename = "code")]
2489 Code(Code),
2490 #[facet(rename = "var")]
2492 Var(Var),
2493 #[facet(rename = "samp")]
2495 Samp(Samp),
2496 #[facet(rename = "kbd")]
2498 Kbd(Kbd),
2499 #[facet(rename = "sub")]
2501 Sub(Sub),
2502 #[facet(rename = "sup")]
2504 Sup(Sup),
2505 #[facet(rename = "i")]
2507 I(I),
2508 #[facet(rename = "b")]
2510 B(B),
2511 #[facet(rename = "u")]
2513 U(U),
2514 #[facet(rename = "mark")]
2516 Mark(Mark),
2517 #[facet(rename = "bdi")]
2519 Bdi(Bdi),
2520 #[facet(rename = "bdo")]
2522 Bdo(Bdo),
2523 #[facet(rename = "br")]
2525 Br(Br),
2526 #[facet(rename = "wbr")]
2528 Wbr(Wbr),
2529 #[facet(rename = "img")]
2531 Img(Img),
2532 #[facet(rename = "input")]
2534 Input(Input),
2535 #[facet(rename = "button")]
2537 Button(Button),
2538 #[facet(rename = "select")]
2540 Select(Select),
2541 #[facet(rename = "textarea")]
2543 Textarea(Textarea),
2544 #[facet(rename = "label")]
2546 Label(Label),
2547 #[facet(rename = "output")]
2549 Output(Output),
2550 #[facet(rename = "progress")]
2552 Progress(Progress),
2553 #[facet(rename = "meter")]
2555 Meter(Meter),
2556 #[facet(rename = "script")]
2558 Script(Script),
2559
2560 #[facet(html::custom_element)]
2563 Custom(CustomPhrasingElement),
2564}