使用对象参数-Rust/wasm\u bindgen导入js函数

使用对象参数-Rust/wasm\u bindgen导入js函数,rust,webassembly,wasm-bindgen,Rust,Webassembly,Wasm Bindgen,我试图使用rust中的JS函数和wasm_bindgen,该函数有一个类似于fetch的对象参数: [瓦斯穆宾根] 外部C{ [瓦斯穆宾根] fn fetchresource:&str,config:&JsValue; } 仅以fetch为例,我知道有更好的方法使用FetchfromRust 我不确定如何在rust中对配置对象建模 我尝试使用JsValue,但JsValue似乎只能从基本类型创建,而不能从对象创建 我在网上看到了一些建议,serde可以在这里提供帮助,但我找不到任何具体的例子,我

我试图使用rust中的JS函数和wasm_bindgen,该函数有一个类似于fetch的对象参数:

[瓦斯穆宾根] 外部C{ [瓦斯穆宾根] fn fetchresource:&str,config:&JsValue; } 仅以fetch为例,我知道有更好的方法使用FetchfromRust

我不确定如何在rust中对配置对象建模

我尝试使用JsValue,但JsValue似乎只能从基本类型创建,而不能从对象创建

我在网上看到了一些建议,serde可以在这里提供帮助,但我找不到任何具体的例子,我自己尝试让它发挥作用也没有什么成效


提前感谢您的关注

看起来您可以使用js_sys::Reflect访问或设置任意值,也可以使用serde解析/解析值

对于第一种方法,此资源解释如何读取或写入非类型化对象的属性:使用此接口的示例可以在web sys本身中找到,它定义了在构建用于获取的配置对象时使用的RequestInit对象:

另一种方法是使用serde。这方面的一个例子可以在上找到,更详细的解释可以在上找到


定义要序列化和反序列化的对象后,JsValue::from_serde和.into_serde可用于与JsValue进行转换,也可用于与JsValue进行转换。一位同事指出的另一个选项是使用serde_wasm_bindgen,例如

[衍生序列化、反序列化] 结构FetchConfig{ pub方法:String, } fn呼叫获取{ 让config=FetchConfig{ 方法:post.to_字符串 }; 让config=serde_wasm_bindgen::to_value&config.unwrap; Fetchhttps://example.com,&config; }