Skip to main content

css_ast/types/
track_repeat.rs

1use crate::{NamedRepeatItems, RepeatFunction, TrackSize};
2
3/// <https://drafts.csswg.org/css-grid-2/#typedef-track-repeat>
4///
5/// ```text,ignore
6/// <track-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <track-size> ]+ <line-names>? )
7/// ```
8pub type TrackRepeat<'a> = RepeatFunction<NamedRepeatItems<'a, TrackSize<'a>>>;
9
10#[cfg(test)]
11mod tests {
12	use super::*;
13	use crate::CssAtomSet;
14	use css_parse::{assert_parse, assert_parse_error};
15
16	#[test]
17	fn test_writes() {
18		assert_parse!(CssAtomSet::ATOMS, TrackRepeat, "repeat(2,10px)");
19		assert_parse!(CssAtomSet::ATOMS, TrackRepeat, "repeat(3,[a] 10px)");
20		assert_parse!(CssAtomSet::ATOMS, TrackRepeat, "repeat(3,10px [a])");
21		assert_parse!(CssAtomSet::ATOMS, TrackRepeat, "repeat(2,10px 1fr)");
22		assert_parse!(CssAtomSet::ATOMS, TrackRepeat, "repeat(2,[a] 10px [b] 1fr [c])");
23	}
24
25	#[test]
26	fn test_errors() {
27		assert_parse_error!(CssAtomSet::ATOMS, TrackRepeat, "repeat(2,)");
28		assert_parse_error!(CssAtomSet::ATOMS, TrackRepeat, "repeat(0,10px)");
29	}
30}