static_method_of = Blah
The static_method_of
attribute allows one to specify that an imported function
is a static method of the given imported JavaScript class. For example, to bind
to JavaScript's Date.now()
static method, one would use this attribute:
# #![allow(unused_variables)] #fn main() { #[wasm_bindgen] extern "C" { type Date; #[wasm_bindgen(static_method_of = Date)] pub fn now() -> f64; } #}
The now
function becomes a static method of the imported type in the Rust
bindings as well:
# #![allow(unused_variables)] #fn main() { let instant = Date::now(); #}
This is similar to the js_namespace
attribute, but the usage from within Rust
is different since the method also becomes a static method of the imported type.
Additionally this attribute also specifies that the this
parameter when
invoking the method is expected to be the JS class, e.g. always invoked as
Date.now()
instead of const x = Date.now; x()
.