我正在尝试在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边界进行的调用可以检索以前存储的值?