css_ast/types/
line_style.rs

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