#javascript #intern #wasm-bindgen #interning

js-intern-proc-macro

js-intern 库的内部实现细节

2 个版本

0.3.1 2019 年 7 月 5 日
0.3.0 2019 年 7 月 5 日

#29#intern

Download history 90/week @ 2024-03-12 47/week @ 2024-03-19 72/week @ 2024-03-26 74/week @ 2024-04-02 25/week @ 2024-04-09 24/week @ 2024-04-16 64/week @ 2024-04-23 48/week @ 2024-04-30 35/week @ 2024-05-07 45/week @ 2024-05-14 58/week @ 2024-05-21 28/week @ 2024-05-28 30/week @ 2024-06-04 16/week @ 2024-06-11 25/week @ 2024-06-18 17/week @ 2024-06-25

94 每月下载量
5 个 crate 中使用(通过 js-intern

MIT 许可证

10KB
135

一个用于内部化的 JavaScript 基本宏。

存储每个不同 JavaScript 基本类型的唯一副本。例如,js_intern!("string") 评估为 &JsValue,但只使用一个堆分配,并且第一次评估表达式时将 utf-8 Rust 字符串转换为 utf-16 JavaScript 字符串。此外,值在整个程序中进行去重。因此,每次在程序中使用 js_intern!(1.0) 时,都使用相同的 JavaScript 数字实例。

支持的类型

  • &'static str 例如:js_intern!("str")
  • f64f32u8u16u32i8i16i32 例如:js_intern(1.0)
  • bool 例如:js_intern(true)

相关

如果您喜欢这个,您可能还会喜欢 Zac Burns(That3Percent)的这些其他 crate

  • js-object 创建 JavaScript 对象的宏
  • soa-vec 数组结构布局,包含元组API的Vec
  • second-stack Rust内存分配器,用于处理不会逃离栈的大型切片。

依赖项

~2.5MB
~57K SLoC