move_semantics1.rs (461B)
1 fn fill_vec(vec: Vec<i32>) -> Vec<i32> { 2 let mut vec = vec; 3 // ^^^ added 4 5 vec.push(88); 6 7 vec 8 } 9 10 fn main() { 11 // You can optionally experiment here. 12 } 13 14 #[cfg(test)] 15 mod tests { 16 use super::*; 17 18 #[test] 19 fn move_semantics1() { 20 let vec0 = vec![22, 44, 66]; 21 let vec1 = fill_vec(vec0); 22 // `vec0` can't be accessed anymore because it is moved to `fill_vec`. 23 assert_eq!(vec1, vec![22, 44, 66, 88]); 24 } 25 }