//go:build wasm //:build wasm package bc import ( "git.smesh.lol/smesh/web/common/jsbridge/callback" "unsafe" ) //:wasmimport bridge bc_open func wasmOpen(namePtr *byte, nameLen int32, nameCap int32, cbID int32) (n int32) //:wasmimport bridge bc_send func wasmSend(handle int32, msgPtr *byte, msgLen int32, msgCap int32) //:wasmimport bridge bc_close func wasmClose(handle int32) func Open(name string, onMessage func(string)) (b BC) { cbID := callback.RegisterS(onMessage) return BC(wasmOpen(unsafe.StringData(name), int32(len(name)), int32(len(name)), cbID)) } func Send(bc BC, msg string) { wasmSend(int32(bc), unsafe.StringData(msg), int32(len(msg)), int32(len(msg))) } func Close(bc BC) { wasmClose(int32(bc)) }