#[non_exhaustive]pub struct SignallingCounts {
pub transport: Counters,
pub dispatch: Option<DispatchCounts>,
}Expand description
Every loss in the signalling path, from both crates that own one (§12.3).
Built by SignallingCounts::of for an endpoint alone, or SignallingCounts::with_dispatcher
when a dispatcher is running on it. Both are plain snapshots taken at the moment they are asked
for: no metrics library, no background aggregation, and nothing here reads a clock.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.transport: CountersWhat the transport counted, embedded unaltered.
dispatch: Option<DispatchCounts>What the dispatcher counted, or None when no dispatcher is running on this endpoint.
Implementations§
Source§impl SignallingCounts
impl SignallingCounts
Sourcepub fn of(endpoint: &Handle) -> Self
pub fn of(endpoint: &Handle) -> Self
The losses an endpoint alone can report.
SignallingCounts::dispatch is None: no dispatcher has been named, so nothing is claimed
about the dialog layer rather than zero being claimed about it.
Sourcepub fn with_dispatcher(endpoint: &Handle, calls: &Calls) -> Self
pub fn with_dispatcher(endpoint: &Handle, calls: &Calls) -> Self
The losses an endpoint and the dispatcher running on it report together.
The two halves are read one after the other and not under a shared lock, so a message being dispatched as this is called can be counted by one half and not yet the other. That is the same skew §12.2 already states for the transport’s own counters, and it is the honest trade: a lock spanning both would put the dialog layer’s mutex in the socket’s path.
Trait Implementations§
Source§impl Clone for SignallingCounts
impl Clone for SignallingCounts
Source§fn clone(&self) -> SignallingCounts
fn clone(&self) -> SignallingCounts
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 SignallingCounts
impl Debug for SignallingCounts
Source§impl PartialEq for SignallingCounts
impl PartialEq for SignallingCounts
Source§fn eq(&self, other: &SignallingCounts) -> bool
fn eq(&self, other: &SignallingCounts) -> bool
self and other values to be equal, and is used by ==.impl Copy for SignallingCounts
impl Eq for SignallingCounts
impl StructuralPartialEq for SignallingCounts
Auto Trait Implementations§
impl Freeze for SignallingCounts
impl RefUnwindSafe for SignallingCounts
impl Send for SignallingCounts
impl Sync for SignallingCounts
impl Unpin for SignallingCounts
impl UnsafeUnpin for SignallingCounts
impl UnwindSafe for SignallingCounts
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§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