#[derive(Clone, Debug, PartialEq)]
pub enum MediaResolution
{
infinite,
finite(CalculablePropertyValue<ResolutionUnit<CssSignedNumber>>),
}
impl ToCss for MediaResolution
{
fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result
{
use self::MediaResolution::*;
match *self
{
infinite => dest.write_str("infinite"),
finite(ref value) => value.to_css(dest),
}
}
}
impl MediaResolution
{
fn parseWebKit<'i, 't>(input: &mut Parser<'i, 't>) -> Result<Self, ParseError<'i, CustomParseError<'i>>>
{
use self::MediaResolution::*;
let value = match *input.next()?
{
Token::Number { value, .. } => CssSignedNumber::new(value).map_err(|cssNumberConversionError| ParseError::Custom(CustomParseError::CouldNotParseCssSignedNumber(cssNumberConversionError, value))),
ref unexpectedToken @ _ => CustomParseError::unexpectedToken(unexpectedToken),
}?;
Ok(finite(CalculablePropertyValue::Constant(ResolutionUnit::dppx(value))))
}
fn parse<'i, 't>(context: &ParserContext, input: &mut Parser<'i, 't>) -> Result<Self, ParseError<'i, CustomParseError<'i>>>
{
use self::MediaResolution::*;
if input.try(|i| i.expect_ident_matching("auto")).is_ok()
{
return Ok(infinite);
}
Ok(finite(ResolutionUnit::parse_one_outside_calc_function(context, input)?))
}
}