Skip to content
Permalink
Browse files

Add function to parse <line-names>

  • Loading branch information
wafflespeanut committed May 18, 2017
1 parent 5d1e027 commit 53c7b0ac1572d7c1aaa424e20ea3dc15fd0547ca
Showing with 20 additions and 2 deletions.
  1. +20 −2 components/style/values/specified/grid.rs
@@ -9,7 +9,7 @@ use parser::{Parse, ParserContext};
use std::ascii::AsciiExt;
use std::fmt;
use style_traits::ToCss;
use values::{CSSFloat, HasViewportPercentage};
use values::{CSSFloat, CustomIdent, HasViewportPercentage};
use values::computed::{ComputedValueAsSpecified, Context, ToComputedValue};
use values::specified::LengthOrPercentage;

@@ -18,7 +18,6 @@ use values::specified::LengthOrPercentage;
/// A `<grid-line>` type.
///
/// https://drafts.csswg.org/css-grid/#typedef-grid-row-start-grid-line
#[allow(missing_docs)]
pub struct GridLine {
/// Flag to check whether it's a `span` keyword.
pub is_span: bool,
@@ -306,3 +305,22 @@ impl<L: ToComputedValue> ToComputedValue for TrackSize<L> {
}
}
}

/// Parse the grid line names into a vector of owned strings.
///
/// https://drafts.csswg.org/css-grid/#typedef-line-names
pub fn parse_line_names(input: &mut Parser) -> Result<Vec<String>, ()> {
input.expect_square_bracket_block()?;
input.parse_nested_block(|input| {
let mut values = vec![];
while let Ok(ident) = input.try(|i| i.expect_ident()) {
if CustomIdent::from_ident((&*ident).into(), &["span"]).is_err() {
return Err(())
}

values.push(ident.into_owned());
}

Ok(values)
})
}

0 comments on commit 53c7b0a

Please sign in to comment.
You can’t perform that action at this time.