style/values/specified/
ratio.rs1use crate::parser::{Parse, ParserContext};
10use crate::values::generics::ratio::Ratio as GenericRatio;
11use crate::values::specified::NonNegativeNumber;
12use crate::One;
13use cssparser::Parser;
14use style_traits::ParseError;
15
16pub type Ratio = GenericRatio<NonNegativeNumber>;
18
19impl Parse for Ratio {
20 fn parse<'i, 't>(
21 context: &ParserContext,
22 input: &mut Parser<'i, 't>,
23 ) -> Result<Self, ParseError<'i>> {
24 let a = NonNegativeNumber::parse(context, input)?;
25 let b = match input.try_parse(|input| input.expect_delim('/')) {
26 Ok(()) => NonNegativeNumber::parse(context, input)?,
27 _ => One::one(),
28 };
29
30 Ok(GenericRatio(a, b))
31 }
32}