1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::animation::Interpolator;
use morphorm::Units;
impl Interpolator for Units {
fn interpolate(start: &Self, end: &Self, t: f32) -> Self {
let s = match start {
Units::Pixels(val) => val,
Units::Percentage(val) => val,
Units::Stretch(val) => val,
Units::Auto => return *end,
};
match end {
Units::Pixels(e) => Units::Pixels(f32::interpolate(s, e, t)),
Units::Percentage(e) => Units::Percentage(f32::interpolate(s, e, t)),
Units::Stretch(e) => Units::Stretch(f32::interpolate(s, e, t)),
Units::Auto => return *end,
}
}
}