pub struct DecayingCounter { /* private fields */ }Expand description
A single exponentially-weighted decaying accumulator. See the module docs for
the r · τ steady-state interpretation.
Implementations§
Source§impl DecayingCounter
impl DecayingCounter
Sourcepub fn new(time_constant: DurationMillis) -> Self
pub fn new(time_constant: DurationMillis) -> Self
Create an empty counter with the given decay time constant τ.
Sourcepub fn record(&mut self, now: TimeMillis, count: u64)
pub fn record(&mut self, now: TimeMillis, count: u64)
Decay the stored value forward to now, then add count events.
Sourcepub fn estimate(&self, now: TimeMillis) -> f64
pub fn estimate(&self, now: TimeMillis) -> f64
The decayed accumulator at now — an estimate of the number of events in
roughly the last τ. Does not mutate, so repeated calls at the same now
are stable.
Trait Implementations§
Source§impl Clone for DecayingCounter
impl Clone for DecayingCounter
Source§fn clone(&self) -> DecayingCounter
fn clone(&self) -> DecayingCounter
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for DecayingCounter
impl RefUnwindSafe for DecayingCounter
impl Send for DecayingCounter
impl Sync for DecayingCounter
impl Unpin for DecayingCounter
impl UnsafeUnpin for DecayingCounter
impl UnwindSafe for DecayingCounter
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
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