1 module libwasm.bindings.BroadcastChannel; 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 BroadcastChannel { 13 nothrow: 14 libwasm.bindings.EventTarget.EventTarget _parent; 15 alias _parent this; 16 this(Handle h) { 17 _parent = .EventTarget(h); 18 } 19 string name()() { 20 return Object_Getter__string(this._parent, "name"); 21 } 22 void postMessage(T0)(scope auto ref T0 message) { 23 import std.traits : isNumeric, isFloatingPoint, isSomeString; 24 if (isSomeString!T0) { 25 Object_Call_string__void(this._parent, "postMessage", cast(string) message); 26 return; 27 } else if (isNumeric!T0 && !isFloatingPoint!T0) { 28 Object_Call_long__void(this._parent, "postMessage", cast(long) message); 29 return; 30 } else if (isFloatingPoint!T0) { 31 Object_Call_double__void(this._parent, "postMessage", cast(double) message); 32 return; 33 } 34 // Any 35 Handle _handle_message = getOrCreateHandle(message); 36 Object_Call_Handle__void(this._parent, "postMessage", _handle_message); 37 dropHandle!(T0)(_handle_message); 38 } 39 void close()() { 40 Object_Call__void(this._parent, "close"); 41 } 42 void onmessage(T0)(scope auto ref Optional!(T0) onmessage) if (isTOrPointer!(T0, EventHandlerNonNull)) { 43 Object_Call_EventHandler__void(this._parent, "onmessage", !onmessage.empty, onmessage.front); 44 } 45 EventHandler onmessage()() { 46 return Object_Getter__EventHandler(this._parent, "onmessage"); 47 } 48 void onmessageerror(T0)(scope auto ref Optional!(T0) onmessageerror) if (isTOrPointer!(T0, EventHandlerNonNull)) { 49 Object_Call_EventHandler__void(this._parent, "onmessageerror", !onmessageerror.empty, onmessageerror.front); 50 } 51 EventHandler onmessageerror()() { 52 return Object_Getter__EventHandler(this._parent, "onmessageerror"); 53 } 54 } 55 56