pub struct RpcStreamingContext {
pub caller_origin: u64,
pub call_id: u64,
pub deadline_ns: u64,
pub headers: Vec<RpcHeader>,
pub cancellation: RpcCancellationToken,
pub trace_context: Option<TraceContext>,
}Expand description
Context handed to an RpcClientStreamingHandler::call. Same
shape as RpcContext minus the eager payload (the request
stream delivers chunk bodies on the fly) and plus the
per-call deadline_ns (which would otherwise have ridden on
the eager payload).
Bidi streaming plan (Phase B).
Fields§
§caller_origin: u64AEAD-verified caller origin_hash. Same source as
RpcContext::caller_origin.
call_id: u64Caller-generated correlation id. Matches the initial
REQUEST’s call_id and every subsequent REQUEST_CHUNK /
CANCEL / REQUEST_GRANT for this call.
deadline_ns: u64Absolute deadline (unix nanos) from the initial REQUEST.
0 means no deadline; the fold does NOT auto-cancel on
deadline (handlers self-supervise via tokio timers, same
contract as the unary fold).
headers: Vec<RpcHeader>Per-chunk metadata headers from the initial REQUEST. Per-REQUEST_CHUNK headers are NOT surfaced at the substrate layer — the typed SDK veneer (Phase E) is where header inspection across chunks lives (if it lands at all; the plan defers per-chunk-headers as opt-in raw-path access).
cancellation: RpcCancellationTokenCancellation signal. Flipped by the fold when a
DISPATCH_RPC_CANCEL arrives for this call’s call_id.
Long-running handlers should select! on
cancellation.cancelled(); the request stream also
terminates on cancellation, but the token is the
authoritative signal (the stream’s terminator is shared
with REQUEST_END).
trace_context: Option<TraceContext>W3C Trace Context propagated from the caller’s initial
REQUEST. Same semantics as RpcContext::trace_context.