//go:build wasm //:build wasm package localstorage import "unsafe" //:wasmimport bridge localstorage_get_item func wasmGetItem(kPtr *byte, kLen int32, kCap int32, outPtr *int32, outLen *int32) //:wasmimport bridge localstorage_set_item func wasmSetItem(kPtr *byte, kLen int32, kCap int32, vPtr *byte, vLen int32, vCap int32) //:wasmimport bridge localstorage_remove_item func wasmRemoveItem(kPtr *byte, kLen int32, kCap int32) func GetItem(key string) (s string) { var rPtr, rLen int32 wasmGetItem(unsafe.StringData(key), int32(len(key)), int32(len(key)), &rPtr, &rLen) if rLen <= 0 { return "" } return unsafe.String((*byte)(unsafe.Pointer(uintptr(rPtr))), rLen) } func SetItem(key, value string) { wasmSetItem( unsafe.StringData(key), int32(len(key)), int32(len(key)), unsafe.StringData(value), int32(len(value)), int32(len(value)), ) } func RemoveItem(key string) { wasmRemoveItem(unsafe.StringData(key), int32(len(key)), int32(len(key))) }