Interns the atoms generated sparse decoders put in every map: the module name, the
__kiwi_module__ key, and each field name.
Creating an atom from its name takes the VM's atom table lock and hashes the text, which
dominated decoding large files. kiwi_atom(env, name) does it once per name and scheduler
thread.
Summary
Functions
The RustQ AST of each defrust definition.
Callable metadata for the module's definitions.
The Rust items the module generates, in order.
The module's defrustmacro definitions.
The macro_rules! items defrustmacro emits.
The Rust source the module generates.
The RustQ AST of each declared Rust type.
The Rust items the module's types generate.
The Rust types the module's @types declare.
Returns the Rust items defining kiwi_atom.
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.
Functions
The RustQ AST of each defrust definition.
Callable metadata for the module's definitions.
The Rust items the module generates, in order.
The module's defrustmacro definitions.
The macro_rules! items defrustmacro emits.
The Rust source the module generates.
The RustQ AST of each declared Rust type.
The Rust items the module's types generate.
The Rust types the module's @types declare.
@spec fragments() :: [RustQ.Rust.Fragment.t()]
Returns the Rust items defining kiwi_atom.
@spec kiwi_atom( RustQ.Type.path(:Env, RustQ.Type.lifetime(:_)), RustQ.Type.raw(:"&'static str") ) :: RustQ.Type.path(:Atom)
A Rust function defrust generates. It runs only as Rust; calling it from Elixir
raises.