#[derive(Clone, Debug, PartialEq)]
pub struct PairValues(pub u32, pub Option<u32>);
impl Parse for PairValues
{
fn parse<'i, 't>(_context: &ParserContext, input: &mut Parser<'i, 't>) -> Result<PairValues, ParseError<'i, CustomParseError<'i>>>
{
let first = match *input.next()?
{
Token::Number { int_value: Some(firstValue), .. } if firstValue >= 0 => firstValue as u32,
ref unexpectedToken => return CustomParseError::unexpectedToken(unexpectedToken),
};
match input.next()
{
Ok(&Token::Number { int_value: Some(secondValue), .. }) if secondValue >= 0 =>
{
Ok(PairValues(first, Some(secondValue as u32)))
}
Ok(unexpectedToken) => CustomParseError::unexpectedToken(unexpectedToken),
Err(_) => Ok(PairValues(first, None))
}
}
}
impl ToCss for PairValues
{
fn to_css<W: fmt::Write>(&self, dest: &mut W) -> fmt::Result
{
self.0.to_css(dest)?;
if let Some(second) = self.1
{
dest.write_char(' ')?;
second.to_css(dest)?;
}
Ok(())
}
}