css_ast/rules/
starting_style.rs1use super::prelude::*;
2
3#[node]
5#[derive(Parse, Peek, ToCursors, ToSpan, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
7#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit)]
8#[cfg_attr(
9 feature = "css_feature_data",
10 derive(::csskit_derives::ToCSSFeature),
11 css_feature("css.at-rules.starting-style")
12)]
13#[derive(csskit_derives::NodeWithMetadata)]
14#[metadata(node_kinds = AtRule, used_at_rules = StartingStyle)]
15pub struct StartingStyleRule<'a> {
16 #[cfg_attr(feature = "visitable", visit(skip))]
17 #[atom(CssAtomSet::StartingStyle)]
18 pub name: T![AtKeyword],
19 #[metadata(block)]
20 pub block: StartingStyleRuleBlock<'a>,
21}
22
23#[node]
24#[derive(Parse, Peek, ToCursors, ToSpan, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
25#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable))]
26#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
27#[derive(csskit_derives::NodeWithMetadata)]
28pub struct StartingStyleRuleBlock<'a>(pub RuleList<'a, Rule<'a>, CssMetadata>);
29
30#[cfg(test)]
31mod tests {
32 use super::*;
33 use crate::CssAtomSet;
34 use css_parse::assert_parse;
35
36 #[test]
37 fn test_writes() {
38 assert_parse!(CssAtomSet::ATOMS, StartingStyleRule, "@starting-style{}");
39 assert_parse!(CssAtomSet::ATOMS, StartingStyleRule, "@starting-style{body{color:black}}");
40 assert_parse!(CssAtomSet::ATOMS, StartingStyleRule, "@starting-style{h1{background-color:transparent}}");
41 }
42}