feed_wasm.mx raw
1 //go:build wasm
2 //:build wasm
3
4 package feed
5
6 import (
7 "git.smesh.lol/smesh/web/common/jsbridge/callback"
8 "unsafe"
9 )
10
11 //:wasmimport bridge feed_send
12 func wasmSend(ptr *byte, length int32, cap int32)
13
14 //:wasmimport bridge feed_on_message
15 func wasmOnMessage(cbID int32)
16
17 //:wasmimport bridge feed_worker_on_message
18 func wasmWorkerOnMessage(cbID int32)
19
20 //:wasmimport bridge feed_worker_post
21 func wasmWorkerPost(ptr *byte, length int32, cap int32)
22
23 //:wasmimport bridge feed_worker_set_timeout
24 func wasmWorkerSetTimeout(ms int32, cbID int32) (n int32)
25
26 //:wasmimport bridge feed_worker_clear_timeout
27 func wasmWorkerClearTimeout(handle int32)
28
29 //:wasmimport bridge feed_worker_now_seconds
30 func wasmWorkerNowSeconds() (n int64)
31
32 func Send(msg string) {
33 wasmSend(unsafe.StringData(msg), int32(len(msg)), int32(len(msg)))
34 }
35 func OnMessage(fn func(msg string)) { wasmOnMessage(callback.RegisterS(fn)) }
36 func WorkerOnMessage(fn func(msg string)) { wasmWorkerOnMessage(callback.RegisterS(fn)) }
37 func WorkerPost(msg string) {
38 wasmWorkerPost(unsafe.StringData(msg), int32(len(msg)), int32(len(msg)))
39 }
40 func WorkerSetTimeout(ms int32, fn func()) (n int32) {
41 return wasmWorkerSetTimeout(ms, callback.Register0Once(fn))
42 }
43 func WorkerClearTimeout(handle int32) { wasmWorkerClearTimeout(handle) }
44 func WorkerNowSeconds() (n int64) { return wasmWorkerNowSeconds() }
45