pub enum WireReceiveErrorKind {
UnknownTypeHash,
TypeMismatch {
expected_hash: u64,
},
DecodeFailed {
error_summary: String,
},
AllocationFailed {
byte_count: usize,
reason: AllocFailReason,
},
BudgetExceeded {
byte_count: usize,
budget_remaining: usize,
},
BackendMaterializeFailed {
backend_ref: ComponentRef,
backend_error_summary: String,
},
}Expand description
Sub-kind discriminator for InfraEvent::WireReceiveError.
One top-level variant + an enum sub-kind keeps the bus-topic
count down and lets subscribers route on the variant while
matching the sub-kind out of the variant fields - the
PeerSuspect/PeerDown/PeerLive triple pattern is for
distinct lifecycle events; these three share lifecycle (one
fill, one decode step) and audience (wire-payload integrity).
Variants§
UnknownTypeHash
No decoder is registered for actual_hash. The sender
shipped a value whose concrete type is unknown to this
Node’s inventory - either a version skew (sender has a
carrier the receiver hasn’t compiled in) or a malicious /
fuzzed envelope.
TypeMismatch
Destination slot carries a compile-time wire-type
assertion (expected_hash) and the fill’s actual_hash
does not match.
DecodeFailed
Decoder ran and returned Err - the bytes were not a
valid encoding of the advertised type.
Fields
AllocationFailed
The framework-owned scratch buffer could not be reserved
before decode - heap allocation failed or a per-item cap
rejected the request. Emitted by the
Engine::decode_typed_fill boundary on Vec::try_reserve_exact
failure or before the prost decode runs when the fill’s
payload length exceeds EnvelopeCaps::max_per_fill_bytes.
Fields
reason: AllocFailReasonWhy the reservation failed.
BudgetExceeded
Admitting this fill’s payload would push the engine over
NodeConfig::ingress_byte_budget. The fill is dropped; the
envelope’s other fills continue to deliver.
Fields
BackendMaterializeFailed
The destination slot is bound to a Backend role and the
backend’s materialize_from_wire impl returned Err. The
engine drops the fill, releases the byte charge, and emits
this event so operators can see which backend rejected
inbound payloads. Distinct from
WireReceiveErrorKind::DecodeFailed (framework-side
registry decoder failure).
Fields
backend_ref: ComponentRefComponentRef of the destination slot’s bound backend.
Trait Implementations§
Source§impl Clone for WireReceiveErrorKind
impl Clone for WireReceiveErrorKind
Source§fn clone(&self) -> WireReceiveErrorKind
fn clone(&self) -> WireReceiveErrorKind
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 WireReceiveErrorKind
impl Debug for WireReceiveErrorKind
impl Eq for WireReceiveErrorKind
Source§impl PartialEq for WireReceiveErrorKind
impl PartialEq for WireReceiveErrorKind
Source§fn eq(&self, other: &WireReceiveErrorKind) -> bool
fn eq(&self, other: &WireReceiveErrorKind) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for WireReceiveErrorKind
Auto Trait Implementations§
impl Freeze for WireReceiveErrorKind
impl RefUnwindSafe for WireReceiveErrorKind
impl Send for WireReceiveErrorKind
impl Sync for WireReceiveErrorKind
impl Unpin for WireReceiveErrorKind
impl UnsafeUnpin for WireReceiveErrorKind
impl UnwindSafe for WireReceiveErrorKind
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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