rust - 使用 wasm-bindgen 时如何在 Rust 中存储全局状态?
问题描述
我正在尝试在 Rust 中编写一个数据存储,它通过 wasm-bindgen 边界从 JavaScript 接收对象并将它们存储起来以供以后检索。这是我希望工作的简化版本:
static mut MAP: HashMap<i32, String> = HashMap::new();
#[wasm_bindgen]
pub fn add_value(index: i32, value: String) {
unsafe {
MAP.insert(index, value);
}
}
#[wasm_bindgen]
pub fn get_value(index: i32) -> String {
unsafe {
(*MAP.get(&index).unwrap()).clone()
}
}
但是我从 Rust 编译器得到这个错误:
error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
我如何存储状态,以便跨 wasm-bindgen 边界的后续调用可以检索以前存储的值?
解决方案
推荐阅读
- linux - 从 master 指定一个 jenkins home 在 slave
- javascript - 根据另一个对象数组修改一个对象数组
- javascript - 动态页面不会更改呈现的组件,但单击后退按钮时 URL 会更改,使用链接
- sql-server - MS SQL 将管理员冒充为“访客”
- python - Deeplab:通过运行“sh convert_cityscapes.sh”将数据集转换为 TFRecord 时出错
- javascript - 将本地文件中的数据加载到 Excel 加载项
- python - 在 Python 中优化数据帧子集操作
- python - 从python列表中获取特定数字的最佳方法是什么?
- javascript - 如何从 React 中的购物车中删除两个冲突的 id?
- python - 现在 tf.keras.backend 有什么用,是否更安全/更面向未来进行编码?