1 module libwasm.bindings.FetchObserver;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.EventHandler;
7 import libwasm.bindings.EventTarget;
8 
9 @safe:
10 nothrow:
11 
12 struct FetchObserver {
13   nothrow:
14   libwasm.bindings.EventTarget.EventTarget _parent;
15   alias _parent this;
16   this(Handle h) {
17     _parent = .EventTarget(h);
18   }
19   FetchState state()() {
20     return Object_Getter__int(this._parent, "state");
21   }
22   void onstatechange(T0)(scope auto ref Optional!(T0) onstatechange) if (isTOrPointer!(T0, EventHandlerNonNull)) {
23     Object_Call_EventHandler__void(this._parent, "onstatechange", !onstatechange.empty, onstatechange.front);
24   }
25   EventHandler onstatechange()() {
26     return Object_Getter__EventHandler(this._parent, "onstatechange");
27   }
28   void onrequestprogress(T0)(scope auto ref Optional!(T0) onrequestprogress) if (isTOrPointer!(T0, EventHandlerNonNull)) {
29     Object_Call_EventHandler__void(this._parent, "onrequestprogress", !onrequestprogress.empty, onrequestprogress.front);
30   }
31   EventHandler onrequestprogress()() {
32     return Object_Getter__EventHandler(this._parent, "onrequestprogress");
33   }
34   void onresponseprogress(T0)(scope auto ref Optional!(T0) onresponseprogress) if (isTOrPointer!(T0, EventHandlerNonNull)) {
35     Object_Call_EventHandler__void(this._parent, "onresponseprogress", !onresponseprogress.empty, onresponseprogress.front);
36   }
37   EventHandler onresponseprogress()() {
38     return Object_Getter__EventHandler(this._parent, "onresponseprogress");
39   }
40 }
41 enum FetchState {
42   requesting,
43   responding,
44   aborted,
45   errored,
46   complete
47 }
48 struct ObserverCallback {
49   nothrow:
50   JsHandle handle;
51   alias handle this;
52   this(Handle h) {
53     this.handle = JsHandle(h);
54   }
55   void handleEvent()(scope ref FetchObserver observer) {
56     Object_Call_Handle__void(this.handle, "handleEvent", observer._parent);
57   }
58 }
59 
60