css_ast/types/
autospace.rs1use super::prelude::*;
2
3#[syntax(" no-autospace | [ ideograph-alpha || ideograph-numeric || punctuation ] || [ insert | replace ] ")]
9#[derive(Parse, Peek, ToCursors, ToSpan, SemanticEq, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
11#[cfg_attr(feature = "visitable", derive(csskit_derives::Visitable), visit)]
12#[derive(csskit_derives::NodeWithMetadata)]
13pub enum Autospace<'a> {}
14
15#[cfg(test)]
16mod tests {
17 use super::*;
18 use crate::CssAtomSet;
19 use css_parse::{assert_parse, assert_parse_error, assert_peek_false};
20
21 #[test]
22 fn test_writes() {
23 assert_parse!(CssAtomSet::ATOMS, Autospace, "no-autospace");
24 assert_parse!(CssAtomSet::ATOMS, Autospace, "ideograph-alpha");
25 assert_parse!(CssAtomSet::ATOMS, Autospace, "ideograph-numeric");
26 assert_parse!(CssAtomSet::ATOMS, Autospace, "punctuation");
27 assert_parse!(CssAtomSet::ATOMS, Autospace, "ideograph-alpha ideograph-numeric punctuation");
28 assert_parse!(CssAtomSet::ATOMS, Autospace, "insert");
29 assert_parse!(CssAtomSet::ATOMS, Autospace, "replace");
30 assert_parse!(CssAtomSet::ATOMS, Autospace, "ideograph-alpha insert");
31 assert_parse!(CssAtomSet::ATOMS, Autospace, "punctuation replace");
32 }
33
34 #[test]
35 fn test_errors() {
36 assert_peek_false!(CssAtomSet::ATOMS, Autospace, "");
37 assert_parse_error!(CssAtomSet::ATOMS, Autospace, "no-autospace insert");
38 assert_parse_error!(CssAtomSet::ATOMS, Autospace, "insert replace");
39 assert_parse_error!(CssAtomSet::ATOMS, Autospace, "ideograph-alpha ideograph-alpha");
40 }
41}