1 module libwasm.bindings.RTCIdentityProvider;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 @safe:
7 nothrow:
8 
9 alias GenerateAssertionCallback = JsPromise!(RTCIdentityAssertionResult) delegate(string, string, RTCIdentityProviderOptions);
10 struct RTCIdentityAssertionResult {
11   nothrow:
12   JsHandle handle;
13   alias handle this;
14   this(Handle h) {
15     this.handle = JsHandle(h);
16   }
17   static auto create() {
18     return RTCIdentityAssertionResult(libwasm_add__object());
19   }
20   void idp()(scope ref RTCIdentityProviderDetails idp) {
21     Object_Call_Handle__void(this.handle, "idp", idp.handle);
22   }
23   auto idp()() {
24     return RTCIdentityProviderDetails(Object_Getter__Handle(this.handle, "idp"));
25   }
26   void assertion()(string assertion) {
27     Object_Call_string__void(this.handle, "assertion", assertion);
28   }
29   string assertion()() {
30     return Object_Getter__string(this.handle, "assertion");
31   }
32 }
33 struct RTCIdentityProvider {
34   nothrow:
35   JsHandle handle;
36   alias handle this;
37   this(Handle h) {
38     this.handle = JsHandle(h);
39   }
40   static auto create() {
41     return RTCIdentityProvider(libwasm_add__object());
42   }
43   void generateAssertion()(GenerateAssertionCallback generateAssertion) {
44     RTCIdentityProvider_generateAssertion_Set(this.handle, generateAssertion);
45   }
46   GenerateAssertionCallback generateAssertion()() {
47     return RTCIdentityProvider_generateAssertion_Get(this.handle);
48   }
49   void validateAssertion()(ValidateAssertionCallback validateAssertion) {
50     RTCIdentityProvider_validateAssertion_Set(this.handle, validateAssertion);
51   }
52   ValidateAssertionCallback validateAssertion()() {
53     return RTCIdentityProvider_validateAssertion_Get(this.handle);
54   }
55 }
56 struct RTCIdentityProviderDetails {
57   nothrow:
58   JsHandle handle;
59   alias handle this;
60   this(Handle h) {
61     this.handle = JsHandle(h);
62   }
63   static auto create() {
64     return RTCIdentityProviderDetails(libwasm_add__object());
65   }
66   void domain()(string domain) {
67     Object_Call_string__void(this.handle, "domain", domain);
68   }
69   string domain()() {
70     return Object_Getter__string(this.handle, "domain");
71   }
72   void protocol()(string protocol) {
73     Object_Call_string__void(this.handle, "protocol", protocol);
74   }
75   string protocol()() {
76     return Object_Getter__string(this.handle, "protocol");
77   }
78 }
79 struct RTCIdentityProviderOptions {
80   nothrow:
81   JsHandle handle;
82   alias handle this;
83   this(Handle h) {
84     this.handle = JsHandle(h);
85   }
86   static auto create() {
87     return RTCIdentityProviderOptions(libwasm_add__object());
88   }
89   void protocol()(string protocol) {
90     Object_Call_string__void(this.handle, "protocol", protocol);
91   }
92   string protocol()() {
93     return Object_Getter__string(this.handle, "protocol");
94   }
95   void usernameHint()(string usernameHint) {
96     Object_Call_string__void(this.handle, "usernameHint", usernameHint);
97   }
98   string usernameHint()() {
99     return Object_Getter__string(this.handle, "usernameHint");
100   }
101   void peerIdentity()(string peerIdentity) {
102     Object_Call_string__void(this.handle, "peerIdentity", peerIdentity);
103   }
104   string peerIdentity()() {
105     return Object_Getter__string(this.handle, "peerIdentity");
106   }
107 }
108 struct RTCIdentityProviderRegistrar {
109   nothrow:
110   JsHandle handle;
111   alias handle this;
112   this(Handle h) {
113     this.handle = JsHandle(h);
114   }
115   void register()(scope ref RTCIdentityProvider idp) {
116     Object_Call_Handle__void(this.handle, "register", idp.handle);
117   }
118   bool hasIdp()() {
119     return Object_Getter__bool(this.handle, "hasIdp");
120   }
121   auto generateAssertion()(string contents, string origin, scope ref RTCIdentityProviderOptions options) {
122     return JsPromise!(RTCIdentityAssertionResult)(Serialize_Object_VarArgCall!Handle(this.handle, "generateAssertion", "string;string;Handle", tuple(contents, origin, cast(Handle)options.handle)));
123   }
124   auto generateAssertion()(string contents, string origin) {
125     return JsPromise!(RTCIdentityAssertionResult)(Object_Call_string_string__Handle(this.handle, "generateAssertion", contents, origin));
126   }
127   auto validateAssertion()(string assertion, string origin) {
128     return JsPromise!(RTCIdentityValidationResult)(Object_Call_string_string__Handle(this.handle, "validateAssertion", assertion, origin));
129   }
130 }
131 struct RTCIdentityValidationResult {
132   nothrow:
133   JsHandle handle;
134   alias handle this;
135   this(Handle h) {
136     this.handle = JsHandle(h);
137   }
138   static auto create() {
139     return RTCIdentityValidationResult(libwasm_add__object());
140   }
141   void identity()(string identity) {
142     Object_Call_string__void(this.handle, "identity", identity);
143   }
144   string identity()() {
145     return Object_Getter__string(this.handle, "identity");
146   }
147   void contents()(string contents) {
148     Object_Call_string__void(this.handle, "contents", contents);
149   }
150   string contents()() {
151     return Object_Getter__string(this.handle, "contents");
152   }
153 }
154 alias ValidateAssertionCallback = JsPromise!(RTCIdentityValidationResult) delegate(string, string);
155 
156 
157 extern (C) void RTCIdentityProvider_generateAssertion_Set(Handle, GenerateAssertionCallback);
158 extern (C) GenerateAssertionCallback RTCIdentityProvider_generateAssertion_Get(Handle);
159 extern (C) void RTCIdentityProvider_validateAssertion_Set(Handle, ValidateAssertionCallback);
160 extern (C) ValidateAssertionCallback RTCIdentityProvider_validateAssertion_Get(Handle);