pub struct OrderingSessionSnapshot {
pub session_id: Uuid,
pub sender: Option<ActorAddr>,
pub last_released_seq: u64,
pub expected_next_seq: u64,
pub buffered_count: usize,
pub oldest_buffered_seq: Option<u64>,
pub newest_buffered_seq: Option<u64>,
}Expand description
Per-session receiver-local ordering snapshot. This does not lock the work queue or hold sequencing state across awaits.
Fields§
§session_id: UuidIdentifier of the session whose ordering state this snapshot
describes; matches SeqInfo::Session { session_id, .. } on the
wire.
sender: Option<ActorAddr>Sender ActorAddr captured by the first-non-None-wins
rule. None when every message in this session bypassed the
normal stamping sites (rare: test fixtures, non-handler routes).
last_released_seq: u64Highest seq released from the reorder buffer into the actor work queue. NOT “handler processed” – that’s downstream of the queue.
expected_next_seq: u64last_released_seq + 1 – the seq the next contiguous send must
carry for delivery without further buffering.
buffered_count: usizeNumber of messages currently sitting in the reorder buffer waiting for a seq gap to be filled. Zero on healthy in-order sessions.
oldest_buffered_seq: Option<u64>Lowest seq currently buffered. None when buffered_count == 0.
newest_buffered_seq: Option<u64>Highest seq currently buffered. None when buffered_count == 0.
Trait Implementations§
Source§impl AttrValue for OrderingSessionSnapshot
impl AttrValue for OrderingSessionSnapshot
Source§impl Clone for OrderingSessionSnapshot
impl Clone for OrderingSessionSnapshot
Source§fn clone(&self) -> OrderingSessionSnapshot
fn clone(&self) -> OrderingSessionSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OrderingSessionSnapshot
impl Debug for OrderingSessionSnapshot
Source§impl<'de> Deserialize<'de> for OrderingSessionSnapshot
impl<'de> Deserialize<'de> for OrderingSessionSnapshot
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>,
Source§impl Display for OrderingSessionSnapshot
impl Display for OrderingSessionSnapshot
Source§impl FromStr for OrderingSessionSnapshot
impl FromStr for OrderingSessionSnapshot
Source§impl Named for OrderingSessionSnapshot
impl Named for OrderingSessionSnapshot
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl PartialEq for OrderingSessionSnapshot
impl PartialEq for OrderingSessionSnapshot
Source§impl Serialize for OrderingSessionSnapshot
impl Serialize for OrderingSessionSnapshot
impl StructuralPartialEq for OrderingSessionSnapshot
Auto Trait Implementations§
impl Freeze for OrderingSessionSnapshot
impl RefUnwindSafe for OrderingSessionSnapshot
impl Send for OrderingSessionSnapshot
impl Sync for OrderingSessionSnapshot
impl Unpin for OrderingSessionSnapshot
impl UnsafeUnpin for OrderingSessionSnapshot
impl UnwindSafe for OrderingSessionSnapshot
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,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].