github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/gcm/apis_js_wasm.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright 2023 The Prime Citizens
     3  
     4  package gcm
     5  
     6  import (
     7  	"github.com/primecitizens/pcz/std/core/abi"
     8  	"github.com/primecitizens/pcz/std/core/mark"
     9  	"github.com/primecitizens/pcz/std/ffi/js"
    10  	"github.com/primecitizens/pcz/std/plat/js/webext/gcm/bindings"
    11  )
    12  
    13  // MAX_MESSAGE_SIZE returns the value of property "WEBEXT.gcm.MAX_MESSAGE_SIZE".
    14  //
    15  // The returned bool will be false if there is no such property.
    16  func MAX_MESSAGE_SIZE() (ret js.String, ok bool) {
    17  	ok = js.True == bindings.GetMAX_MESSAGE_SIZE(
    18  		js.Pointer(&ret),
    19  	)
    20  
    21  	return
    22  }
    23  
    24  // SetMAX_MESSAGE_SIZE sets the value of property "WEBEXT.gcm.MAX_MESSAGE_SIZE" to val.
    25  //
    26  // It returns false if the property cannot be set.
    27  func SetMAX_MESSAGE_SIZE(val js.String) bool {
    28  	return js.True == bindings.SetMAX_MESSAGE_SIZE(
    29  		val.Ref())
    30  }
    31  
    32  type OnMessageArgMessage struct {
    33  	// CollapseKey is "OnMessageArgMessage.collapseKey"
    34  	//
    35  	// Optional
    36  	CollapseKey js.String
    37  	// Data is "OnMessageArgMessage.data"
    38  	//
    39  	// Required
    40  	Data js.String
    41  	// From is "OnMessageArgMessage.from"
    42  	//
    43  	// Optional
    44  	From js.String
    45  
    46  	FFI_USE bool
    47  }
    48  
    49  // FromRef calls UpdateFrom and returns a OnMessageArgMessage with all fields set.
    50  func (p OnMessageArgMessage) FromRef(ref js.Ref) OnMessageArgMessage {
    51  	p.UpdateFrom(ref)
    52  	return p
    53  }
    54  
    55  // New creates a new OnMessageArgMessage in the application heap.
    56  func (p OnMessageArgMessage) New() js.Ref {
    57  	return bindings.OnMessageArgMessageJSLoad(
    58  		js.Pointer(&p), js.True, 0,
    59  	)
    60  }
    61  
    62  // UpdateFrom copies value of all fields of the heap object to p.
    63  func (p *OnMessageArgMessage) UpdateFrom(ref js.Ref) {
    64  	bindings.OnMessageArgMessageJSStore(
    65  		js.Pointer(p), ref,
    66  	)
    67  }
    68  
    69  // Update writes all fields of the p to the heap object referenced by ref.
    70  func (p *OnMessageArgMessage) Update(ref js.Ref) {
    71  	bindings.OnMessageArgMessageJSLoad(
    72  		js.Pointer(p), js.False, ref,
    73  	)
    74  }
    75  
    76  // FreeMembers frees fields with heap reference, if recursive is true
    77  // free all heap references reachable from p.
    78  func (p *OnMessageArgMessage) FreeMembers(recursive bool) {
    79  	js.Free(
    80  		p.CollapseKey.Ref(),
    81  		p.Data.Ref(),
    82  		p.From.Ref(),
    83  	)
    84  	p.CollapseKey = p.CollapseKey.FromRef(js.Undefined)
    85  	p.Data = p.Data.FromRef(js.Undefined)
    86  	p.From = p.From.FromRef(js.Undefined)
    87  }
    88  
    89  type OnSendErrorArgError struct {
    90  	// Details is "OnSendErrorArgError.details"
    91  	//
    92  	// Required
    93  	Details js.String
    94  	// ErrorMessage is "OnSendErrorArgError.errorMessage"
    95  	//
    96  	// Required
    97  	ErrorMessage js.String
    98  	// MessageId is "OnSendErrorArgError.messageId"
    99  	//
   100  	// Optional
   101  	MessageId js.String
   102  
   103  	FFI_USE bool
   104  }
   105  
   106  // FromRef calls UpdateFrom and returns a OnSendErrorArgError with all fields set.
   107  func (p OnSendErrorArgError) FromRef(ref js.Ref) OnSendErrorArgError {
   108  	p.UpdateFrom(ref)
   109  	return p
   110  }
   111  
   112  // New creates a new OnSendErrorArgError in the application heap.
   113  func (p OnSendErrorArgError) New() js.Ref {
   114  	return bindings.OnSendErrorArgErrorJSLoad(
   115  		js.Pointer(&p), js.True, 0,
   116  	)
   117  }
   118  
   119  // UpdateFrom copies value of all fields of the heap object to p.
   120  func (p *OnSendErrorArgError) UpdateFrom(ref js.Ref) {
   121  	bindings.OnSendErrorArgErrorJSStore(
   122  		js.Pointer(p), ref,
   123  	)
   124  }
   125  
   126  // Update writes all fields of the p to the heap object referenced by ref.
   127  func (p *OnSendErrorArgError) Update(ref js.Ref) {
   128  	bindings.OnSendErrorArgErrorJSLoad(
   129  		js.Pointer(p), js.False, ref,
   130  	)
   131  }
   132  
   133  // FreeMembers frees fields with heap reference, if recursive is true
   134  // free all heap references reachable from p.
   135  func (p *OnSendErrorArgError) FreeMembers(recursive bool) {
   136  	js.Free(
   137  		p.Details.Ref(),
   138  		p.ErrorMessage.Ref(),
   139  		p.MessageId.Ref(),
   140  	)
   141  	p.Details = p.Details.FromRef(js.Undefined)
   142  	p.ErrorMessage = p.ErrorMessage.FromRef(js.Undefined)
   143  	p.MessageId = p.MessageId.FromRef(js.Undefined)
   144  }
   145  
   146  type SendArgMessage struct {
   147  	// Data is "SendArgMessage.data"
   148  	//
   149  	// Required
   150  	Data js.String
   151  	// DestinationId is "SendArgMessage.destinationId"
   152  	//
   153  	// Required
   154  	DestinationId js.String
   155  	// MessageId is "SendArgMessage.messageId"
   156  	//
   157  	// Required
   158  	MessageId js.String
   159  	// TimeToLive is "SendArgMessage.timeToLive"
   160  	//
   161  	// Optional
   162  	//
   163  	// NOTE: FFI_USE_TimeToLive MUST be set to true to make this field effective.
   164  	TimeToLive int64
   165  
   166  	FFI_USE_TimeToLive bool // for TimeToLive.
   167  
   168  	FFI_USE bool
   169  }
   170  
   171  // FromRef calls UpdateFrom and returns a SendArgMessage with all fields set.
   172  func (p SendArgMessage) FromRef(ref js.Ref) SendArgMessage {
   173  	p.UpdateFrom(ref)
   174  	return p
   175  }
   176  
   177  // New creates a new SendArgMessage in the application heap.
   178  func (p SendArgMessage) New() js.Ref {
   179  	return bindings.SendArgMessageJSLoad(
   180  		js.Pointer(&p), js.True, 0,
   181  	)
   182  }
   183  
   184  // UpdateFrom copies value of all fields of the heap object to p.
   185  func (p *SendArgMessage) UpdateFrom(ref js.Ref) {
   186  	bindings.SendArgMessageJSStore(
   187  		js.Pointer(p), ref,
   188  	)
   189  }
   190  
   191  // Update writes all fields of the p to the heap object referenced by ref.
   192  func (p *SendArgMessage) Update(ref js.Ref) {
   193  	bindings.SendArgMessageJSLoad(
   194  		js.Pointer(p), js.False, ref,
   195  	)
   196  }
   197  
   198  // FreeMembers frees fields with heap reference, if recursive is true
   199  // free all heap references reachable from p.
   200  func (p *SendArgMessage) FreeMembers(recursive bool) {
   201  	js.Free(
   202  		p.Data.Ref(),
   203  		p.DestinationId.Ref(),
   204  		p.MessageId.Ref(),
   205  	)
   206  	p.Data = p.Data.FromRef(js.Undefined)
   207  	p.DestinationId = p.DestinationId.FromRef(js.Undefined)
   208  	p.MessageId = p.MessageId.FromRef(js.Undefined)
   209  }
   210  
   211  type OnMessageEventCallbackFunc func(this js.Ref, message *OnMessageArgMessage) js.Ref
   212  
   213  func (fn OnMessageEventCallbackFunc) Register() js.Func[func(message *OnMessageArgMessage)] {
   214  	return js.RegisterCallback[func(message *OnMessageArgMessage)](
   215  		fn, abi.FuncPCABIInternal(fn),
   216  	)
   217  }
   218  
   219  func (fn OnMessageEventCallbackFunc) DispatchCallback(
   220  	targetPC uintptr, ctx *js.CallbackContext,
   221  ) {
   222  	args := ctx.Args()
   223  	if len(args) != 1+1 /* js this */ ||
   224  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   225  		js.ThrowInvalidCallbackInvocation()
   226  	}
   227  	var arg0 OnMessageArgMessage
   228  	arg0.UpdateFrom(args[0+1])
   229  	defer arg0.FreeMembers(true)
   230  
   231  	if ctx.Return(fn(
   232  		args[0],
   233  
   234  		mark.NoEscape(&arg0),
   235  	)) {
   236  		return
   237  	}
   238  
   239  	js.ThrowCallbackValueNotReturned()
   240  }
   241  
   242  type OnMessageEventCallback[T any] struct {
   243  	Fn  func(arg T, this js.Ref, message *OnMessageArgMessage) js.Ref
   244  	Arg T
   245  }
   246  
   247  func (cb *OnMessageEventCallback[T]) Register() js.Func[func(message *OnMessageArgMessage)] {
   248  	return js.RegisterCallback[func(message *OnMessageArgMessage)](
   249  		cb, abi.FuncPCABIInternal(cb.Fn),
   250  	)
   251  }
   252  
   253  func (cb *OnMessageEventCallback[T]) DispatchCallback(
   254  	targetPC uintptr, ctx *js.CallbackContext,
   255  ) {
   256  	args := ctx.Args()
   257  	if len(args) != 1+1 /* js this */ ||
   258  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   259  		js.ThrowInvalidCallbackInvocation()
   260  	}
   261  	var arg0 OnMessageArgMessage
   262  	arg0.UpdateFrom(args[0+1])
   263  	defer arg0.FreeMembers(true)
   264  
   265  	if ctx.Return(cb.Fn(
   266  		cb.Arg,
   267  		args[0],
   268  
   269  		mark.NoEscape(&arg0),
   270  	)) {
   271  		return
   272  	}
   273  
   274  	js.ThrowCallbackValueNotReturned()
   275  }
   276  
   277  // HasFuncOnMessage returns true if the function "WEBEXT.gcm.onMessage.addListener" exists.
   278  func HasFuncOnMessage() bool {
   279  	return js.True == bindings.HasFuncOnMessage()
   280  }
   281  
   282  // FuncOnMessage returns the function "WEBEXT.gcm.onMessage.addListener".
   283  func FuncOnMessage() (fn js.Func[func(callback js.Func[func(message *OnMessageArgMessage)])]) {
   284  	bindings.FuncOnMessage(
   285  		js.Pointer(&fn),
   286  	)
   287  	return
   288  }
   289  
   290  // OnMessage calls the function "WEBEXT.gcm.onMessage.addListener" directly.
   291  func OnMessage(callback js.Func[func(message *OnMessageArgMessage)]) (ret js.Void) {
   292  	bindings.CallOnMessage(
   293  		js.Pointer(&ret),
   294  		callback.Ref(),
   295  	)
   296  
   297  	return
   298  }
   299  
   300  // TryOnMessage calls the function "WEBEXT.gcm.onMessage.addListener"
   301  // in a try/catch block and returns (_, err, ok = false) when it went through
   302  // the catch clause.
   303  func TryOnMessage(callback js.Func[func(message *OnMessageArgMessage)]) (ret js.Void, exception js.Any, ok bool) {
   304  	ok = js.True == bindings.TryOnMessage(
   305  		js.Pointer(&ret), js.Pointer(&exception),
   306  		callback.Ref(),
   307  	)
   308  
   309  	return
   310  }
   311  
   312  // HasFuncOffMessage returns true if the function "WEBEXT.gcm.onMessage.removeListener" exists.
   313  func HasFuncOffMessage() bool {
   314  	return js.True == bindings.HasFuncOffMessage()
   315  }
   316  
   317  // FuncOffMessage returns the function "WEBEXT.gcm.onMessage.removeListener".
   318  func FuncOffMessage() (fn js.Func[func(callback js.Func[func(message *OnMessageArgMessage)])]) {
   319  	bindings.FuncOffMessage(
   320  		js.Pointer(&fn),
   321  	)
   322  	return
   323  }
   324  
   325  // OffMessage calls the function "WEBEXT.gcm.onMessage.removeListener" directly.
   326  func OffMessage(callback js.Func[func(message *OnMessageArgMessage)]) (ret js.Void) {
   327  	bindings.CallOffMessage(
   328  		js.Pointer(&ret),
   329  		callback.Ref(),
   330  	)
   331  
   332  	return
   333  }
   334  
   335  // TryOffMessage calls the function "WEBEXT.gcm.onMessage.removeListener"
   336  // in a try/catch block and returns (_, err, ok = false) when it went through
   337  // the catch clause.
   338  func TryOffMessage(callback js.Func[func(message *OnMessageArgMessage)]) (ret js.Void, exception js.Any, ok bool) {
   339  	ok = js.True == bindings.TryOffMessage(
   340  		js.Pointer(&ret), js.Pointer(&exception),
   341  		callback.Ref(),
   342  	)
   343  
   344  	return
   345  }
   346  
   347  // HasFuncHasOnMessage returns true if the function "WEBEXT.gcm.onMessage.hasListener" exists.
   348  func HasFuncHasOnMessage() bool {
   349  	return js.True == bindings.HasFuncHasOnMessage()
   350  }
   351  
   352  // FuncHasOnMessage returns the function "WEBEXT.gcm.onMessage.hasListener".
   353  func FuncHasOnMessage() (fn js.Func[func(callback js.Func[func(message *OnMessageArgMessage)]) bool]) {
   354  	bindings.FuncHasOnMessage(
   355  		js.Pointer(&fn),
   356  	)
   357  	return
   358  }
   359  
   360  // HasOnMessage calls the function "WEBEXT.gcm.onMessage.hasListener" directly.
   361  func HasOnMessage(callback js.Func[func(message *OnMessageArgMessage)]) (ret bool) {
   362  	bindings.CallHasOnMessage(
   363  		js.Pointer(&ret),
   364  		callback.Ref(),
   365  	)
   366  
   367  	return
   368  }
   369  
   370  // TryHasOnMessage calls the function "WEBEXT.gcm.onMessage.hasListener"
   371  // in a try/catch block and returns (_, err, ok = false) when it went through
   372  // the catch clause.
   373  func TryHasOnMessage(callback js.Func[func(message *OnMessageArgMessage)]) (ret bool, exception js.Any, ok bool) {
   374  	ok = js.True == bindings.TryHasOnMessage(
   375  		js.Pointer(&ret), js.Pointer(&exception),
   376  		callback.Ref(),
   377  	)
   378  
   379  	return
   380  }
   381  
   382  type OnMessagesDeletedEventCallbackFunc func(this js.Ref) js.Ref
   383  
   384  func (fn OnMessagesDeletedEventCallbackFunc) Register() js.Func[func()] {
   385  	return js.RegisterCallback[func()](
   386  		fn, abi.FuncPCABIInternal(fn),
   387  	)
   388  }
   389  
   390  func (fn OnMessagesDeletedEventCallbackFunc) DispatchCallback(
   391  	targetPC uintptr, ctx *js.CallbackContext,
   392  ) {
   393  	args := ctx.Args()
   394  	if len(args) != 0+1 /* js this */ ||
   395  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   396  		js.ThrowInvalidCallbackInvocation()
   397  	}
   398  
   399  	if ctx.Return(fn(
   400  		args[0],
   401  	)) {
   402  		return
   403  	}
   404  
   405  	js.ThrowCallbackValueNotReturned()
   406  }
   407  
   408  type OnMessagesDeletedEventCallback[T any] struct {
   409  	Fn  func(arg T, this js.Ref) js.Ref
   410  	Arg T
   411  }
   412  
   413  func (cb *OnMessagesDeletedEventCallback[T]) Register() js.Func[func()] {
   414  	return js.RegisterCallback[func()](
   415  		cb, abi.FuncPCABIInternal(cb.Fn),
   416  	)
   417  }
   418  
   419  func (cb *OnMessagesDeletedEventCallback[T]) DispatchCallback(
   420  	targetPC uintptr, ctx *js.CallbackContext,
   421  ) {
   422  	args := ctx.Args()
   423  	if len(args) != 0+1 /* js this */ ||
   424  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   425  		js.ThrowInvalidCallbackInvocation()
   426  	}
   427  
   428  	if ctx.Return(cb.Fn(
   429  		cb.Arg,
   430  		args[0],
   431  	)) {
   432  		return
   433  	}
   434  
   435  	js.ThrowCallbackValueNotReturned()
   436  }
   437  
   438  // HasFuncOnMessagesDeleted returns true if the function "WEBEXT.gcm.onMessagesDeleted.addListener" exists.
   439  func HasFuncOnMessagesDeleted() bool {
   440  	return js.True == bindings.HasFuncOnMessagesDeleted()
   441  }
   442  
   443  // FuncOnMessagesDeleted returns the function "WEBEXT.gcm.onMessagesDeleted.addListener".
   444  func FuncOnMessagesDeleted() (fn js.Func[func(callback js.Func[func()])]) {
   445  	bindings.FuncOnMessagesDeleted(
   446  		js.Pointer(&fn),
   447  	)
   448  	return
   449  }
   450  
   451  // OnMessagesDeleted calls the function "WEBEXT.gcm.onMessagesDeleted.addListener" directly.
   452  func OnMessagesDeleted(callback js.Func[func()]) (ret js.Void) {
   453  	bindings.CallOnMessagesDeleted(
   454  		js.Pointer(&ret),
   455  		callback.Ref(),
   456  	)
   457  
   458  	return
   459  }
   460  
   461  // TryOnMessagesDeleted calls the function "WEBEXT.gcm.onMessagesDeleted.addListener"
   462  // in a try/catch block and returns (_, err, ok = false) when it went through
   463  // the catch clause.
   464  func TryOnMessagesDeleted(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
   465  	ok = js.True == bindings.TryOnMessagesDeleted(
   466  		js.Pointer(&ret), js.Pointer(&exception),
   467  		callback.Ref(),
   468  	)
   469  
   470  	return
   471  }
   472  
   473  // HasFuncOffMessagesDeleted returns true if the function "WEBEXT.gcm.onMessagesDeleted.removeListener" exists.
   474  func HasFuncOffMessagesDeleted() bool {
   475  	return js.True == bindings.HasFuncOffMessagesDeleted()
   476  }
   477  
   478  // FuncOffMessagesDeleted returns the function "WEBEXT.gcm.onMessagesDeleted.removeListener".
   479  func FuncOffMessagesDeleted() (fn js.Func[func(callback js.Func[func()])]) {
   480  	bindings.FuncOffMessagesDeleted(
   481  		js.Pointer(&fn),
   482  	)
   483  	return
   484  }
   485  
   486  // OffMessagesDeleted calls the function "WEBEXT.gcm.onMessagesDeleted.removeListener" directly.
   487  func OffMessagesDeleted(callback js.Func[func()]) (ret js.Void) {
   488  	bindings.CallOffMessagesDeleted(
   489  		js.Pointer(&ret),
   490  		callback.Ref(),
   491  	)
   492  
   493  	return
   494  }
   495  
   496  // TryOffMessagesDeleted calls the function "WEBEXT.gcm.onMessagesDeleted.removeListener"
   497  // in a try/catch block and returns (_, err, ok = false) when it went through
   498  // the catch clause.
   499  func TryOffMessagesDeleted(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
   500  	ok = js.True == bindings.TryOffMessagesDeleted(
   501  		js.Pointer(&ret), js.Pointer(&exception),
   502  		callback.Ref(),
   503  	)
   504  
   505  	return
   506  }
   507  
   508  // HasFuncHasOnMessagesDeleted returns true if the function "WEBEXT.gcm.onMessagesDeleted.hasListener" exists.
   509  func HasFuncHasOnMessagesDeleted() bool {
   510  	return js.True == bindings.HasFuncHasOnMessagesDeleted()
   511  }
   512  
   513  // FuncHasOnMessagesDeleted returns the function "WEBEXT.gcm.onMessagesDeleted.hasListener".
   514  func FuncHasOnMessagesDeleted() (fn js.Func[func(callback js.Func[func()]) bool]) {
   515  	bindings.FuncHasOnMessagesDeleted(
   516  		js.Pointer(&fn),
   517  	)
   518  	return
   519  }
   520  
   521  // HasOnMessagesDeleted calls the function "WEBEXT.gcm.onMessagesDeleted.hasListener" directly.
   522  func HasOnMessagesDeleted(callback js.Func[func()]) (ret bool) {
   523  	bindings.CallHasOnMessagesDeleted(
   524  		js.Pointer(&ret),
   525  		callback.Ref(),
   526  	)
   527  
   528  	return
   529  }
   530  
   531  // TryHasOnMessagesDeleted calls the function "WEBEXT.gcm.onMessagesDeleted.hasListener"
   532  // in a try/catch block and returns (_, err, ok = false) when it went through
   533  // the catch clause.
   534  func TryHasOnMessagesDeleted(callback js.Func[func()]) (ret bool, exception js.Any, ok bool) {
   535  	ok = js.True == bindings.TryHasOnMessagesDeleted(
   536  		js.Pointer(&ret), js.Pointer(&exception),
   537  		callback.Ref(),
   538  	)
   539  
   540  	return
   541  }
   542  
   543  type OnSendErrorEventCallbackFunc func(this js.Ref, err *OnSendErrorArgError) js.Ref
   544  
   545  func (fn OnSendErrorEventCallbackFunc) Register() js.Func[func(err *OnSendErrorArgError)] {
   546  	return js.RegisterCallback[func(err *OnSendErrorArgError)](
   547  		fn, abi.FuncPCABIInternal(fn),
   548  	)
   549  }
   550  
   551  func (fn OnSendErrorEventCallbackFunc) DispatchCallback(
   552  	targetPC uintptr, ctx *js.CallbackContext,
   553  ) {
   554  	args := ctx.Args()
   555  	if len(args) != 1+1 /* js this */ ||
   556  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   557  		js.ThrowInvalidCallbackInvocation()
   558  	}
   559  	var arg0 OnSendErrorArgError
   560  	arg0.UpdateFrom(args[0+1])
   561  	defer arg0.FreeMembers(true)
   562  
   563  	if ctx.Return(fn(
   564  		args[0],
   565  
   566  		mark.NoEscape(&arg0),
   567  	)) {
   568  		return
   569  	}
   570  
   571  	js.ThrowCallbackValueNotReturned()
   572  }
   573  
   574  type OnSendErrorEventCallback[T any] struct {
   575  	Fn  func(arg T, this js.Ref, err *OnSendErrorArgError) js.Ref
   576  	Arg T
   577  }
   578  
   579  func (cb *OnSendErrorEventCallback[T]) Register() js.Func[func(err *OnSendErrorArgError)] {
   580  	return js.RegisterCallback[func(err *OnSendErrorArgError)](
   581  		cb, abi.FuncPCABIInternal(cb.Fn),
   582  	)
   583  }
   584  
   585  func (cb *OnSendErrorEventCallback[T]) DispatchCallback(
   586  	targetPC uintptr, ctx *js.CallbackContext,
   587  ) {
   588  	args := ctx.Args()
   589  	if len(args) != 1+1 /* js this */ ||
   590  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   591  		js.ThrowInvalidCallbackInvocation()
   592  	}
   593  	var arg0 OnSendErrorArgError
   594  	arg0.UpdateFrom(args[0+1])
   595  	defer arg0.FreeMembers(true)
   596  
   597  	if ctx.Return(cb.Fn(
   598  		cb.Arg,
   599  		args[0],
   600  
   601  		mark.NoEscape(&arg0),
   602  	)) {
   603  		return
   604  	}
   605  
   606  	js.ThrowCallbackValueNotReturned()
   607  }
   608  
   609  // HasFuncOnSendError returns true if the function "WEBEXT.gcm.onSendError.addListener" exists.
   610  func HasFuncOnSendError() bool {
   611  	return js.True == bindings.HasFuncOnSendError()
   612  }
   613  
   614  // FuncOnSendError returns the function "WEBEXT.gcm.onSendError.addListener".
   615  func FuncOnSendError() (fn js.Func[func(callback js.Func[func(err *OnSendErrorArgError)])]) {
   616  	bindings.FuncOnSendError(
   617  		js.Pointer(&fn),
   618  	)
   619  	return
   620  }
   621  
   622  // OnSendError calls the function "WEBEXT.gcm.onSendError.addListener" directly.
   623  func OnSendError(callback js.Func[func(err *OnSendErrorArgError)]) (ret js.Void) {
   624  	bindings.CallOnSendError(
   625  		js.Pointer(&ret),
   626  		callback.Ref(),
   627  	)
   628  
   629  	return
   630  }
   631  
   632  // TryOnSendError calls the function "WEBEXT.gcm.onSendError.addListener"
   633  // in a try/catch block and returns (_, err, ok = false) when it went through
   634  // the catch clause.
   635  func TryOnSendError(callback js.Func[func(err *OnSendErrorArgError)]) (ret js.Void, exception js.Any, ok bool) {
   636  	ok = js.True == bindings.TryOnSendError(
   637  		js.Pointer(&ret), js.Pointer(&exception),
   638  		callback.Ref(),
   639  	)
   640  
   641  	return
   642  }
   643  
   644  // HasFuncOffSendError returns true if the function "WEBEXT.gcm.onSendError.removeListener" exists.
   645  func HasFuncOffSendError() bool {
   646  	return js.True == bindings.HasFuncOffSendError()
   647  }
   648  
   649  // FuncOffSendError returns the function "WEBEXT.gcm.onSendError.removeListener".
   650  func FuncOffSendError() (fn js.Func[func(callback js.Func[func(err *OnSendErrorArgError)])]) {
   651  	bindings.FuncOffSendError(
   652  		js.Pointer(&fn),
   653  	)
   654  	return
   655  }
   656  
   657  // OffSendError calls the function "WEBEXT.gcm.onSendError.removeListener" directly.
   658  func OffSendError(callback js.Func[func(err *OnSendErrorArgError)]) (ret js.Void) {
   659  	bindings.CallOffSendError(
   660  		js.Pointer(&ret),
   661  		callback.Ref(),
   662  	)
   663  
   664  	return
   665  }
   666  
   667  // TryOffSendError calls the function "WEBEXT.gcm.onSendError.removeListener"
   668  // in a try/catch block and returns (_, err, ok = false) when it went through
   669  // the catch clause.
   670  func TryOffSendError(callback js.Func[func(err *OnSendErrorArgError)]) (ret js.Void, exception js.Any, ok bool) {
   671  	ok = js.True == bindings.TryOffSendError(
   672  		js.Pointer(&ret), js.Pointer(&exception),
   673  		callback.Ref(),
   674  	)
   675  
   676  	return
   677  }
   678  
   679  // HasFuncHasOnSendError returns true if the function "WEBEXT.gcm.onSendError.hasListener" exists.
   680  func HasFuncHasOnSendError() bool {
   681  	return js.True == bindings.HasFuncHasOnSendError()
   682  }
   683  
   684  // FuncHasOnSendError returns the function "WEBEXT.gcm.onSendError.hasListener".
   685  func FuncHasOnSendError() (fn js.Func[func(callback js.Func[func(err *OnSendErrorArgError)]) bool]) {
   686  	bindings.FuncHasOnSendError(
   687  		js.Pointer(&fn),
   688  	)
   689  	return
   690  }
   691  
   692  // HasOnSendError calls the function "WEBEXT.gcm.onSendError.hasListener" directly.
   693  func HasOnSendError(callback js.Func[func(err *OnSendErrorArgError)]) (ret bool) {
   694  	bindings.CallHasOnSendError(
   695  		js.Pointer(&ret),
   696  		callback.Ref(),
   697  	)
   698  
   699  	return
   700  }
   701  
   702  // TryHasOnSendError calls the function "WEBEXT.gcm.onSendError.hasListener"
   703  // in a try/catch block and returns (_, err, ok = false) when it went through
   704  // the catch clause.
   705  func TryHasOnSendError(callback js.Func[func(err *OnSendErrorArgError)]) (ret bool, exception js.Any, ok bool) {
   706  	ok = js.True == bindings.TryHasOnSendError(
   707  		js.Pointer(&ret), js.Pointer(&exception),
   708  		callback.Ref(),
   709  	)
   710  
   711  	return
   712  }
   713  
   714  // HasFuncRegister returns true if the function "WEBEXT.gcm.register" exists.
   715  func HasFuncRegister() bool {
   716  	return js.True == bindings.HasFuncRegister()
   717  }
   718  
   719  // FuncRegister returns the function "WEBEXT.gcm.register".
   720  func FuncRegister() (fn js.Func[func(senderIds js.Array[js.String]) js.Promise[js.String]]) {
   721  	bindings.FuncRegister(
   722  		js.Pointer(&fn),
   723  	)
   724  	return
   725  }
   726  
   727  // Register calls the function "WEBEXT.gcm.register" directly.
   728  func Register(senderIds js.Array[js.String]) (ret js.Promise[js.String]) {
   729  	bindings.CallRegister(
   730  		js.Pointer(&ret),
   731  		senderIds.Ref(),
   732  	)
   733  
   734  	return
   735  }
   736  
   737  // TryRegister calls the function "WEBEXT.gcm.register"
   738  // in a try/catch block and returns (_, err, ok = false) when it went through
   739  // the catch clause.
   740  func TryRegister(senderIds js.Array[js.String]) (ret js.Promise[js.String], exception js.Any, ok bool) {
   741  	ok = js.True == bindings.TryRegister(
   742  		js.Pointer(&ret), js.Pointer(&exception),
   743  		senderIds.Ref(),
   744  	)
   745  
   746  	return
   747  }
   748  
   749  // HasFuncSend returns true if the function "WEBEXT.gcm.send" exists.
   750  func HasFuncSend() bool {
   751  	return js.True == bindings.HasFuncSend()
   752  }
   753  
   754  // FuncSend returns the function "WEBEXT.gcm.send".
   755  func FuncSend() (fn js.Func[func(message SendArgMessage) js.Promise[js.String]]) {
   756  	bindings.FuncSend(
   757  		js.Pointer(&fn),
   758  	)
   759  	return
   760  }
   761  
   762  // Send calls the function "WEBEXT.gcm.send" directly.
   763  func Send(message SendArgMessage) (ret js.Promise[js.String]) {
   764  	bindings.CallSend(
   765  		js.Pointer(&ret),
   766  		js.Pointer(&message),
   767  	)
   768  
   769  	return
   770  }
   771  
   772  // TrySend calls the function "WEBEXT.gcm.send"
   773  // in a try/catch block and returns (_, err, ok = false) when it went through
   774  // the catch clause.
   775  func TrySend(message SendArgMessage) (ret js.Promise[js.String], exception js.Any, ok bool) {
   776  	ok = js.True == bindings.TrySend(
   777  		js.Pointer(&ret), js.Pointer(&exception),
   778  		js.Pointer(&message),
   779  	)
   780  
   781  	return
   782  }
   783  
   784  // HasFuncUnregister returns true if the function "WEBEXT.gcm.unregister" exists.
   785  func HasFuncUnregister() bool {
   786  	return js.True == bindings.HasFuncUnregister()
   787  }
   788  
   789  // FuncUnregister returns the function "WEBEXT.gcm.unregister".
   790  func FuncUnregister() (fn js.Func[func() js.Promise[js.Void]]) {
   791  	bindings.FuncUnregister(
   792  		js.Pointer(&fn),
   793  	)
   794  	return
   795  }
   796  
   797  // Unregister calls the function "WEBEXT.gcm.unregister" directly.
   798  func Unregister() (ret js.Promise[js.Void]) {
   799  	bindings.CallUnregister(
   800  		js.Pointer(&ret),
   801  	)
   802  
   803  	return
   804  }
   805  
   806  // TryUnregister calls the function "WEBEXT.gcm.unregister"
   807  // in a try/catch block and returns (_, err, ok = false) when it went through
   808  // the catch clause.
   809  func TryUnregister() (ret js.Promise[js.Void], exception js.Any, ok bool) {
   810  	ok = js.True == bindings.TryUnregister(
   811  		js.Pointer(&ret), js.Pointer(&exception),
   812  	)
   813  
   814  	return
   815  }