如何使用带有类型别名的#[wasm_bindgen]?
How to use #[wasm_bindgen] with a type aliases?
我想做什么:
#[wasm_bindgen]
pub type ParseError = parserange::Error;
但是 Rust 编译器抱怨:
error: #[wasm_bindgen] can only be applied to a function, struct, enum, impl, or extern block
--> src/lib.rs:89:1
|
89 | pub type ParseError = parserange::Error;
我不想在 parserange.rs
中添加 #[wasm-bindgen] 属性,因为它位于一个不使用 wasm 构建的单独库中。
有解决办法吗?
解决方法是将 parserange::Error
包装在元组结构中以创建新类型。这样做的缺点是,您要使用的 parserange::Error
上定义的所有函数都必须重新定义才能调用错误子对象的函数。不过,这具有创建新类型的所有优点,例如通过 wasm_bindgen 导出,或在另一个 crate 中定义的类型上实现特征。可以找到更多信息 here
我想做什么:
#[wasm_bindgen]
pub type ParseError = parserange::Error;
但是 Rust 编译器抱怨:
error: #[wasm_bindgen] can only be applied to a function, struct, enum, impl, or extern block
--> src/lib.rs:89:1
|
89 | pub type ParseError = parserange::Error;
我不想在 parserange.rs
中添加 #[wasm-bindgen] 属性,因为它位于一个不使用 wasm 构建的单独库中。
有解决办法吗?
解决方法是将 parserange::Error
包装在元组结构中以创建新类型。这样做的缺点是,您要使用的 parserange::Error
上定义的所有函数都必须重新定义才能调用错误子对象的函数。不过,这具有创建新类型的所有优点,例如通过 wasm_bindgen 导出,或在另一个 crate 中定义的类型上实现特征。可以找到更多信息 here