use histogram::Error as HistogramError;
use thiserror::Error;
#[derive(Error, Debug, PartialEq, Eq)]
pub enum Error {
#[error("heatmap contains no samples")]
Empty,
#[error("invalid percentile")]
InvalidPercentile,
#[error("value out of bucket range")]
OutOfRange,
#[error("value out of heatmap span")]
OutOfSpan,
#[error("heatmap clock became stale")]
StaleClock,
#[error("invalid heatmap config")]
InvalidConfig,
}
impl From<HistogramError> for Error {
fn from(other: HistogramError) -> Self {
match other {
HistogramError::Empty => Self::Empty,
HistogramError::InvalidPercentile => Self::InvalidPercentile,
HistogramError::OutOfRange => Self::OutOfRange,
HistogramError::InvalidConfig => Self::InvalidConfig,
HistogramError::IncompatibleHistogram => {
panic!("imposible state")
}
}
}
}