use std::fmt;
#[derive(Debug, Clone, PartialEq)]
pub enum ZipfError {
InvalidPowerParameter(f64),
InvalidRangeStart(f64),
InvalidRangeEnd { start: f64, end: f64 },
EmptyArray,
}
impl fmt::Display for ZipfError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
ZipfError::InvalidPowerParameter(s) => {
write!(f, "Power parameter s must be > 0, got: {}", s)
}
ZipfError::InvalidRangeStart(start) => {
write!(f, "Range start must be > 0, got: {}", start)
}
ZipfError::InvalidRangeEnd { start, end } => {
write!(f, "Range end must be > start, got: {}..{}", start, end)
}
ZipfError::EmptyArray => {
write!(f, "Array cannot be empty")
}
}
}
}
impl std::error::Error for ZipfError {}