aura_anim_core/
timeline.rs1mod hold;
4mod parallel;
5mod sequence;
6
7pub use hold::Hold;
8pub use parallel::Parallel;
9pub use sequence::Sequence;
10
11pub type Timeline<T> = Sequence<T>;
13
14fn normalized(progress: f32) -> f32 {
15 if progress.is_nan() {
16 0.0
17 } else {
18 progress.clamp(0.0, 1.0)
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use super::normalized;
25 use float_cmp::assert_approx_eq;
26
27 #[test]
28 fn normalized_clamps_and_sanitizes_progress() {
29 assert_approx_eq!(f32, normalized(f32::NAN), 0.0);
30 assert_approx_eq!(f32, normalized(-1.0), 0.0);
31 assert_approx_eq!(f32, normalized(0.4), 0.4);
32 assert_approx_eq!(f32, normalized(2.0), 1.0);
33 }
34}