Enum hdrhistogram::errors::CreationError
source · pub enum CreationError {
LowIsZero,
LowExceedsMax,
HighLessThanTwiceLow,
SigFigExceedsMax,
CannotRepresentSigFigBeyondLow,
UsizeTypeTooSmall,
}
Expand description
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.
Trait Implementations§
source§impl Clone for CreationError
impl Clone for CreationError
source§fn clone(&self) -> CreationError
fn clone(&self) -> CreationError
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for CreationError
impl Debug for CreationError
source§impl Display for CreationError
impl Display for CreationError
source§impl Error for CreationError
impl Error for CreationError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl PartialEq for CreationError
impl PartialEq for CreationError
impl Copy for CreationError
impl Eq for CreationError
impl StructuralPartialEq for CreationError
Auto Trait Implementations§
impl Freeze for CreationError
impl RefUnwindSafe for CreationError
impl Send for CreationError
impl Sync for CreationError
impl Unpin for CreationError
impl UnwindSafe for CreationError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)