// Modify the array in place
fn for_each_mut<F>(arr: &mut [i32], mut callback: F)
where
F: FnMut(i32) -> i32,
{
for item in arr.iter_mut() {
*item = callback(*item); // apply callback and update
}
}
fn main() {
let mut numbers = [5, 10, 15, 20];
for_each_mut(&mut numbers, |x| x * 2);
println!("{:?}", numbers);
}
/*
run:
[10, 20, 30, 40]
*/