no_deref

no_deref 属性可用于表示不应为导入的类型生成 Deref 实现。如果不存在此属性,则将生成一个 Deref 实现,其 Target 为类型的第一个 extends 属性,如果不存在 extends 属性,则为 Target = JsValue

#![allow(unused)]
fn main() {
#[wasm_bindgen]
extern "C" {
    type Foo;

    #[wasm_bindgen(method)]
    fn baz(this: &Foo)

    #[wasm_bindgen(extends = Foo, no_deref)]
    type Bar;
}

fn do_stuff(bar: &Bar) {
    bar.baz() // Does not compile
}

}