Skip to main content

css_ast/types/
display_box.rs

1use super::prelude::*;
2
3/// <https://drafts.csswg.org/css-display-4/#typedef-display-box>
4///
5/// ```text,ignore
6/// <display-box> = contents | none
7/// ```
8#[node]
9#[derive(
10	Parse, Peek, IntoCursor, ToSpan, SemanticEq, ToCursors, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
11)]
12#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
13#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit(skip))]
14#[derive(csskit_derives::NodeWithMetadata)]
15pub enum DisplayBox {
16	#[atom(CssAtomSet::Contents)]
17	Contents(T![Ident]),
18	#[atom(CssAtomSet::None)]
19	None(T![Ident]),
20}
21
22#[cfg(test)]
23mod tests {
24	use super::*;
25	use crate::CssAtomSet;
26	use css_parse::{assert_parse, assert_peek_false};
27
28	#[test]
29	fn test_writes() {
30		assert_parse!(CssAtomSet::ATOMS, DisplayBox, "contents");
31		assert_parse!(CssAtomSet::ATOMS, DisplayBox, "none");
32	}
33
34	#[test]
35	fn test_errors() {
36		assert_peek_false!(CssAtomSet::ATOMS, DisplayBox, "foo");
37	}
38}