use tween::{FixedTweener, Linear, Tween, Tweener};
pub fn main() {
let _tweener_of_erased: Tweener<i32, i32, Box<dyn Tween<i32>>> = Tweener::new(0, 0, 0, Box::new(Linear));
let tweener_of_erased = Tweener::new(0, 0, 0, Box::new(Linear) as Box<dyn Tween<i32>>);
access_tweener(&tweener_of_erased);
let tweener_of_erased: Tweener<i32, i32, Box<dyn Tween<i32> + Send + Sync>> =
Tweener::new(0, 0, 0, Box::new(Linear));
std::thread::spawn(move || {
access_tweener(&tweener_of_erased);
});
let fixed_tweener: FixedTweener<i32, i32, Box<dyn Tween<i32>>> = FixedTweener::new(0, 0, 0, Box::new(Linear), 0);
access_tweener(&fixed_tweener);
}
fn access_tweener<Value, Time, T>(tweener: &Tweener<Value, Time, T>)
where
Value: tween::TweenValue,
Time: tween::TweenTime,
T: Tween<Value>,
{
tweener.final_value();
}