Skip to main content

Module classes

Module classes 

Source
Expand description

ClassDecl / ClassLike InterfaceDecl → wasm_bindgen extern "C" block generation.

Generates the standard pattern seen in worker-sys:

#[wasm_bindgen]
extern "C" {
    #[wasm_bindgen(extends = js_sys::Object, js_name = "MyClass")]
    #[derive(Debug, Clone, PartialEq, Eq)]
    pub type MyClass;

    #[wasm_bindgen(constructor, catch)]
    pub fn new(arg: &str) -> Result<MyClass, JsValue>;

    #[wasm_bindgen(method, getter)]
    pub fn name(this: &MyClass) -> String;

    #[wasm_bindgen(method, js_name = "doThing")]
    pub fn do_thing(this: &MyClass, x: f64);
}

Functions§

generate_class
Generate a complete extern "C" block for a class-like declaration.
generate_class_like_interface
Generate a complete extern "C" block for a class-like interface.
generate_class_with_js_namespace
Generate a complete extern "C" block for a class inside a namespace, with js_namespace.
generate_dictionary_extern
Generate a simple extern “C” block for a dictionary interface. Temporary until M5 implements proper dictionary builders.