Skip to main content

RollingSum

Struct RollingSum 

Source
pub struct RollingSum<T> { /* private fields */ }

Implementations§

Source§

impl<T> RollingSum<T>

Source

pub fn new(capacity: NonZeroUsize) -> Self

Source

pub fn add(&mut self, val: T) -> bool

Adds T to the rolling sum, displacing the oldest member if the window is full to capacity.

If adding T causes numerical overflow, subsequent calls to total will fail until the sum returns to an un-overflowed state.

Source

pub fn total(&self) -> Option<&T>

Returns the accumulated total of all added values that fit within the rolling window’s capacity.

Returns None if the window has overflowed. In that case, it will return to Some(..) when the last element causing overflow is pushed out.

Trait Implementations§

Source§

impl<T: Debug> Debug for RollingSum<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for RollingSum<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for RollingSum<T>
where T: RefUnwindSafe,

§

impl<T> Send for RollingSum<T>
where T: Send,

§

impl<T> Sync for RollingSum<T>
where T: Sync,

§

impl<T> Unpin for RollingSum<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for RollingSum<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for RollingSum<T>
where T: UnwindSafe,

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.