Skip to main content

css_ast/types/
track_breadth.rs

1use super::prelude::*;
2
3/// <https://drafts.csswg.org/css-grid-2/#typedef-track-breadth>
4///
5/// ```text,ignore
6/// <track-breadth> = <length-percentage [0,∞]> | <flex [0,∞]> | min-content | max-content | auto
7/// ```
8#[syntax(" <length-percentage [0,∞]> | <flex [0,∞]> | min-content | max-content | auto ")]
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 TrackBreadth<'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, TrackBreadth, "10px");
24		assert_parse!(CssAtomSet::ATOMS, TrackBreadth, "50%");
25		assert_parse!(CssAtomSet::ATOMS, TrackBreadth, "1fr");
26		assert_parse!(CssAtomSet::ATOMS, TrackBreadth, "min-content");
27		assert_parse!(CssAtomSet::ATOMS, TrackBreadth, "max-content");
28		assert_parse!(CssAtomSet::ATOMS, TrackBreadth, "auto");
29	}
30
31	#[test]
32	fn test_errors() {
33		assert_parse_error!(CssAtomSet::ATOMS, TrackBreadth, "-10px");
34		assert_peek_false!(CssAtomSet::ATOMS, TrackBreadth, "none");
35	}
36}