1

我想做的事:

#[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;

我不想在其中添加 #[wasm-bindgen] 属性,parserange.rs因为它位于一个不使用 wasm 构建的单独库中。

有解决办法吗?

4

1 回答 1

2

解决方法是将 包装parserange::Error在一个元组结构中以创建一个新类型。这样做的缺点是parserange::Error,您要使用的所有定义的函数都必须重新定义才能调用错误子对象的函数。但是,这具有创建新类型的所有优点,例如通过 wasm_bindgen 导出,或在另一个 crate 中定义的类型上实现特征。更多信息可以在这里找到

于 2021-05-31T21:51:10.827 回答