Enum CreationError

enum CreationError

Errors that can occur when creating a histogram.

Variants

LowIsZero

Lowest discernible value must be >= 1.

LowExceedsMax

Lowest discernible value must be <= u64::max_value() / 2 because the highest value is a u64 and the lowest value must be no bigger than half the highest.

HighLessThanTwiceLow

Highest trackable value must be >= 2 * lowest discernible value for some internal calculations to work out. In practice, high is typically much higher than 2 * low.

SigFigExceedsMax

Number of significant digits must be in the range [0, 5]. It is capped at 5 because 5 significant digits is already more than almost anyone needs, and memory usage scales exponentially as this increases.

CannotRepresentSigFigBeyondLow

Cannot represent sigfig worth of values beyond the lowest discernible value. Decrease the significant figures, lowest discernible value, or both.

This could happen if low is very large (like 2^60) and sigfigs is 5, which requires 18 additional bits, which would then require more bits than will fit in a u64. Specifically, the exponent of the largest power of two that is smaller than the lowest value and the bits needed to represent the requested significant figures must sum to 63 or less.

UsizeTypeTooSmall

The usize type is too small to represent the desired configuration. Use fewer significant figures or a lower max.

Implementations

impl Clone for CreationError

fn clone(self: &Self) -> CreationError

impl Copy for CreationError

impl Debug for CreationError

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

impl Display for CreationError

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

impl Eq for CreationError

impl Error for CreationError

impl Freeze for CreationError

impl PartialEq for CreationError

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

impl RefUnwindSafe for CreationError

impl Send for CreationError

impl StructuralPartialEq for CreationError

impl Sync for CreationError

impl Unpin for CreationError

impl UnsafeUnpin for CreationError

impl UnwindSafe for CreationError

impl<T> Any for CreationError

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for CreationError

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for CreationError

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

impl<T> CloneToUninit for CreationError

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

impl<T> From for CreationError

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for CreationError

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T> ToString for CreationError

fn to_string(self: &Self) -> String

impl<T, U> Into for CreationError

fn into(self: Self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom for CreationError

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

impl<T, U> TryInto for CreationError

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