如何将 wasm 特定的宏与函数和结构解耦
How do I decouple wasm specific macros from functions and structs
我有一些核心功能,主要是我试图在 Web 程序集和 java.
中重用的算法
我正在使用 wasm-bindgen 和 serde,我注意到 wasm-bindgen 和 serde 通过使用属性与我的算法紧密耦合。 IE; #[wasm_bindgen]
和 #[derive(Serialize, Deserialize)]
——我对 Rust 很陌生,所以我想知道如何将这些属性与我的函数和结构分离,以便我可以在我的实现中重用我的函数和结构,这将与 java 的接口。目前因为它们紧密耦合,如果我尝试在非 wasm 的平台上使用这些函数,它会引发恐慌。
Serialize
和 Deserialize
不是 wasm 特有的,在其他平台上也可用。
对于 wasm_bindgen
,如果将 #[wasm_bindgen
替换为 #[cfg_attr (wasm, wasm_bindgen)]
,则可以使用 cfg_attr
属性仅为 wasm
平台定义它。
我有一些核心功能,主要是我试图在 Web 程序集和 java.
中重用的算法我正在使用 wasm-bindgen 和 serde,我注意到 wasm-bindgen 和 serde 通过使用属性与我的算法紧密耦合。 IE; #[wasm_bindgen]
和 #[derive(Serialize, Deserialize)]
——我对 Rust 很陌生,所以我想知道如何将这些属性与我的函数和结构分离,以便我可以在我的实现中重用我的函数和结构,这将与 java 的接口。目前因为它们紧密耦合,如果我尝试在非 wasm 的平台上使用这些函数,它会引发恐慌。
Serialize
和 Deserialize
不是 wasm 特有的,在其他平台上也可用。
对于 wasm_bindgen
,如果将 #[wasm_bindgen
替换为 #[cfg_attr (wasm, wasm_bindgen)]
,则可以使用 cfg_attr
属性仅为 wasm
平台定义它。