4 releases (2 breaking)
0.3.1 | Jul 5, 2019 |
---|---|
0.2.1 | Jun 24, 2019 |
0.2.0 | Jun 24, 2019 |
0.1.0 | Jun 22, 2019 |
#272 in Caching
100 downloads per month
Used in 4 crates
13KB
146 lines
A macro for interning JavaScript primitives.
Stores one copy of each distinct JavaScript primitive.
For example, js_intern!("string")
evaluates to a &JsValue
but uses only one heap allocation
and a one-time translation from the utf-8 Rust string to the utf-16 JavaScript string the first time the expression is evaluated.
Furthermore, values are de-duplicated across the program.
So, any time js_intern!(1.0)
is used in the program, the same instance of the JavaScript number is used.
Supported types
&'static str
Eg:js_intern!("str")
f64
,f32
u8
,u16
,u32
,i8
,i16
,i32
Eg:js_intern(1.0)
bool
Eg:js_intern(true)
Related
If you like this, you may like these other crates by Zac Burns (That3Percent)
- js-object A macro for creating JavaScript objects
- soa-vec A struct of arrays layout with a Vec of tuple API
- second-stack A Rust memory allocator for large slices that don't escape the stack.
Dependencies
~0.8–1.5MB
~30K SLoC