【问题标题】:How to use #[wasm_bindgen] with a type aliases?如何使用带有类型别名的#[wasm_bindgen]?
【发布时间】:2021-08-19 03:17:20
【问题描述】:

我想做的事:

#[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 构建的。

有解决办法吗?

【问题讨论】:

    标签: rust rust-wasm


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      相关资源
      最近更新 更多