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#[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}