pub enum Reliability {
FireAndForget,
Reliable,
}Expand description
Reliability mode chosen per stream.
Variants§
FireAndForget
Send packets and forget. No retransmission, no ordering recovery, no ACK/NACK tracking. Monotonic sequence numbers on the wire so callers that care can detect gaps / reorder themselves.
Reliable
Retransmit lost packets (receiver NACKs + a sender timeout backstop; the retransmit window is sized to the tx-window so nothing in flight is unrecoverable). Guarantees gap-free eventual delivery of every byte.
Ordering contract (H-8): the substrate does NOT reorder for
you. Accepted packets — including out-of-order arrivals and
retransmits — are delivered to the inbound queue in arrival
order, each tagged with its monotonic seq. A consumer that
needs strict in-order bytes must reassemble by seq itself (the
blob-transfer engine’s per-stream reorder buffer is the reference
example). Consumers that frame their own ordering (nRPC streaming
keys on EventMeta/call_id) or tolerate reordering need do
nothing. Reliable here means “no loss”, not “delivered in order”.
Trait Implementations§
Source§impl Clone for Reliability
impl Clone for Reliability
Source§fn clone(&self) -> Reliability
fn clone(&self) -> Reliability
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Reliability
Source§impl Debug for Reliability
impl Debug for Reliability
impl Eq for Reliability
Source§impl PartialEq for Reliability
impl PartialEq for Reliability
Source§fn eq(&self, other: &Reliability) -> bool
fn eq(&self, other: &Reliability) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for Reliability
Auto Trait Implementations§
impl Freeze for Reliability
impl RefUnwindSafe for Reliability
impl Send for Reliability
impl Sync for Reliability
impl Unpin for Reliability
impl UnsafeUnpin for Reliability
impl UnwindSafe for Reliability
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
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.