use std::fmt;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Error {
Closed,
Saturated,
InvalidConfig(&'static str),
TimedOut,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Closed => f.write_str("timerwheel is closed"),
Self::Saturated => f.write_str("timerwheel capacity is saturated"),
Self::InvalidConfig(message) => write!(f, "invalid configuration: {message}"),
Self::TimedOut => f.write_str("operation timed out"),
}
}
}
impl std::error::Error for Error {}