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