pub struct TransientSnapshot {
pub frontier: Vec<(u64, u64)>,
pub slot_table: HashMap<(u64, u64), Option<Vec<u8>>>,
pub pending_async: HashMap<u64, PendingAsyncSnapshot>,
pub execution_state: HashMap<u64, ExecutionStateSnapshot>,
pub framework: FrameworkSnapshot,
pub bus: TypedBusSnapshot,
pub ingress: Vec<IngressEventSnapshot>,
pub wire_states: HashMap<u32, Vec<u8>>,
pub pending_completions: Vec<PendingCompletionSnapshot>,
}Expand description
Runtime ephemeral state per ENGINE.md §15.1.
Fields§
§frontier: Vec<(u64, u64)>In-cycle DAG-walking queue.
slot_table: HashMap<(u64, u64), Option<Vec<u8>>>(NodeSiteId, ExecId) → Option<serialized slot bytes>.
None means “slot allocated but empty”.
pending_async: HashMap<u64, PendingAsyncSnapshot>Suspended Ops awaiting CommandId completion.
execution_state: HashMap<u64, ExecutionStateSnapshot>Per-execution liveness state.
framework: FrameworkSnapshotFramework-primitive state (counters, backoff_table, inbound_dedup, etc.) snapshotted at quiesce. Per ENGINE.md §15.1 line 1402.
bus: TypedBusSnapshotTyped-bus state - subscription table + any queued events that survive the cycle boundary. Per ENGINE.md §15.1 line 1403.
ingress: Vec<IngressEventSnapshot>In-flight ingress events.
wire_states: HashMap<u32, Vec<u8>>Per-component wire-state. Currently empty; macro populates as components grow per-wire state.
pending_completions: Vec<PendingCompletionSnapshot>Mid-cycle pending completions surfaced by ProtocolRuntime
hooks via ctx.complete_command(...). Phase 5 drains these
post-dispatch per ENGINE.md §15.1 line 1406.
Trait Implementations§
Source§impl Clone for TransientSnapshot
impl Clone for TransientSnapshot
Source§fn clone(&self) -> TransientSnapshot
fn clone(&self) -> TransientSnapshot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TransientSnapshot
impl Debug for TransientSnapshot
Source§impl Default for TransientSnapshot
impl Default for TransientSnapshot
Source§fn default() -> TransientSnapshot
fn default() -> TransientSnapshot
Source§impl<'de> Deserialize<'de> for TransientSnapshot
impl<'de> Deserialize<'de> for TransientSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TransientSnapshot
impl RefUnwindSafe for TransientSnapshot
impl Send for TransientSnapshot
impl Sync for TransientSnapshot
impl Unpin for TransientSnapshot
impl UnsafeUnpin for TransientSnapshot
impl UnwindSafe for TransientSnapshot
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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::RequestSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> SlotValue for T
impl<T> SlotValue for T
Source§fn into_any_boxed(self: Box<T>) -> Box<dyn Any + Sync + Send>
fn into_any_boxed(self: Box<T>) -> Box<dyn Any + Sync + Send>
Box<dyn SlotValue> as Box<dyn Any> for
Box::downcast. Required because the SlotValue and
Any vtables are distinct even though SlotValue: Any.Source§fn clone_boxed(&self) -> Box<dyn SlotValue>
fn clone_boxed(&self) -> Box<dyn SlotValue>
Source§fn to_wire_bytes(&self) -> Result<Vec<u8>, SlotValueError>
fn to_wire_bytes(&self) -> Result<Vec<u8>, SlotValueError>
clone_boxed instead.Source§fn type_hash(&self) -> u64
fn type_hash(&self) -> u64
std::any::type_name::<T>(); receiver decodes only on a
matching hash.Source§fn runtime_type(&self) -> &'static TypeNode
fn runtime_type(&self) -> &'static TypeNode
Source§fn charged_bytes(&self) -> usize
fn charged_bytes(&self) -> usize
NodeConfig::ingress_byte_budget. Slot-table eviction calls
this to release the charge. Default 0 — only
ingress-derived carriers register a non-zero resolver via
[register_charged_bytes!].