pub struct CallContext {
pub parent_exec_id: ExecId,
pub target: (String, String, String),
pub input_aliases: HashMap<String, NodeSiteId>,
pub output_forwarding: HashMap<NodeSiteId, NodeSiteId>,
pub outputs_remaining: usize,
}Expand description
Per-call invocation context, keyed by the body’s fresh
ExecId in Engine.pending_calls.
Fields§
§parent_exec_id: ExecIdThe caller’s ExecId - where input slots live and where
output forwarding writes back.
target: (String, String, String)The called function’s symbol-table key. Stamped onto the
engine.function_call tracing span so traces attribute body
activity to the calling function.
input_aliases: HashMap<String, NodeSiteId>Formal parameter name → caller-side NodeSiteId. Body
nodes that consume a formal input look up the alias here
and read from slot_table[(alias_site, parent_exec_id)].
No value copy - body reads from caller’s slot directly.
output_forwarding: HashMap<NodeSiteId, NodeSiteId>Body-side NodeSiteId → caller-side NodeSiteId. When
write_outputs writes to a body output site, the value is
also moved to the matching caller site at
parent_exec_id, and push_ready_consumers is re-run for
the caller’s downstream.
outputs_remaining: usizeDecremented each time an output is forwarded; the entry
is dropped from pending_calls when this reaches zero.