From b8205e7498d76ef8868992aa66d2ca42bc50427e Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Mon, 2 Oct 2023 09:13:23 +0200 Subject: [PATCH] netsurf: add NodeList --- src/netsurf.zig | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/netsurf.zig b/src/netsurf.zig index 42d61fed..3b4a611e 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -228,6 +228,29 @@ pub const NodeType = enum(u4) { notation = c.DOM_NOTATION_NODE, // historical }; +// NodeList +pub const NodeList = c.struct_dom_nodelist; + +pub fn nodeListLength(nodeList: *NodeList) u32 { + var ln: u32 = undefined; + _ = c.dom_nodelist_get_length(nodeList, &ln); + return ln; +} + +pub fn nodeListItem(nodeList: *NodeList, index: u32) ?*Node { + var n: [*c]c.struct_dom_node = undefined; + _ = c._dom_nodelist_item(nodeList, index, &n); + + if (n == null) { + return null; + } + + // cast [*c]c.struct_dom_node into *Node + const res: *Node = @ptrCast(n); + + return res; +} + // Node pub const Node = c.dom_node_internal;