Skip to main content

BucketSet

Struct BucketSet 

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

A collection for buckets in an exponential histogram.

The set stores sparse, sorted buckets as a tuple of their midpoint (Point), and count of occurrences.

Implementations§

Source§

impl BucketSet

Source

pub fn new() -> Self

Create a new empty BucketSet.

This method does not allocate.

Source

pub fn try_from_str(s: &str) -> Result<Self, ParseBucketSetError>

Parse a BucketSet from its raw textual representation.

Source

pub fn observe(&mut self, value: Point)

Observe a Point computed from a raw value.

The count for this point will be incremented by 1.

All points should be computed from the same scale.

§Panics

This method will panic if adding count to an existing entry in value would overflow.

Source

pub fn observe_all(&mut self, value: Point, count: u64)

Observe count instances of a Point computed from a raw value.

The count for this point will be incremented by count.

All points should be computed from the same scale.

§Panics

This method will panic if adding count to an existing entry in value would overflow.

Source

pub fn remap(&mut self, map: impl FnMut(Point) -> Point)

Remap and merge buckets.

This method can be used to rescale the buckets to a coarser granularity in combination with the crate::metric::exp::midpoint function. It accepts a closure that maps stored bucket Points to new values. When multiple buckets map to the same new value, their counts will be summed.

§Panics

This method will panic if adding count to an existing entry in value would overflow. This can happen when merging buckets with large counts.

Source

pub fn len(&self) -> usize

Get the number of buckets currently in the set.

This is not the total count of observed values in all buckets, just the count of buckets themselves. See BucketSet::total for the total count.

Source

pub fn total(&self) -> u64

Get the total count of observed values.

Source

pub fn clear(&mut self)

Clear all buckets, allowing the allocation to be re-used.

Source

pub fn get(&self, value: Point) -> Option<u64>

Get the count for a particular bucket.

Source

pub fn first(&self) -> Option<(Point, u64)>

Get the first (lowest numbered) bucket.

Source

pub fn last(&self) -> Option<(Point, u64)>

Get the last (highest numbered) bucket.

Source

pub fn iter(&self) -> Iter<'_>

Iterate over buckets in order.

Trait Implementations§

Source§

impl Clone for BucketSet

Source§

fn clone(&self) -> BucketSet

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BucketSet

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for BucketSet

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for BucketSet

Source§

impl<'a> Extend<(Point, u64)> for BucketSet

Source§

fn extend<I: IntoIterator<Item = (Point, u64)>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl<'a> FromIterator<(Point, u64)> for BucketSet

Source§

fn from_iter<I: IntoIterator<Item = (Point, u64)>>(iter: I) -> Self

Creates a value from an iterator. Read more
Source§

impl FromStr for BucketSet

Source§

type Err = ParseBucketSetError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl<'a> FromValue<'a> for BucketSet

Source§

fn from_value(v: Value<'a>) -> Option<Self>

Perform the conversion.
Source§

impl<'a> IntoIterator for &'a BucketSet

Source§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
Source§

type Item = (Point, u64)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl PartialEq for BucketSet

Source§

fn eq(&self, other: &BucketSet) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for BucketSet

Available on crate feature serde only.
Source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for BucketSet

Source§

impl ToValue for BucketSet

Source§

fn to_value(&self) -> Value<'_>

Perform the conversion.
Source§

impl Value for BucketSet

Available on crate feature sval only.
Source§

fn stream<'sval, S: Stream<'sval> + ?Sized>( &'sval self, stream: &mut S, ) -> Result

Stream this value through a Stream.
Source§

fn tag(&self) -> Option<Tag>

Get the tag of this value, if there is one.
Source§

fn to_bool(&self) -> Option<bool>

Try convert this value into a boolean.
Source§

fn to_f32(&self) -> Option<f32>

Try convert this value into a 32bit binary floating point number.
Source§

fn to_f64(&self) -> Option<f64>

Try convert this value into a 64bit binary floating point number.
Source§

fn to_i8(&self) -> Option<i8>

Try convert this value into a signed 8bit integer.
Source§

fn to_i16(&self) -> Option<i16>

Try convert this value into a signed 16bit integer.
Source§

fn to_i32(&self) -> Option<i32>

Try convert this value into a signed 32bit integer.
Source§

fn to_i64(&self) -> Option<i64>

Try convert this value into a signed 64bit integer.
Source§

fn to_i128(&self) -> Option<i128>

Try convert this value into a signed 128bit integer.
Source§

fn to_u8(&self) -> Option<u8>

Try convert this value into an unsigned 8bit integer.
Source§

fn to_u16(&self) -> Option<u16>

Try convert this value into an unsigned 16bit integer.
Source§

fn to_u32(&self) -> Option<u32>

Try convert this value into an unsigned 32bit integer.
Source§

fn to_u64(&self) -> Option<u64>

Try convert this value into an unsigned 64bit integer.
Source§

fn to_u128(&self) -> Option<u128>

Try convert this value into an unsigned 128bit integer.
Source§

fn to_text(&self) -> Option<&str>

Try convert this value into a text string.
Source§

fn to_binary(&self) -> Option<&[u8]>

Try convert this value into a bitstring.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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<T> Value for T
where T: Value,