1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
pub fn assign_to_lhs<T: Copy, F>(lhs: &mut [T], rhs: &[T], f: F)
where
F: Fn(&mut T, T),
{
let len = core::cmp::min(lhs.len(), rhs.len());
let rhs = &rhs[..len];
let lhs_slice = &mut lhs[..len];
for idx in 0..len {
f(&mut lhs_slice[idx], rhs[idx])
}
}
pub fn assign_to_lhs_scalar<T: Copy, F>(lhs: &mut [T], rhs: T, f: F)
where
F: Fn(&mut T, T),
{
for value in lhs {
f(value, rhs)
}
}