2 个版本

0.1.1 2023年2月21日
0.1.0 2023年2月21日

#94#前端


用于 wasm_extra

MIT/Apache

11KB
138

wasm_extra_macros

Latest Version Downloads Documentation License Dependency Status

wasm_extra 的宏。

目前,库提供以下两项功能

  • 名为 add_event_listener_with_callback! 的宏,该宏以 ::web_sys::EventTarget::add_event_listener_with_callback() 函数命名,并在内部使用 ::wasm_bindgen::closure::Closure::new() 从 Rust 闭包获取 JavaScript 闭包。

  • 名为 add_event_listener_with_fn_once_callback! 的宏,内部使用 ::wasm_bindgen::closure::Closure::once_into_js() 处理 FnOnce 闭包。

该宏的使用更为方便,与之对应的代码更容易理解。

side-by-side comparison of the macro and the function

在展开的代码中,事件目标 (open_files_btn) 只出现在第 16 行,而在宏中,它是第一个参数,然后是事件名称,然后是“闭包序言”,最后是闭包本身。

"闭包序言"是一个术语,指的是在闭包本身执行之前执行的代码。它的作用是为闭包的环境做准备,例如,通过在捕获之前克隆变量。

在上面的代码中它是空的,但在下面的示例中不是。

example of the closure prologue

此外,在上面的代码中,事件目标被闭包捕获。这需要特殊处理,并在事件目标的变量之前使用特殊符号“&”。

SemVer 政策

目前,没有任何 semver 保证。该库正在被动开发中。

许可证

根据您的选择,许可协议为Apache 许可证,版本 2.0MIT 许可证
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在此crate中的任何贡献,将按上述方式双许可,不附加任何其他条款或条件。

依赖项

~1.5MB
~35K SLoC