css_ast/types/
repeat_style.rs1use super::prelude::*;
2
3#[derive(Parse, Peek, ToCursors, ToSpan, SemanticEq, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
10#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit(self))]
11#[derive(csskit_derives::NodeWithMetadata)]
12pub enum RepeatStyle {
13 #[atom(CssAtomSet::RepeatX)]
14 RepeatX(T![Ident]),
15 #[atom(CssAtomSet::RepeatY)]
16 RepeatY(T![Ident]),
17 Repetition(Repetition, Option<Repetition>),
18}
19
20#[derive(
26 Parse, Peek, IntoCursor, ToSpan, SemanticEq, ToCursors, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
27)]
28#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
29#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit(self))]
30#[derive(csskit_derives::NodeWithMetadata)]
31pub enum Repetition {
32 #[atom(CssAtomSet::Repeat)]
33 Repeat(T![Ident]),
34 #[atom(CssAtomSet::Space)]
35 Space(T![Ident]),
36 #[atom(CssAtomSet::Round)]
37 Round(T![Ident]),
38 #[atom(CssAtomSet::NoRepeat)]
39 NoRepeat(T![Ident]),
40}
41
42#[cfg(test)]
43mod test {
44 use super::*;
45 use css_parse::assert_parse;
46
47 #[test]
48 fn test_writes() {
49 assert_parse!(CssAtomSet::ATOMS, RepeatStyle, "repeat-x");
50 assert_parse!(CssAtomSet::ATOMS, RepeatStyle, "repeat-y");
51 assert_parse!(CssAtomSet::ATOMS, RepeatStyle, "repeat repeat");
52 assert_parse!(CssAtomSet::ATOMS, RepeatStyle, "space round");
53 }
54}