module libwasm.bindings.NodeIterator; import libwasm.types; import memutils.ct: tuple; import libwasm.bindings.Node; import libwasm.bindings.NodeFilter; @safe: nothrow: struct NodeIterator { nothrow: JsHandle handle; alias handle this; this(Handle h) { this.handle = JsHandle(h); } auto root()() { return Node(Object_Getter__Handle(this.handle, "root")); } auto referenceNode()() { return recastOpt!(Node)(Object_Getter__OptionalHandle(this.handle, "referenceNode")); } bool pointerBeforeReferenceNode()() { return Object_Getter__bool(this.handle, "pointerBeforeReferenceNode"); } uint whatToShow()() { return Object_Getter__uint(this.handle, "whatToShow"); } auto filter()() { return recastOpt!(NodeFilter)(Object_Getter__OptionalHandle(this.handle, "filter")); } auto nextNode()() { return recastOpt!(Node)(Object_Getter__OptionalHandle(this.handle, "nextNode")); } auto previousNode()() { return recastOpt!(Node)(Object_Getter__OptionalHandle(this.handle, "previousNode")); } void detach()() { Object_Call__void(this.handle, "detach"); } }