Skip to main content

Module value

Module value 

Source

Structs§

ClosureData
Inline payload for Value::Closure, boxed out of the enum so the Value discriminant width is governed by the cheap variants. The closure body (Node) plus captured scope dwarf the other variants by tens of bytes — keeping them inline widens every Value on the stack, every HashMap bucket holding Value, and every list slot.
EnumSchemaData
Inline payload for Value::EnumSchema, refcounted for the same reason: the nested HashMap<String, HashMap<String, SchemaField>> is the largest variant we hold today, and Arc indirection collapses it to a single pointer in the enum layout while keeping clones O(1).
SchemaData
Inline payload for Value::Schema, refcounted out of the enum for the same width rationale as ClosureData: the inner HashMap<String, SchemaField> keeps a raw-table header that pushes the enum width into the >100-byte range when stored inline. The payload rides an Arc (P2-5) so cloning a Value::Schema — which check_type does on every typed-field access — only bumps a refcount instead of deep-cloning the field map.
SchemaField
ValueDict

Enums§

Value
Aggregate value type produced by the evaluator.