1 module libwasm.bindings.PushManager;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.PushSubscription;
7 
8 @safe:
9 nothrow:
10 
11 struct PushManager {
12   nothrow:
13   JsHandle handle;
14   alias handle this;
15   this(Handle h) {
16     this.handle = JsHandle(h);
17   }
18   auto subscribe()(scope ref PushSubscriptionOptionsInit options) {
19     return JsPromise!(PushSubscription)(Object_Call_Handle__Handle(this.handle, "subscribe", options.handle));
20   }
21   auto subscribe()() {
22     return JsPromise!(PushSubscription)(Object_Getter__Handle(this.handle, "subscribe"));
23   }
24   auto getSubscription()() {
25     return JsPromise!(Optional!(PushSubscription))(Object_Getter__Handle(this.handle, "getSubscription"));
26   }
27   auto permissionState()(scope ref PushSubscriptionOptionsInit options) {
28     return JsPromise!(PushPermissionState)(Object_Call_Handle__Handle(this.handle, "permissionState", options.handle));
29   }
30   auto permissionState()() {
31     return JsPromise!(PushPermissionState)(Object_Getter__Handle(this.handle, "permissionState"));
32   }
33 }
34 struct PushManagerImpl {
35   nothrow:
36   JsHandle handle;
37   alias handle this;
38   this(Handle h) {
39     this.handle = JsHandle(h);
40   }
41   auto subscribe()(scope ref PushSubscriptionOptionsInit options) {
42     return JsPromise!(PushSubscription)(Object_Call_Handle__Handle(this.handle, "subscribe", options.handle));
43   }
44   auto subscribe()() {
45     return JsPromise!(PushSubscription)(Object_Getter__Handle(this.handle, "subscribe"));
46   }
47   auto getSubscription()() {
48     return JsPromise!(Optional!(PushSubscription))(Object_Getter__Handle(this.handle, "getSubscription"));
49   }
50   auto permissionState()(scope ref PushSubscriptionOptionsInit options) {
51     return JsPromise!(PushPermissionState)(Object_Call_Handle__Handle(this.handle, "permissionState", options.handle));
52   }
53   auto permissionState()() {
54     return JsPromise!(PushPermissionState)(Object_Getter__Handle(this.handle, "permissionState"));
55   }
56 }
57 enum PushPermissionState {
58   granted,
59   denied,
60   prompt
61 }
62 struct PushSubscriptionOptionsInit {
63   nothrow:
64   JsHandle handle;
65   alias handle this;
66   this(Handle h) {
67     this.handle = JsHandle(h);
68   }
69   static auto create() {
70     return PushSubscriptionOptionsInit(libwasm_add__object());
71   }
72   void applicationServerKey(T0)(scope auto ref Optional!(T0) applicationServerKey) if (isTOrPointer!(T0, SumType!(BufferSource, string))) {
73     Serialize_Object_VarArgCall!void(this.handle, "applicationServerKey", "Optional!SumType!(Handle,string)", tuple(!applicationServerKey.empty, libwasm.sumtype.match!(((ref applicationServerKey.Types[0] v) => 0),((string v) => 1))(applicationServerKey),tuple(libwasm.sumtype.match!(((ref applicationServerKey.Types[0] v) => cast(Handle)v.handle),((string v) => Handle.init))(applicationServerKey),libwasm.sumtype.match!(((ref applicationServerKey.Types[0] v) => string.init),((string v) => v))(applicationServerKey))));
74   }
75   auto applicationServerKey()() {
76     return PushSubscriptionOptionsInit_applicationServerKey_Get(this.handle);
77   }
78 }
79 
80 
81 extern (C) Optional!(SumType!(BufferSource, string)) PushSubscriptionOptionsInit_applicationServerKey_Get(Handle);