From 6baf967df0384c4d13950bc54ea6f578523a1c55 Mon Sep 17 00:00:00 2001 From: inorishio Date: Tue, 16 Jun 2026 16:14:10 +0200 Subject: [PATCH] need to read ownership stuff now.. stack heap inbound --- .../06_move_semantics/move_semantics1.rs | 6 +++-- .../06_move_semantics/move_semantics2.rs | 4 ++- .../06_move_semantics/move_semantics3.rs | 4 ++- .../06_move_semantics/move_semantics1.rs | 27 ++++++++++++++++--- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/exercises/06_move_semantics/move_semantics1.rs b/exercises/06_move_semantics/move_semantics1.rs index 4eb3d61..0d6b220 100644 --- a/exercises/06_move_semantics/move_semantics1.rs +++ b/exercises/06_move_semantics/move_semantics1.rs @@ -1,6 +1,6 @@ // TODO: Fix the compiler error in this function. fn fill_vec(vec: Vec) -> Vec { - let vec = vec; + let mut vec = vec; vec.push(88); @@ -8,7 +8,9 @@ fn fill_vec(vec: Vec) -> Vec { } fn main() { - // You can optionally experiment here. + let vec0 = vec![22, 44, 66]; + let vec1 = fill_vec(vec0); + println!("{:?}", vec1); } #[cfg(test)] diff --git a/exercises/06_move_semantics/move_semantics2.rs b/exercises/06_move_semantics/move_semantics2.rs index a3ab7a0..f98aad3 100644 --- a/exercises/06_move_semantics/move_semantics2.rs +++ b/exercises/06_move_semantics/move_semantics2.rs @@ -7,7 +7,9 @@ fn fill_vec(vec: Vec) -> Vec { } fn main() { - // You can optionally experiment here. + let vec0 = vec![22, 44, 66]; + let vec1 = fill_vec(vec0); + println!("{:?}", vec1); } #[cfg(test)] diff --git a/exercises/06_move_semantics/move_semantics3.rs b/exercises/06_move_semantics/move_semantics3.rs index 11dbbbe..f816532 100644 --- a/exercises/06_move_semantics/move_semantics3.rs +++ b/exercises/06_move_semantics/move_semantics3.rs @@ -6,7 +6,9 @@ fn fill_vec(vec: Vec) -> Vec { } fn main() { - // You can optionally experiment here. + let vec0 = vec![22, 44, 66]; + let vec1 = fill_vec(vec0); + println!("{:?}", vec1); } #[cfg(test)] diff --git a/solutions/06_move_semantics/move_semantics1.rs b/solutions/06_move_semantics/move_semantics1.rs index dcf2377..ac34e7a 100644 --- a/solutions/06_move_semantics/move_semantics1.rs +++ b/solutions/06_move_semantics/move_semantics1.rs @@ -1,4 +1,25 @@ -fn main() { - // DON'T EDIT THIS SOLUTION FILE! - // It will be automatically filled after you finish the exercise. +fn fill_vec(vec: Vec) -> Vec { + let mut vec = vec; + // ^^^ added + + vec.push(88); + + vec +} + +fn main() { + // You can optionally experiment here. +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn move_semantics1() { + let vec0 = vec![22, 44, 66]; + let vec1 = fill_vec(vec0); + // `vec0` can't be accessed anymore because it is moved to `fill_vec`. + assert_eq!(vec1, vec![22, 44, 66, 88]); + } }