@@ -34,6 +34,7 @@ const CSSStyleDeclaration = @import("../cssom/CSSStyleDeclaration.zig");
3434
3535// HTMLElement interfaces
3636pub const Interfaces = .{
37+ Element ,
3738 HTMLElement ,
3839 HTMLUnknownElement ,
3940 HTMLAnchorElement ,
@@ -1108,78 +1109,75 @@ pub const HTMLVideoElement = struct {
11081109 pub const subtype = .node ;
11091110};
11101111
1111- pub fn toInterface (comptime T : type , e : * parser.Element ) ! T {
1112- const elem : * align (@alignOf (* parser .Element )) parser.Element = @alignCast (e );
1113- const tag = try parser .elementHTMLGetTagType (@as (* parser .ElementHTML , @ptrCast (elem )));
1114-
1112+ pub fn toInterfaceFromTag (comptime T : type , e : * parser.Element , tag : parser.Tag ) ! T {
11151113 return switch (tag ) {
1116- .abbr , .acronym , .address , .article , .aside , .b , .basefont , .bdi , .bdo , .bgsound , .big , .center , .cite , .code , .dd , .details , .dfn , .dt , .em , .figcaption , .figure , .footer , .header , .hgroup , .i , .isindex , .keygen , .kbd , .main , .mark , .marquee , .menu , .menuitem , .nav , .nobr , .noframes , .noscript , .rp , .rt , .ruby , .s , .samp , .section , .small , .spacer , .strike , .strong , .sub , .summary , .sup , .tt , .u , .wbr , ._var = > .{ .HTMLElement = @as (* parser .ElementHTML , @ptrCast (elem )) },
1117- .a = > .{ .HTMLAnchorElement = @as (* parser .Anchor , @ptrCast (elem )) },
1118- .applet = > .{ .HTMLAppletElement = @as (* parser .Applet , @ptrCast (elem )) },
1119- .area = > .{ .HTMLAreaElement = @as (* parser .Area , @ptrCast (elem )) },
1120- .audio = > .{ .HTMLAudioElement = @as (* parser .Audio , @ptrCast (elem )) },
1121- .base = > .{ .HTMLBaseElement = @as (* parser .Base , @ptrCast (elem )) },
1122- .body = > .{ .HTMLBodyElement = @as (* parser .Body , @ptrCast (elem )) },
1123- .br = > .{ .HTMLBRElement = @as (* parser .BR , @ptrCast (elem )) },
1124- .button = > .{ .HTMLButtonElement = @as (* parser .Button , @ptrCast (elem )) },
1125- .canvas = > .{ .HTMLCanvasElement = @as (* parser .Canvas , @ptrCast (elem )) },
1126- .dl = > .{ .HTMLDListElement = @as (* parser .DList , @ptrCast (elem )) },
1127- .data = > .{ .HTMLDataElement = @as (* parser .Data , @ptrCast (elem )) },
1128- .datalist = > .{ .HTMLDataListElement = @as (* parser .DataList , @ptrCast (elem )) },
1129- .dialog = > .{ .HTMLDialogElement = @as (* parser .Dialog , @ptrCast (elem )) },
1130- .dir = > .{ .HTMLDirectoryElement = @as (* parser .Directory , @ptrCast (elem )) },
1131- .div = > .{ .HTMLDivElement = @as (* parser .Div , @ptrCast (elem )) },
1132- .embed = > .{ .HTMLEmbedElement = @as (* parser .Embed , @ptrCast (elem )) },
1133- .fieldset = > .{ .HTMLFieldSetElement = @as (* parser .FieldSet , @ptrCast (elem )) },
1134- .font = > .{ .HTMLFontElement = @as (* parser .Font , @ptrCast (elem )) },
1135- .form = > .{ .HTMLFormElement = @as (* parser .Form , @ptrCast (elem )) },
1136- .frame = > .{ .HTMLFrameElement = @as (* parser .Frame , @ptrCast (elem )) },
1137- .frameset = > .{ .HTMLFrameSetElement = @as (* parser .FrameSet , @ptrCast (elem )) },
1138- .hr = > .{ .HTMLHRElement = @as (* parser .HR , @ptrCast (elem )) },
1139- .head = > .{ .HTMLHeadElement = @as (* parser .Head , @ptrCast (elem )) },
1140- .h1 , .h2 , .h3 , .h4 , .h5 , .h6 = > .{ .HTMLHeadingElement = @as (* parser .Heading , @ptrCast (elem )) },
1141- .html = > .{ .HTMLHtmlElement = @as (* parser .Html , @ptrCast (elem )) },
1142- .iframe = > .{ .HTMLIFrameElement = @as (* parser .IFrame , @ptrCast (elem )) },
1143- .img = > .{ .HTMLImageElement = @as (* parser .Image , @ptrCast (elem )) },
1144- .input = > .{ .HTMLInputElement = @as (* parser .Input , @ptrCast (elem )) },
1145- .li = > .{ .HTMLLIElement = @as (* parser .LI , @ptrCast (elem )) },
1146- .label = > .{ .HTMLLabelElement = @as (* parser .Label , @ptrCast (elem )) },
1147- .legend = > .{ .HTMLLegendElement = @as (* parser .Legend , @ptrCast (elem )) },
1148- .link = > .{ .HTMLLinkElement = @as (* parser .Link , @ptrCast (elem )) },
1149- .map = > .{ .HTMLMapElement = @as (* parser .Map , @ptrCast (elem )) },
1150- .meta = > .{ .HTMLMetaElement = @as (* parser .Meta , @ptrCast (elem )) },
1151- .meter = > .{ .HTMLMeterElement = @as (* parser .Meter , @ptrCast (elem )) },
1152- .ins , .del = > .{ .HTMLModElement = @as (* parser .Mod , @ptrCast (elem )) },
1153- .ol = > .{ .HTMLOListElement = @as (* parser .OList , @ptrCast (elem )) },
1154- .object = > .{ .HTMLObjectElement = @as (* parser .Object , @ptrCast (elem )) },
1155- .optgroup = > .{ .HTMLOptGroupElement = @as (* parser .OptGroup , @ptrCast (elem )) },
1156- .option = > .{ .HTMLOptionElement = @as (* parser .Option , @ptrCast (elem )) },
1157- .output = > .{ .HTMLOutputElement = @as (* parser .Output , @ptrCast (elem )) },
1158- .p = > .{ .HTMLParagraphElement = @as (* parser .Paragraph , @ptrCast (elem )) },
1159- .param = > .{ .HTMLParamElement = @as (* parser .Param , @ptrCast (elem )) },
1160- .picture = > .{ .HTMLPictureElement = @as (* parser .Picture , @ptrCast (elem )) },
1161- .pre = > .{ .HTMLPreElement = @as (* parser .Pre , @ptrCast (elem )) },
1162- .progress = > .{ .HTMLProgressElement = @as (* parser .Progress , @ptrCast (elem )) },
1163- .blockquote , .q = > .{ .HTMLQuoteElement = @as (* parser .Quote , @ptrCast (elem )) },
1164- .script = > .{ .HTMLScriptElement = @as (* parser .Script , @ptrCast (elem )) },
1165- .select = > .{ .HTMLSelectElement = @as (* parser .Select , @ptrCast (elem )) },
1166- .source = > .{ .HTMLSourceElement = @as (* parser .Source , @ptrCast (elem )) },
1167- .span = > .{ .HTMLSpanElement = @as (* parser .Span , @ptrCast (elem )) },
1168- .style = > .{ .HTMLStyleElement = @as (* parser .Style , @ptrCast (elem )) },
1169- .table = > .{ .HTMLTableElement = @as (* parser .Table , @ptrCast (elem )) },
1170- .caption = > .{ .HTMLTableCaptionElement = @as (* parser .TableCaption , @ptrCast (elem )) },
1171- .th , .td = > .{ .HTMLTableCellElement = @as (* parser .TableCell , @ptrCast (elem )) },
1172- .col , .colgroup = > .{ .HTMLTableColElement = @as (* parser .TableCol , @ptrCast (elem )) },
1173- .tr = > .{ .HTMLTableRowElement = @as (* parser .TableRow , @ptrCast (elem )) },
1174- .thead , .tbody , .tfoot = > .{ .HTMLTableSectionElement = @as (* parser .TableSection , @ptrCast (elem )) },
1175- .template = > .{ .HTMLTemplateElement = @as (* parser .Template , @ptrCast (elem )) },
1176- .textarea = > .{ .HTMLTextAreaElement = @as (* parser .TextArea , @ptrCast (elem )) },
1177- .time = > .{ .HTMLTimeElement = @as (* parser .Time , @ptrCast (elem )) },
1178- .title = > .{ .HTMLTitleElement = @as (* parser .Title , @ptrCast (elem )) },
1179- .track = > .{ .HTMLTrackElement = @as (* parser .Track , @ptrCast (elem )) },
1180- .ul = > .{ .HTMLUListElement = @as (* parser .UList , @ptrCast (elem )) },
1181- .video = > .{ .HTMLVideoElement = @as (* parser .Video , @ptrCast (elem )) },
1182- .undef = > .{ .HTMLUnknownElement = @as (* parser .Unknown , @ptrCast (elem )) },
1114+ .abbr , .acronym , .address , .article , .aside , .b , .basefont , .bdi , .bdo , .bgsound , .big , .center , .cite , .code , .dd , .details , .dfn , .dt , .em , .figcaption , .figure , .footer , .header , .hgroup , .i , .isindex , .keygen , .kbd , .main , .mark , .marquee , .menu , .menuitem , .nav , .nobr , .noframes , .noscript , .rp , .rt , .ruby , .s , .samp , .section , .small , .spacer , .strike , .strong , .sub , .summary , .sup , .tt , .u , .wbr , ._var = > .{ .HTMLElement = @as (* parser .ElementHTML , @ptrCast (e )) },
1115+ .a = > .{ .HTMLAnchorElement = @as (* parser .Anchor , @ptrCast (e )) },
1116+ .applet = > .{ .HTMLAppletElement = @as (* parser .Applet , @ptrCast (e )) },
1117+ .area = > .{ .HTMLAreaElement = @as (* parser .Area , @ptrCast (e )) },
1118+ .audio = > .{ .HTMLAudioElement = @as (* parser .Audio , @ptrCast (e )) },
1119+ .base = > .{ .HTMLBaseElement = @as (* parser .Base , @ptrCast (e )) },
1120+ .body = > .{ .HTMLBodyElement = @as (* parser .Body , @ptrCast (e )) },
1121+ .br = > .{ .HTMLBRElement = @as (* parser .BR , @ptrCast (e )) },
1122+ .button = > .{ .HTMLButtonElement = @as (* parser .Button , @ptrCast (e )) },
1123+ .canvas = > .{ .HTMLCanvasElement = @as (* parser .Canvas , @ptrCast (e )) },
1124+ .dl = > .{ .HTMLDListElement = @as (* parser .DList , @ptrCast (e )) },
1125+ .data = > .{ .HTMLDataElement = @as (* parser .Data , @ptrCast (e )) },
1126+ .datalist = > .{ .HTMLDataListElement = @as (* parser .DataList , @ptrCast (e )) },
1127+ .dialog = > .{ .HTMLDialogElement = @as (* parser .Dialog , @ptrCast (e )) },
1128+ .dir = > .{ .HTMLDirectoryElement = @as (* parser .Directory , @ptrCast (e )) },
1129+ .div = > .{ .HTMLDivElement = @as (* parser .Div , @ptrCast (e )) },
1130+ .embed = > .{ .HTMLEmbedElement = @as (* parser .Embed , @ptrCast (e )) },
1131+ .fieldset = > .{ .HTMLFieldSetElement = @as (* parser .FieldSet , @ptrCast (e )) },
1132+ .font = > .{ .HTMLFontElement = @as (* parser .Font , @ptrCast (e )) },
1133+ .form = > .{ .HTMLFormElement = @as (* parser .Form , @ptrCast (e )) },
1134+ .frame = > .{ .HTMLFrameElement = @as (* parser .Frame , @ptrCast (e )) },
1135+ .frameset = > .{ .HTMLFrameSetElement = @as (* parser .FrameSet , @ptrCast (e )) },
1136+ .hr = > .{ .HTMLHRElement = @as (* parser .HR , @ptrCast (e )) },
1137+ .head = > .{ .HTMLHeadElement = @as (* parser .Head , @ptrCast (e )) },
1138+ .h1 , .h2 , .h3 , .h4 , .h5 , .h6 = > .{ .HTMLHeadingElement = @as (* parser .Heading , @ptrCast (e )) },
1139+ .html = > .{ .HTMLHtmlElement = @as (* parser .Html , @ptrCast (e )) },
1140+ .iframe = > .{ .HTMLIFrameElement = @as (* parser .IFrame , @ptrCast (e )) },
1141+ .img = > .{ .HTMLImageElement = @as (* parser .Image , @ptrCast (e )) },
1142+ .input = > .{ .HTMLInputElement = @as (* parser .Input , @ptrCast (e )) },
1143+ .li = > .{ .HTMLLIElement = @as (* parser .LI , @ptrCast (e )) },
1144+ .label = > .{ .HTMLLabelElement = @as (* parser .Label , @ptrCast (e )) },
1145+ .legend = > .{ .HTMLLegendElement = @as (* parser .Legend , @ptrCast (e )) },
1146+ .link = > .{ .HTMLLinkElement = @as (* parser .Link , @ptrCast (e )) },
1147+ .map = > .{ .HTMLMapElement = @as (* parser .Map , @ptrCast (e )) },
1148+ .meta = > .{ .HTMLMetaElement = @as (* parser .Meta , @ptrCast (e )) },
1149+ .meter = > .{ .HTMLMeterElement = @as (* parser .Meter , @ptrCast (e )) },
1150+ .ins , .del = > .{ .HTMLModElement = @as (* parser .Mod , @ptrCast (e )) },
1151+ .ol = > .{ .HTMLOListElement = @as (* parser .OList , @ptrCast (e )) },
1152+ .object = > .{ .HTMLObjectElement = @as (* parser .Object , @ptrCast (e )) },
1153+ .optgroup = > .{ .HTMLOptGroupElement = @as (* parser .OptGroup , @ptrCast (e )) },
1154+ .option = > .{ .HTMLOptionElement = @as (* parser .Option , @ptrCast (e )) },
1155+ .output = > .{ .HTMLOutputElement = @as (* parser .Output , @ptrCast (e )) },
1156+ .p = > .{ .HTMLParagraphElement = @as (* parser .Paragraph , @ptrCast (e )) },
1157+ .param = > .{ .HTMLParamElement = @as (* parser .Param , @ptrCast (e )) },
1158+ .picture = > .{ .HTMLPictureElement = @as (* parser .Picture , @ptrCast (e )) },
1159+ .pre = > .{ .HTMLPreElement = @as (* parser .Pre , @ptrCast (e )) },
1160+ .progress = > .{ .HTMLProgressElement = @as (* parser .Progress , @ptrCast (e )) },
1161+ .blockquote , .q = > .{ .HTMLQuoteElement = @as (* parser .Quote , @ptrCast (e )) },
1162+ .script = > .{ .HTMLScriptElement = @as (* parser .Script , @ptrCast (e )) },
1163+ .select = > .{ .HTMLSelectElement = @as (* parser .Select , @ptrCast (e )) },
1164+ .source = > .{ .HTMLSourceElement = @as (* parser .Source , @ptrCast (e )) },
1165+ .span = > .{ .HTMLSpanElement = @as (* parser .Span , @ptrCast (e )) },
1166+ .style = > .{ .HTMLStyleElement = @as (* parser .Style , @ptrCast (e )) },
1167+ .table = > .{ .HTMLTableElement = @as (* parser .Table , @ptrCast (e )) },
1168+ .caption = > .{ .HTMLTableCaptionElement = @as (* parser .TableCaption , @ptrCast (e )) },
1169+ .th , .td = > .{ .HTMLTableCellElement = @as (* parser .TableCell , @ptrCast (e )) },
1170+ .col , .colgroup = > .{ .HTMLTableColElement = @as (* parser .TableCol , @ptrCast (e )) },
1171+ .tr = > .{ .HTMLTableRowElement = @as (* parser .TableRow , @ptrCast (e )) },
1172+ .thead , .tbody , .tfoot = > .{ .HTMLTableSectionElement = @as (* parser .TableSection , @ptrCast (e )) },
1173+ .template = > .{ .HTMLTemplateElement = @as (* parser .Template , @ptrCast (e )) },
1174+ .textarea = > .{ .HTMLTextAreaElement = @as (* parser .TextArea , @ptrCast (e )) },
1175+ .time = > .{ .HTMLTimeElement = @as (* parser .Time , @ptrCast (e )) },
1176+ .title = > .{ .HTMLTitleElement = @as (* parser .Title , @ptrCast (e )) },
1177+ .track = > .{ .HTMLTrackElement = @as (* parser .Track , @ptrCast (e )) },
1178+ .ul = > .{ .HTMLUListElement = @as (* parser .UList , @ptrCast (e )) },
1179+ .video = > .{ .HTMLVideoElement = @as (* parser .Video , @ptrCast (e )) },
1180+ .undef = > .{ .HTMLUnknownElement = @as (* parser .Unknown , @ptrCast (e )) },
11831181 };
11841182}
11851183
0 commit comments