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