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