1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use core::ops::DivAssign;

use super::Vector;

impl<T: DivAssign, const N: usize> DivAssign for Vector<T, { N }> {
    fn div_assign(&mut self, rhs: Self) {
        // safe as Rhs is owned
        self.0
            .iter_mut()
            .zip(rhs.0.iter())
            .for_each(|(v, r)| v.div_assign(unsafe { core::ptr::read(r) }))
    }
}

impl<T: DivAssign<T> + Clone, const N: usize> DivAssign<T> for Vector<T, { N }> {
    fn div_assign(&mut self, rhs: T) {
        self.0.iter_mut().for_each(|v| v.div_assign(rhs.clone()));
    }
}