rust - 如何将 wasm 特定的宏与函数和结构分离

标签 rust webassembly serde wasm-bindgen

我有一些核心功能,主要是我试图在 web 汇编和 java 中重用的算法。
我正在使用 wasm-bindgen 和 serde,我注意到 wasm-bindgen 和 serde 通过使用属性与我的算法紧密耦合。 IE; #[wasm_bindgen]#[derive(Serialize, Deserialize)] - 我对 rust 很陌生,所以我想知道如何将这些属性与我的函数和结构分离,以便我可以在与 java 接口(interface)的实现中重用我的函数和结构。目前因为它们是紧密耦合的,如果我尝试在一个非 wasm 的平台上使用这些功能,它会引发 panic 。

最佳答案

SerializeDeserialize不特定于 wasm 并且可在其他平台上使用。
对于 wasm_bindgen ,您可以使用 cfg_attr 属性只为 wasm 定义它更换平台 #[wasm_bindgen#[cfg_attr (wasm, wasm_bindgen)] .

关于rust - 如何将 wasm 特定的宏与函数和结构分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64893402/

相关文章:

rust - 匹配枚举引用并返回 "match arms have incompatible types"中的字符串结果

rust - 我无法反序列化 json String 以使用 serde 进行构造

rust - 如果变体的值为空,则跳过变体的序列化? (自定义序列化)

linked-list - 是否可以在 Rust 中将一个结构的内存与另一个结构相关联?

multithreading - 这个稍作修改的 Rc<()> 是 Sync,而不是 Send,对吧?

rust - 在 for 循环中使用正则表达式

webassembly - 学习 WebAssembly Uncaught (in Promise) TypeError : m. _init is not a function

c++14 - 如何在 WebAssembly 中使用向量(C++ STL)

rust - Rust wasm 中的 Closure::new 和 Closure::wrap 有什么区别

rust - 将 JSON 数组反序列化为元组并为其赋予类型标签