css_ast 0.0.25

CSS Abstract Syntax Trees with visitable nodes and style value types.
Documentation
#[macro_export]
macro_rules! assert_snap_ast {
	($source_path: literal) => {{
		use bumpalo::Bump;
		use css_ast::{CssAtomSet, StyleSheet};
		use css_lexer::Lexer;
		use css_parse::Parser;
		use std::fs::read_to_string;

		let allocator = Bump::default();
		let source_text = read_to_string($source_path).unwrap();
		let lexer = Lexer::new(&CssAtomSet::ATOMS, &source_text);
		let mut parser = Parser::new(&allocator, &source_text, lexer);
		let result = parser.parse_entirely::<StyleSheet>();
		if !result.errors.is_empty() {
			panic!("\n\nParse {:?} failed. Saw error {:?}", $source_path, result.errors[0]);
		}
		#[cfg(feature = "serde")]
		insta::assert_ron_snapshot!(result.output.unwrap())
	}};
}