1 module libwasm.bindings.DedicatedWorkerGlobalScope; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.EventHandler; 7 import libwasm.bindings.MessagePort; 8 import libwasm.bindings.WorkerGlobalScope; 9 10 @safe: 11 nothrow: 12 13 struct DedicatedWorkerGlobalScope { 14 nothrow: 15 libwasm.bindings.WorkerGlobalScope.WorkerGlobalScope _parent; 16 alias _parent this; 17 this(Handle h) { 18 _parent = .WorkerGlobalScope(h); 19 } 20 string name()() { 21 return Object_Getter__string(this._parent, "name"); 22 } 23 void postMessage(T0)(scope auto ref T0 message, scope ref Sequence!(JsObject) transfer) { 24 // Any 25 Handle _handle_message = getOrCreateHandle(message); 26 Serialize_Object_VarArgCall!void(this._parent, "postMessage", "Handle;Handle", tuple(_handle_message, cast(Handle)transfer.handle)); 27 dropHandle!(T0)(_handle_message); 28 } 29 void postMessage(T0)(scope auto ref T0 message, scope ref PostMessageOptions options) { 30 // Any 31 Handle _handle_message = getOrCreateHandle(message); 32 Serialize_Object_VarArgCall!void(this._parent, "postMessage", "Handle;Handle", tuple(_handle_message, cast(Handle)options.handle)); 33 dropHandle!(T0)(_handle_message); 34 } 35 void postMessage(T0)(scope auto ref T0 message) { 36 import std.traits : isNumeric, isFloatingPoint, isSomeString; 37 if (isSomeString!T0) { 38 Object_Call_string__void(this._parent, "postMessage", cast(string) message); 39 return; 40 } else if (isNumeric!T0 && !isFloatingPoint!T0) { 41 Object_Call_long__void(this._parent, "postMessage", cast(long) message); 42 return; 43 } else if (isFloatingPoint!T0) { 44 Object_Call_double__void(this._parent, "postMessage", cast(double) message); 45 return; 46 } 47 // Any 48 Handle _handle_message = getOrCreateHandle(message); 49 Object_Call_Handle__void(this._parent, "postMessage", _handle_message); 50 dropHandle!(T0)(_handle_message); 51 } 52 void close()() { 53 Object_Call__void(this._parent, "close"); 54 } 55 void onmessage(T0)(scope auto ref Optional!(T0) onmessage) if (isTOrPointer!(T0, EventHandlerNonNull)) { 56 Object_Call_EventHandler__void(this._parent, "onmessage", !onmessage.empty, onmessage.front); 57 } 58 EventHandler onmessage()() { 59 return Object_Getter__EventHandler(this._parent, "onmessage"); 60 } 61 void onmessageerror(T0)(scope auto ref Optional!(T0) onmessageerror) if (isTOrPointer!(T0, EventHandlerNonNull)) { 62 Object_Call_EventHandler__void(this._parent, "onmessageerror", !onmessageerror.empty, onmessageerror.front); 63 } 64 EventHandler onmessageerror()() { 65 return Object_Getter__EventHandler(this._parent, "onmessageerror"); 66 } 67 } 68 69