css_ast/rules/
webkit.rs

1use crate::{KeyframesName, KeyframesRuleBlock};
2use css_parse::{AtRule, atkeyword_set};
3use csskit_derives::{Parse, Peek, ToCursors, ToSpan, Visitable};
4
5atkeyword_set!(pub struct AtWebkitKeyframesKeyword "-webkit-keyframes");
6
7// https://drafts.csswg.org/css-animations/#at-ruledef-keyframes
8#[derive(Parse, Peek, ToSpan, ToCursors, Visitable, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9#[cfg_attr(feature = "serde", derive(serde::Serialize), serde())]
10#[visit]
11pub struct WebkitKeyframesRule<'a>(pub AtRule<AtWebkitKeyframesKeyword, KeyframesName, KeyframesRuleBlock<'a>>);
12
13#[cfg(test)]
14mod tests {
15	use super::*;
16	use css_parse::assert_parse;
17
18	#[test]
19	fn size_test() {
20		assert_eq!(std::mem::size_of::<WebkitKeyframesRule>(), 112);
21	}
22
23	#[test]
24	fn test_writes() {
25		assert_parse!(WebkitKeyframesRule, "@-webkit-keyframes foo{}");
26		assert_parse!(WebkitKeyframesRule, "@-webkit-keyframes\"include\"{}");
27		assert_parse!(WebkitKeyframesRule, "@-webkit-keyframes spin{to{rotate:360deg}}");
28	}
29}