definitive 0.1.0

The definitive and final vector & matrix library for Rust
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()));
    }
}