fil*_*ora 3 rust webassembly wasm-bindgen
我正在使用 wasm bindgen 并且有以下功能:
#[wasm_bindgen]
pub fn obj(o: &JsValue){
console::log_1(o);
}
Run Code Online (Sandbox Code Playgroud)
在 js 中我调用这个函数obj({name: "john"});
并且它工作正常,但是当我尝试时它给出了指向的console::log_1(o.name);
错误unknown fieldname
JsValue没有字段name。要获取此字段,您必须声明 JS 对象。
变体1
将 serde 添加到您的依赖项中:
serde = "^1.0.101"
serde_derive = "^1.0.101"
Run Code Online (Sandbox Code Playgroud)
铁锈代码:
serde = "^1.0.101"
serde_derive = "^1.0.101"
Run Code Online (Sandbox Code Playgroud)
变体2
另一种方法是直接使用 wasm-bindgen 但我从未使用过它。我认为它应该像这样工作:
extern crate serde;
#[derive(Serialize, Deserialize)]
pub struct User {
pub name: String,
}
#[wasm_bindgen]
pub fn obj(o: &JsValue){
let user: User = o.into_serde().unwrap();
console::log_1(user.name);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |