Struct Buckets

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

Buckets is a fast, space-efficient array of buckets where each bucket can store up to a configured maximum value.

Implementations§

Source§

impl Buckets

Source

pub fn new(count: usize, bucket_size: u8) -> Self

Creates a new Buckets with the provided number of buckets where each bucket is the specified number of bits.

Source

pub fn max_bucket_value(&self) -> u8

Returns the maximum value that can be stored in a bucket.

Source

pub fn count(&self) -> usize

Returns the number of buckets.

Source

pub fn decrease(&mut self, bucket: usize, delta: u8) -> &Self

Decrease the value in the specified bucket by the provided delta. The value is clamped to zero and the maximum bucket value. Returns itself to allow for chaining.

Source

pub fn increment(&mut self, bucket: usize, delta: u8) -> &Self

Increment the value in the specified bucket by the provided delta. The value is clamped to zero and the maximum bucket value. Returns itself to allow for chaining.

Source

pub fn set(&mut self, bucket: usize, value: u8) -> &Self

Set the bucket value. The value is clamped to zero and the maximum bucket value. Returns itself to allow for chaining.

Source

pub fn get(&self, bucket: usize) -> u8

Returns the value in the specified bucket.

Source

pub fn reset(&mut self) -> &Self

Reset restores the Buckets to the original state. Returns itself to allow for chaining.

Auto Trait Implementations§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V