pub async fn follow_path<T>(x: &mut T, path: Vec<T>, time: f32)where
    T: Copy + Add<Output = T> + Sub<Output = T> + Mul<f32, Output = T>,