csskit_derives 0.0.30

Derive macros for CSS parsing, visiting, and AST operations.
Documentation
use super::{assert_derive_snapshot, to_deriveinput};
use crate::to_cursors;

macro_rules! assert_to_cursors_snapshot {
	( $data:ident, $name:literal) => {
		assert_derive_snapshot!(to_cursors::derive, $data, $name)
	};
}

#[test]
fn to_cursors_tuple_struct_single_field() {
	let data = to_deriveinput! {
		struct Length(Number);
	};
	assert_to_cursors_snapshot!(data, "to_cursors_tuple_struct_single_field");
}

#[test]
fn to_cursors_tuple_struct_multiple_fields() {
	let data = to_deriveinput! {
		struct Position(Length, Length, Length);
	};
	assert_to_cursors_snapshot!(data, "to_cursors_tuple_struct_multiple_fields");
}

#[test]
fn to_cursors_named_struct() {
	let data = to_deriveinput! {
		struct Color {
			red: CSSInt,
			green: CSSInt,
			blue: CSSInt,
		}
	};
	assert_to_cursors_snapshot!(data, "to_cursors_named_struct");
}

#[test]
fn to_cursors_named_struct_with_lifetime() {
	let data = to_deriveinput! {
		struct Value<'a> {
			content: &'a Ident,
			unit: Unit,
		}
	};
	assert_to_cursors_snapshot!(data, "to_cursors_named_struct_with_lifetime");
}

#[test]
fn to_cursors_enum_single_field_variants() {
	let data = to_deriveinput! {
		enum Display {
			Block(Ident),
			Inline(Ident),
			None(Ident),
		}
	};
	assert_to_cursors_snapshot!(data, "to_cursors_enum_single_field_variants");
}

#[test]
fn to_cursors_enum_multiple_field_variants() {
	let data = to_deriveinput! {
		enum Value {
			Length(Number, Unit),
			Percentage(Number),
			Function(Ident, Vec<Value>),
		}
	};
	assert_to_cursors_snapshot!(data, "to_cursors_enum_multiple_field_variants");
}

#[test]
fn to_cursors_enum_mixed_variants() {
	let data = to_deriveinput! {
		enum BorderStyle {
			Solid,
			Dashed { width: Length },
			Dotted { radius: Length, spacing: Length },
		}
	};
	assert_to_cursors_snapshot!(data, "to_cursors_enum_mixed_variants");
}

#[test]
fn to_cursors_enum_with_lifetime() {
	let data = to_deriveinput! {
		enum CssValue<'a> {
			Keyword(&'a Ident),
			Function { name: &'a Ident, args: Vec<String> },
		}
	};
	assert_to_cursors_snapshot!(data, "to_cursors_enum_with_lifetime");
}