blender_armature/action/action_keyframes/action_keyframes_serde/
serialize.rs1use crate::action::action_keyframes::ActionKeyframes;
2use serde::ser::SerializeSeq;
3use serde::{Serialize, Serializer};
4
5impl Serialize for ActionKeyframes {
6 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
7 where
8 S: Serializer,
9 {
10 let mut seq = serializer.serialize_seq(Some(self.keyframes.len()))?;
11
12 for k in self.keyframes.iter() {
13 seq.serialize_element(k)?;
14 }
15
16 seq.end()
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23 use crate::Keyframe;
24
25 #[test]
27 fn serialize() {
28 let action_keyframes = ActionKeyframes::new(vec![Keyframe::new(5, vec![])]);
29 let serialized = serde_yaml::to_string(&action_keyframes).unwrap();
30
31 assert_eq!(
32 serialized,
33 r#"---
34- frame: 5
35 bones: []"#
36 )
37 }
38}