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