Skip to main content

css_ast/rules/media/features/
custom.rs

1use css_parse::T;
2use csskit_derives::*;
3
4/// A reference to a custom media query, e.g. `(--modern)`.
5///
6/// <https://drafts.csswg.org/mediaqueries-5/#custom-mq>
7#[derive(Parse, Peek, ToCursors, ToSpan, SemanticEq, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
9#[derive(csskit_derives::NodeWithMetadata)]
10pub struct CustomMediaFeature(T!['('], T![DashedIdent], #[semantic_eq(skip)] T![')']);
11
12#[cfg(test)]
13mod tests {
14	use super::*;
15	use crate::CssAtomSet;
16	use css_parse::{assert_parse, assert_parse_error};
17
18	#[test]
19	fn test_writes() {
20		assert_parse!(CssAtomSet::ATOMS, CustomMediaFeature, "(--modern)");
21	}
22
23	#[test]
24	fn test_errors() {
25		assert_parse_error!(CssAtomSet::ATOMS, CustomMediaFeature, "(modern)");
26		assert_parse_error!(CssAtomSet::ATOMS, CustomMediaFeature, "(--modern:1)");
27	}
28}