pub fn evaluate_table(
lib: &JSONEval,
eval_key: &str,
scope_data: &EvalData,
token: Option<&CancellationToken>,
) -> Result<(Arc<Value>, Option<IndexSet<String>>), String>Expand description
Zero-sandbox table evaluation
Eliminates the full EvalData clone (sandbox) by:
- Local row storage: rows are built into a
Vec<Value>directly on the stack. - Self-table scope: the evaluator’s
TableScopeintercepts Var/Ref/ValueAt lookups for the current table’s path, returning rows from local storage. - Direct mutation: forward/backward passes index
local_rowsby integer — noArc::make_mut, no JSON-pointer traversal per cell. - $datas in context: evaluated variable bindings are passed as entries
inside
internal_context(checked first), not written to scope_data.
The caller (evaluate_internal) remains responsible for writing results back
to eval_data / static_arrays / evaluated_schema.