css_ast/types/
image_1d.rs

1use csskit_derives::{Parse, Peek, ToCursors, ToSpan, Visitable};
2
3use crate::StripesFunction;
4
5// https://drafts.csswg.org/css-images-4/#typedef-image-1d
6// <image-1D> = <stripes()>
7// <stripes()> = stripes( <color-stripe># )
8// <color-stripe> = <color> && [ <length-percentage> | <flex> ]?
9#[derive(Parse, Peek, ToCursors, ToSpan, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
11#[visit]
12pub struct Image1D<'a>(StripesFunction<'a>);
13
14#[cfg(test)]
15mod tests {
16	use super::*;
17	use css_parse::assert_parse;
18
19	#[test]
20	fn size_test() {
21		assert_eq!(std::mem::size_of::<Image1D>(), 64);
22	}
23
24	#[test]
25	fn test_writes() {
26		assert_parse!(Image1D, "stripes(red 1fr,green 2fr,blue 100px)");
27		assert_parse!(
28			Image1D,
29			"stripes(0.1fr red,0.2fr green,100px blue)",
30			"stripes(red 0.1fr,green 0.2fr,blue 100px)"
31		);
32		assert_parse!(Image1D, "stripes(red 1fr,2fr green,blue 100px)", "stripes(red 1fr,green 2fr,blue 100px)");
33	}
34}