Skip to main content

css_ast/types/
display_internal.rs

1use super::prelude::*;
2
3/// <https://drafts.csswg.org/css-display-4/#typedef-display-internal>
4///
5/// ```text,ignore
6/// <display-internal> = table-row-group | table-header-group |
7///           table-footer-group | table-row | table-cell |
8///           table-column-group | table-column | table-caption |
9///           ruby-base | ruby-text | ruby-base-container |
10///           ruby-text-container
11/// ```
12#[derive(
13	Parse, Peek, IntoCursor, ToSpan, SemanticEq, ToCursors, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash,
14)]
15#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
16#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit(skip))]
17pub enum DisplayInternal {
18	#[atom(CssAtomSet::TableRowGroup)]
19	TableRowGroup(T![Ident]),
20	#[atom(CssAtomSet::TableHeaderGroup)]
21	TableHeaderGroup(T![Ident]),
22	#[atom(CssAtomSet::TableFooterGroup)]
23	TableFooterGroup(T![Ident]),
24	#[atom(CssAtomSet::TableRow)]
25	TableRow(T![Ident]),
26	#[atom(CssAtomSet::TableCell)]
27	TableCell(T![Ident]),
28	#[atom(CssAtomSet::TableColumnGroup)]
29	TableColumnGroup(T![Ident]),
30	#[atom(CssAtomSet::TableColumn)]
31	TableColumn(T![Ident]),
32	#[atom(CssAtomSet::TableCaption)]
33	TableCaption(T![Ident]),
34	#[atom(CssAtomSet::RubyBase)]
35	RubyBase(T![Ident]),
36	#[atom(CssAtomSet::RubyText)]
37	RubyText(T![Ident]),
38	#[atom(CssAtomSet::RubyBaseContainer)]
39	RubyBaseContainer(T![Ident]),
40	#[atom(CssAtomSet::RubyTextContainer)]
41	RubyTextContainer(T![Ident]),
42}
43
44#[cfg(test)]
45mod tests {
46	use super::*;
47	use crate::CssAtomSet;
48	use css_parse::{assert_parse, assert_peek_false};
49
50	#[test]
51	fn size_test() {
52		assert_eq!(std::mem::size_of::<DisplayInternal>(), 16);
53	}
54
55	#[test]
56	fn test_writes() {
57		assert_parse!(CssAtomSet::ATOMS, DisplayInternal, "table-row");
58	}
59
60	#[test]
61	fn test_errors() {
62		assert_peek_false!(CssAtomSet::ATOMS, DisplayInternal, "foo");
63	}
64}