Skip to main content

eval_to_string_keyed

Function eval_to_string_keyed 

Source
pub fn eval_to_string_keyed(val: &Value) -> StringKeyedValue
Expand description

Convert a tree-walker Value to a StringKeyedValue (no interner needed).

Used by the flake resolver bridge to convert tree-walker results into a format the bytecode VM can consume.

Lazy thunk handling: Tree-walker thunks are NOT eagerly forced. Instead, they are wrapped in StringKeyedValue::Thunk with a callback that forces the underlying tree-walker thunk on demand. This is critical for getFlake performance: a typical flake has 100+ transitive input thunks, and forcing them all would trigger git clones, recursive flake resolution, and full evaluation of every dependency (10s+). By wrapping lazily, only the inputs actually accessed by the expression are evaluated.