1 module libwasm.bindings.Performance; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.EventHandler; 7 import libwasm.bindings.EventTarget; 8 import libwasm.bindings.PerformanceEntry; 9 import libwasm.bindings.PerformanceNavigation; 10 import libwasm.bindings.PerformanceTiming; 11 12 @safe: 13 nothrow: 14 15 alias DOMHighResTimeStamp = double; 16 struct Performance { 17 nothrow: 18 libwasm.bindings.EventTarget.EventTarget _parent; 19 alias _parent this; 20 this(Handle h) { 21 _parent = .EventTarget(h); 22 } 23 double now()() { 24 return Object_Getter__double(this._parent, "now"); 25 } 26 double timeOrigin()() { 27 return Object_Getter__double(this._parent, "timeOrigin"); 28 } 29 auto toJSON()() { 30 return JsObject(Object_Getter__Handle(this._parent, "toJSON")); 31 } 32 auto timing()() { 33 return PerformanceTiming(Object_Getter__Handle(this._parent, "timing")); 34 } 35 auto navigation()() { 36 return PerformanceNavigation(Object_Getter__Handle(this._parent, "navigation")); 37 } 38 auto getEntries()() { 39 return PerformanceEntryList(Object_Getter__Handle(this._parent, "getEntries")); 40 } 41 auto getEntriesByType()(string entryType) { 42 return PerformanceEntryList(Object_Call_string__Handle(this._parent, "getEntriesByType", entryType)); 43 } 44 auto getEntriesByName()(string name, string entryType) { 45 return PerformanceEntryList(Object_Call_string_string__Handle(this._parent, "getEntriesByName", name, entryType)); 46 } 47 auto getEntriesByName()(string name) { 48 return PerformanceEntryList(Object_Call_string__Handle(this._parent, "getEntriesByName", name)); 49 } 50 void clearResourceTimings()() { 51 Object_Call__void(this._parent, "clearResourceTimings"); 52 } 53 void setResourceTimingBufferSize()(uint maxSize) { 54 Object_Call_uint__void(this._parent, "setResourceTimingBufferSize", maxSize); 55 } 56 void onresourcetimingbufferfull(T0)(scope auto ref Optional!(T0) onresourcetimingbufferfull) if (isTOrPointer!(T0, EventHandlerNonNull)) { 57 Object_Call_EventHandler__void(this._parent, "onresourcetimingbufferfull", !onresourcetimingbufferfull.empty, onresourcetimingbufferfull.front); 58 } 59 EventHandler onresourcetimingbufferfull()() { 60 return Object_Getter__EventHandler(this._parent, "onresourcetimingbufferfull"); 61 } 62 auto mozMemory()() { 63 return JsObject(Object_Getter__Handle(this._parent, "mozMemory")); 64 } 65 void mark()(string markName) { 66 Object_Call_string__void(this._parent, "mark", markName); 67 } 68 void clearMarks()(string markName) { 69 Object_Call_string__void(this._parent, "clearMarks", markName); 70 } 71 void clearMarks()() { 72 Object_Call__void(this._parent, "clearMarks"); 73 } 74 void measure()(string measureName, string startMark, string endMark) { 75 Serialize_Object_VarArgCall!void(this._parent, "measure", "string;string;string", tuple(measureName, startMark, endMark)); 76 } 77 void measure()(string measureName, string startMark) { 78 Object_Call_string_string__void(this._parent, "measure", measureName, startMark); 79 } 80 void measure()(string measureName) { 81 Object_Call_string__void(this._parent, "measure", measureName); 82 } 83 void clearMeasures()(string measureName) { 84 Object_Call_string__void(this._parent, "clearMeasures", measureName); 85 } 86 void clearMeasures()() { 87 Object_Call__void(this._parent, "clearMeasures"); 88 } 89 } 90 alias PerformanceEntryList = Sequence!(PerformanceEntry); 91 92