tuix_core/state/style/
units.rs

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