pub struct CallContext {
pub parent_exec_id: ExecId,
pub target: FunctionKey,
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: FunctionKeyThe 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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CallContext
impl RefUnwindSafe for CallContext
impl Send for CallContext
impl Sync for CallContext
impl Unpin for CallContext
impl UnsafeUnpin for CallContext
impl UnwindSafe for CallContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedComponent for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request