KiwiCodec.RustlerGenerator.AtomCache (kiwi_codec v0.5.1)

Copy Markdown View Source

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

Whether the module's Rust file appeared or went since the module compiled.

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.

Functions

__mix_recompile__?()

Whether the module's Rust file appeared or went since the module compiled.

__rustq_asts__()

The RustQ AST of each defrust definition.

__rustq_callables__()

Callable metadata for the module's definitions.

__rustq_items__()

The Rust items the module generates, in order.

__rustq_macro_definitions__()

The module's defrustmacro definitions.

__rustq_macro_items__()

The macro_rules! items defrustmacro emits.

__rustq_source__()

The Rust source the module generates.

__rustq_type_asts__()

The RustQ AST of each declared Rust type.

__rustq_type_items__()

The Rust items the module's types generate.

__rustq_types__()

The Rust types the module's @types declare.

fragments()

@spec fragments() :: [RustQ.Rust.Fragment.t()]

Returns the Rust items defining kiwi_atom.