我有一些核心功能,主要是我试图在 web 汇编和 java 中重用的算法。
我正在使用 wasm-bindgen 和 serde,我注意到 wasm-bindgen 和 serde 通过使用属性与我的算法紧密耦合。 IE; #[wasm_bindgen]
和 #[derive(Serialize, Deserialize)]
- 我对 rust 很陌生,所以我想知道如何将这些属性与我的函数和结构分离,以便我可以在与 java 接口(interface)的实现中重用我的函数和结构。目前因为它们是紧密耦合的,如果我尝试在一个非 wasm 的平台上使用这些功能,它会引发 panic 。
最佳答案
Serialize
和 Deserialize
不特定于 wasm 并且可在其他平台上使用。
对于 wasm_bindgen
,您可以使用 cfg_attr
属性只为 wasm
定义它更换平台 #[wasm_bindgen
与 #[cfg_attr (wasm, wasm_bindgen)]
.
关于rust - 如何将 wasm 特定的宏与函数和结构分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64893402/