use core::ops::SubAssign;
use crate::Vec3;
impl <T> SubAssign for Vec3<T> where T: SubAssign<T> + Copy {
fn sub_assign(&mut self, rhs: Vec3<T>) {
let l = self.as_mut_slice();
let r = rhs.as_slice();
l[0] -= r[0];
l[1] -= r[1];
l[2] -= r[2];
}
}
impl <T> SubAssign<&Self> for Vec3<T> where T: SubAssign<T> + Copy {
fn sub_assign(&mut self, rhs: &Self) {
let l = self.as_mut_slice();
let r = rhs.as_slice();
l[0] -= r[0];
l[1] -= r[1];
l[2] -= r[2];
}
}