#[derive(Debug, Clone, Eq, PartialEq)]
pub enum UnitFromStrError
{
Float(ParseFloatError),
Conversion(CssNumberConversionError),
InvalidDimension,
}
impl Display for UnitFromStrError
{
#[inline(always)]
fn fmt(&self, f: &mut Formatter) -> fmt::Result
{
use self::UnitFromStrError::*;
match *self
{
Float(ref error) => write!(f, "Could not parse string to CssFloat because parsing it as a float caused '{}'", error),
Conversion(ref error) => write!(f, "Could not parse string to CssFloat because converting it from a parsed float caused '{}'", error),
InvalidDimension => write!(f, "Could not parse string to CssFloat because it had an invalid dimension"),
}
}
}
impl Error for UnitFromStrError
{
#[inline(always)]
fn description(&self) -> &str
{
use self::UnitFromStrError::*;
match *self
{
Float(ref error) => error.description(),
Conversion(ref error) => error.description(),
InvalidDimension => "invalid dimension",
}
}
#[inline(always)]
fn cause(&self) -> Option<&Error>
{
use self::UnitFromStrError::*;
match *self
{
Float(ref error) => Some(error),
Conversion(ref error) => Some(error),
InvalidDimension => None,
}
}
}
impl From<ParseFloatError> for UnitFromStrError
{
#[inline(always)]
fn from(error: ParseFloatError) -> Self
{
UnitFromStrError::Float(error)
}
}
impl From<CssNumberConversionError> for UnitFromStrError
{
#[inline(always)]
fn from(error: CssNumberConversionError) -> Self
{
UnitFromStrError::Conversion(error)
}
}