Skip to main content

css_ast/types/
line_style.rs

1use super::prelude::*;
2
3#[node]
4#[derive(
5	Parse, Peek, IntoCursor, ToSpan, SemanticEq, ToCursors, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
6)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
8#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit(self))]
9#[derive(csskit_derives::NodeWithMetadata)]
10pub enum LineStyle {
11	#[atom(CssAtomSet::None)]
12	None(T![Ident]),
13	#[atom(CssAtomSet::Hidden)]
14	Hidden(T![Ident]),
15	#[atom(CssAtomSet::Dotted)]
16	Dotted(T![Ident]),
17	#[atom(CssAtomSet::Dashed)]
18	Dashed(T![Ident]),
19	#[atom(CssAtomSet::Solid)]
20	Solid(T![Ident]),
21	#[atom(CssAtomSet::Double)]
22	Double(T![Ident]),
23	#[atom(CssAtomSet::Groove)]
24	Groove(T![Ident]),
25	#[atom(CssAtomSet::Ridge)]
26	Ridge(T![Ident]),
27	#[atom(CssAtomSet::Inset)]
28	Inset(T![Ident]),
29	#[atom(CssAtomSet::Outset)]
30	Outset(T![Ident]),
31}
32
33#[cfg(test)]
34mod tests {
35	use super::*;
36	use crate::CssAtomSet;
37	use css_parse::{assert_parse, assert_peek_false};
38
39	#[test]
40	fn test_writes() {
41		assert_parse!(CssAtomSet::ATOMS, LineStyle, "none");
42		assert_parse!(CssAtomSet::ATOMS, LineStyle, "hidden");
43	}
44
45	#[test]
46	fn test_errors() {
47		assert_peek_false!(CssAtomSet::ATOMS, LineStyle, "florp");
48		// Empty!
49		assert_peek_false!(CssAtomSet::ATOMS, LineStyle, "");
50	}
51}