1 module libwasm.bindings.IDBDatabase;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.DOMStringList;
7 import libwasm.bindings.EventHandler;
8 import libwasm.bindings.EventTarget;
9 import libwasm.bindings.IDBObjectStore;
10 import libwasm.bindings.IDBRequest;
11 import libwasm.bindings.IDBTransaction;
12 import libwasm.bindings.StorageType;
13 
14 @safe:
15 nothrow:
16 
17 struct IDBDatabase {
18   nothrow:
19   libwasm.bindings.EventTarget.EventTarget _parent;
20   alias _parent this;
21   this(Handle h) {
22     _parent = .EventTarget(h);
23   }
24   string name()() {
25     return Object_Getter__string(this._parent, "name");
26   }
27   uint version_()() {
28     return Object_Getter__uint(this._parent, "version");
29   }
30   auto objectStoreNames()() {
31     return DOMStringList(Object_Getter__Handle(this._parent, "objectStoreNames"));
32   }
33   auto createObjectStore()(string name, scope ref IDBObjectStoreParameters optionalParameters) {
34     return IDBObjectStore(Serialize_Object_VarArgCall!Handle(this._parent, "createObjectStore", "string;Handle", tuple(name, cast(Handle)optionalParameters.handle)));
35   }
36   auto createObjectStore()(string name) {
37     return IDBObjectStore(Object_Call_string__Handle(this._parent, "createObjectStore", name));
38   }
39   void deleteObjectStore()(string name) {
40     Object_Call_string__void(this._parent, "deleteObjectStore", name);
41   }
42   auto transaction()(scope ref SumType!(string, Sequence!(string)) storeNames, IDBTransactionMode mode /* = "readonly" */) {
43     return IDBTransaction(Serialize_Object_VarArgCall!Handle(this._parent, "transaction", "SumType!(string,Handle);Enum", tuple(libwasm.sumtype.match!(((string v) => 0),((ref storeNames.Types[1] v) => 1))(storeNames),tuple(libwasm.sumtype.match!(((string v) => v),((ref storeNames.Types[1] v) => string.init))(storeNames),libwasm.sumtype.match!(((string v) => Handle.init),((ref storeNames.Types[1] v) => cast(Handle)v.handle))(storeNames)), mode)));
44   }
45   auto transaction()(scope ref SumType!(string, Sequence!(string)) storeNames) {
46     return IDBTransaction(Serialize_Object_VarArgCall!Handle(this._parent, "transaction", "SumType!(string,Handle)", tuple(libwasm.sumtype.match!(((string v) => 0),((ref storeNames.Types[1] v) => 1))(storeNames),tuple(libwasm.sumtype.match!(((string v) => v),((ref storeNames.Types[1] v) => string.init))(storeNames),libwasm.sumtype.match!(((string v) => Handle.init),((ref storeNames.Types[1] v) => cast(Handle)v.handle))(storeNames)))));
47   }
48   void close()() {
49     Object_Call__void(this._parent, "close");
50   }
51   void onabort(T0)(scope auto ref Optional!(T0) onabort) if (isTOrPointer!(T0, EventHandlerNonNull)) {
52     Object_Call_EventHandler__void(this._parent, "onabort", !onabort.empty, onabort.front);
53   }
54   EventHandler onabort()() {
55     return Object_Getter__EventHandler(this._parent, "onabort");
56   }
57   void onclose(T0)(scope auto ref Optional!(T0) onclose) if (isTOrPointer!(T0, EventHandlerNonNull)) {
58     Object_Call_EventHandler__void(this._parent, "onclose", !onclose.empty, onclose.front);
59   }
60   EventHandler onclose()() {
61     return Object_Getter__EventHandler(this._parent, "onclose");
62   }
63   void onerror(T0)(scope auto ref Optional!(T0) onerror) if (isTOrPointer!(T0, EventHandlerNonNull)) {
64     Object_Call_EventHandler__void(this._parent, "onerror", !onerror.empty, onerror.front);
65   }
66   EventHandler onerror()() {
67     return Object_Getter__EventHandler(this._parent, "onerror");
68   }
69   void onversionchange(T0)(scope auto ref Optional!(T0) onversionchange) if (isTOrPointer!(T0, EventHandlerNonNull)) {
70     Object_Call_EventHandler__void(this._parent, "onversionchange", !onversionchange.empty, onversionchange.front);
71   }
72   EventHandler onversionchange()() {
73     return Object_Getter__EventHandler(this._parent, "onversionchange");
74   }
75   StorageType storage()() {
76     return Object_Getter__int(this._parent, "storage");
77   }
78   auto createMutableFile()(string name, string type) {
79     return IDBRequest(Object_Call_string_string__Handle(this._parent, "createMutableFile", name, type));
80   }
81   auto createMutableFile()(string name) {
82     return IDBRequest(Object_Call_string__Handle(this._parent, "createMutableFile", name));
83   }
84   auto mozCreateFileHandle()(string name, string type) {
85     return IDBRequest(Object_Call_string_string__Handle(this._parent, "mozCreateFileHandle", name, type));
86   }
87   auto mozCreateFileHandle()(string name) {
88     return IDBRequest(Object_Call_string__Handle(this._parent, "mozCreateFileHandle", name));
89   }
90 }
91 
92