// vecs2.rs // A Vec of even numbers is given. Your task is to complete the loop // so that each number in the Vec is multiplied by 2. // // Make me pass the test! // // Execute `rustlings hint vecs2` or use the `hint` watch subcommand for a hint. fn vec_loop(mut v: Vec) -> Vec { for i in v.iter_mut() { *i *= 2 } // At this point, `v` should be equal to [4, 8, 12, 16, 20]. v } fn vec_map(v: &Vec) -> Vec { v.iter().map(|num| { num * 2 }).collect() } #[cfg(test)] mod tests { use super::*; #[test] fn test_vec_loop() { let v: Vec = (1..).filter(|x| x % 2 == 0).take(5).collect(); let ans = vec_loop(v.clone()); assert_eq!(ans, v.iter().map(|x| x * 2).collect::>()); } #[test] fn test_vec_map() { let v: Vec = (1..).filter(|x| x % 2 == 0).take(5).collect(); let ans = vec_map(&v); assert_eq!(ans, v.iter().map(|x| x * 2).collect::>()); } }