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(Parse, Peek, IntoCursor, ToCursors, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
14#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit(skip))]
15pub enum DisplayInternal {
16	#[atom(CssAtomSet::TableRowGroup)]
17	TableRowGroup(T![Ident]),
18	#[atom(CssAtomSet::TableHeaderGroup)]
19	TableHeaderGroup(T![Ident]),
20	#[atom(CssAtomSet::TableFooterGroup)]
21	TableFooterGroup(T![Ident]),
22	#[atom(CssAtomSet::TableRow)]
23	TableRow(T![Ident]),
24	#[atom(CssAtomSet::TableCell)]
25	TableCell(T![Ident]),
26	#[atom(CssAtomSet::TableColumnGroup)]
27	TableColumnGroup(T![Ident]),
28	#[atom(CssAtomSet::TableColumn)]
29	TableColumn(T![Ident]),
30	#[atom(CssAtomSet::TableCaption)]
31	TableCaption(T![Ident]),
32	#[atom(CssAtomSet::RubyBase)]
33	RubyBase(T![Ident]),
34	#[atom(CssAtomSet::RubyText)]
35	RubyText(T![Ident]),
36	#[atom(CssAtomSet::RubyBaseContainer)]
37	RubyBaseContainer(T![Ident]),
38	#[atom(CssAtomSet::RubyTextContainer)]
39	RubyTextContainer(T![Ident]),
40}
41
42#[cfg(test)]
43mod tests {
44	use super::*;
45	use crate::CssAtomSet;
46	use css_parse::{assert_parse, assert_parse_error};
47
48	#[test]
49	fn size_test() {
50		assert_eq!(std::mem::size_of::<DisplayInternal>(), 16);
51	}
52
53	#[test]
54	fn test_writes() {
55		assert_parse!(CssAtomSet::ATOMS, DisplayInternal, "table-row");
56	}
57
58	#[test]
59	fn test_errors() {
60		assert_parse_error!(CssAtomSet::ATOMS, DisplayInternal, "foo");
61	}
62}