use std::{
error::Error,
fmt::{self, Display, Formatter},
};
#[derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub enum CssNumberConversionError {
InfinityIsNotAllowed,
NotANumberIsNotAllowed,
NegativeNumberMayNotBeAllowed,
FloatingPointNumberMayNotBeAllowed,
}
impl Display for CssNumberConversionError {
#[inline(always)]
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
f.write_str(&self.to_string())
}
}
impl Error for CssNumberConversionError {
#[inline(always)]
fn description(&self) -> &str {
use self::CssNumberConversionError::*;
match *self {
InfinityIsNotAllowed => "infinity is not a valid CSS number",
NotANumberIsNotAllowed => {
"not a number (NaN) is not a valid CSS number"
}
NegativeNumberMayNotBeAllowed => {
"negative numbers are not valid for a CSS number"
}
FloatingPointNumberMayNotBeAllowed => {
"floating point numbers are not valid for a CSS integer"
}
}
}
#[inline(always)]
fn cause(&self) -> Option<&dyn Error> {
None
}
}