1 module libwasm.bindings.WebComponents;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.Document;
7 
8 @safe:
9 nothrow:
10 
11 alias LifecycleAdoptedCallback = void delegate(Optional!(Document), Optional!(Document));
12 alias LifecycleAttributeChangedCallback = void delegate(string, Optional!(string), Optional!(string), Optional!(string));
13 struct LifecycleCallbacks {
14   nothrow:
15   JsHandle handle;
16   alias handle this;
17   this(Handle h) {
18     this.handle = JsHandle(h);
19   }
20   static auto create() {
21     return LifecycleCallbacks(libwasm_add__object());
22   }
23   void connectedCallback()(LifecycleConnectedCallback connectedCallback) {
24     LifecycleCallbacks_connectedCallback_Set(this.handle, connectedCallback);
25   }
26   LifecycleConnectedCallback connectedCallback()() {
27     return LifecycleCallbacks_connectedCallback_Get(this.handle);
28   }
29   void disconnectedCallback()(LifecycleDisconnectedCallback disconnectedCallback) {
30     LifecycleCallbacks_disconnectedCallback_Set(this.handle, disconnectedCallback);
31   }
32   LifecycleDisconnectedCallback disconnectedCallback()() {
33     return LifecycleCallbacks_disconnectedCallback_Get(this.handle);
34   }
35   void adoptedCallback()(LifecycleAdoptedCallback adoptedCallback) {
36     LifecycleCallbacks_adoptedCallback_Set(this.handle, adoptedCallback);
37   }
38   LifecycleAdoptedCallback adoptedCallback()() {
39     return LifecycleCallbacks_adoptedCallback_Get(this.handle);
40   }
41   void attributeChangedCallback()(LifecycleAttributeChangedCallback attributeChangedCallback) {
42     LifecycleCallbacks_attributeChangedCallback_Set(this.handle, attributeChangedCallback);
43   }
44   LifecycleAttributeChangedCallback attributeChangedCallback()() {
45     return LifecycleCallbacks_attributeChangedCallback_Get(this.handle);
46   }
47   void getCustomInterfaceCallback()(LifecycleGetCustomInterfaceCallback getCustomInterfaceCallback) {
48     LifecycleCallbacks_getCustomInterfaceCallback_Set(this.handle, getCustomInterfaceCallback);
49   }
50   LifecycleGetCustomInterfaceCallback getCustomInterfaceCallback()() {
51     return LifecycleCallbacks_getCustomInterfaceCallback_Get(this.handle);
52   }
53 }
54 alias LifecycleConnectedCallback = void delegate();
55 alias LifecycleDisconnectedCallback = void delegate();
56 alias LifecycleGetCustomInterfaceCallback = Optional!(JsObject) delegate(Any);
57 
58 
59 extern (C) void LifecycleCallbacks_connectedCallback_Set(Handle, LifecycleConnectedCallback);
60 extern (C) LifecycleConnectedCallback LifecycleCallbacks_connectedCallback_Get(Handle);
61 extern (C) void LifecycleCallbacks_disconnectedCallback_Set(Handle, LifecycleDisconnectedCallback);
62 extern (C) LifecycleDisconnectedCallback LifecycleCallbacks_disconnectedCallback_Get(Handle);
63 extern (C) void LifecycleCallbacks_adoptedCallback_Set(Handle, LifecycleAdoptedCallback);
64 extern (C) LifecycleAdoptedCallback LifecycleCallbacks_adoptedCallback_Get(Handle);
65 extern (C) void LifecycleCallbacks_attributeChangedCallback_Set(Handle, LifecycleAttributeChangedCallback);
66 extern (C) LifecycleAttributeChangedCallback LifecycleCallbacks_attributeChangedCallback_Get(Handle);
67 extern (C) void LifecycleCallbacks_getCustomInterfaceCallback_Set(Handle, LifecycleGetCustomInterfaceCallback);
68 extern (C) LifecycleGetCustomInterfaceCallback LifecycleCallbacks_getCustomInterfaceCallback_Get(Handle);