Skip to main content

Rate

Struct Rate 

Source
pub struct Rate { /* private fields */ }
Expand description

A stable rate estimator that reports the rate of events per period of interval time.

It counts events for periods of interval and returns the average rate of the latest completed period while counting events for the current (partial) period.

Implementations§

Source§

impl Rate

Source

pub fn new(interval: Duration) -> Self

Create a new Rate with the given interval.

Source

pub fn new_with_estimator_config( interval: Duration, hashes: usize, slots: usize, ) -> Self

Create a new Rate with the given interval and Estimator config with the given amount of hashes and columns (slots).

Source

pub fn rate<T: Hash>(&self, key: &T) -> f64

Return the per second rate estimation.

This is the average rate of the latest completed period of length interval.

Source

pub fn observe<T: Hash>(&self, key: &T, events: isize) -> isize

Report new events and return number of events seen so far in the current interval.

Source

pub fn rate_with<F, T, K>(&self, key: &K, rate_calc_fn: F) -> T
where F: FnMut(RateComponents) -> T, K: Hash,

Get the current rate as calculated with the given closure. This closure will take an argument containing all the accessible information about the rate from this object and allow the caller to make their own estimation of rate based on:

  1. The accumulated samples in the current interval (in progress)
  2. The accumulated samples in the previous interval (completed)
  3. The size of the interval
  4. Elapsed fraction of current interval for this sample (0..1)

Auto Trait Implementations§

§

impl !Freeze for Rate

§

impl RefUnwindSafe for Rate

§

impl Send for Rate

§

impl Sync for Rate

§

impl Unpin for Rate

§

impl UnwindSafe for Rate

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.