rustyle 0.1.0

A new way to represent the CSS stylesheet in Rust
Documentation
use crate::core::node::{DeclarationNode, RulesetNode};
use crate::core::parse::parse_declaration;
use proc_macro::TokenTree;

pub fn parse_ruleset<I: 'static>(tokens: &mut I) -> Option<Box<RulesetNode>>
where
  I: Iterator<Item = TokenTree>,
{
  let mut declarations = Vec::<DeclarationNode>::new();

  loop {
    let parsed = parse_declaration(tokens);

    if let Some(node) = parsed {
      declarations.push(node);
      continue;
    }

    break;
  }

  if declarations.is_empty() {
    None
  } else {
    Some(Box::new(RulesetNode {
      declarations: declarations,
    }))
  }
}