pub struct BandwidthStats {
pub total_inbound_bytes: AtomicU64,
pub total_outbound_bytes: AtomicU64,
pub total_samples: AtomicU64,
}Expand description
Atomic global counters for lock-free stats collection.
Fields§
§total_inbound_bytes: AtomicU64Total inbound bytes recorded across all peers since monitor creation.
total_outbound_bytes: AtomicU64Total outbound bytes recorded across all peers since monitor creation.
total_samples: AtomicU64Total number of individual samples recorded (both directions).
Implementations§
Source§impl BandwidthStats
impl BandwidthStats
Sourcepub fn snapshot(&self) -> BandwidthStatsSnapshot
pub fn snapshot(&self) -> BandwidthStatsSnapshot
Take a consistent snapshot of all counters.
Note: each field is read atomically but the three reads are not collectively atomic; the snapshot may reflect slightly different instants for each counter under heavy concurrent load.
Trait Implementations§
Source§impl Debug for BandwidthStats
impl Debug for BandwidthStats
Source§impl Default for BandwidthStats
impl Default for BandwidthStats
Source§fn default() -> BandwidthStats
fn default() -> BandwidthStats
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for BandwidthStats
impl RefUnwindSafe for BandwidthStats
impl Send for BandwidthStats
impl Sync for BandwidthStats
impl Unpin for BandwidthStats
impl UnsafeUnpin for BandwidthStats
impl UnwindSafe for BandwidthStats
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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>
Converts
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>
Converts
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