#[derive(Clone,Debug,PartialEq,Eq,PartialOrd,Ord)]
#[non_exhaustive]
pub enum Denied<T = std::time::SystemTime> {
EmptyRequest,
TooEarly(crate::TooEarly<T>),
TooBig,
}
impl<T: std::fmt::Debug> std::fmt::Display for Denied<T> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Denied::EmptyRequest => f.write_str("Request maximum is less than minimum."),
Denied::TooEarly(err) => err.fmt(f),
Denied::TooBig => f.write_str("Request cost is larger than bucket size."),
}
}
}
impl<T: std::fmt::Debug> std::error::Error for Denied<T> {}
impl<T> From<crate::TooEarly<T>> for Denied<T> {
fn from(e: crate::TooEarly<T>) -> Self {
Denied::TooEarly(e)
}
}