use core::ops::MulAssign;
use super::Vector;
impl<T: MulAssign, const N: usize> MulAssign for Vector<T, { N }> {
fn mul_assign(&mut self, rhs: Self) {
// safe as Rhs is owned
self.0
.iter_mut()
.zip(rhs.0.iter())
.for_each(|(v, r)| v.mul_assign(unsafe { core::ptr::read(r) }))
}
}
impl<T: MulAssign<T> + Clone, const N: usize> MulAssign<T> for Vector<T, { N }> {
fn mul_assign(&mut self, rhs: T) {
self.0.iter_mut().for_each(|v| v.mul_assign(rhs.clone()));
}
}