summaryrefslogtreecommitdiff
path: root/solutions
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-06-21 16:16:52 +0200
committermo8it <mo8it@proton.me>2024-06-21 16:16:52 +0200
commit946c29679e27433ff455bdb30343551757d87769 (patch)
tree564cde27c55a57a02a79803195c2cb69222a3ac6 /solutions
parent6a79ada7f2afc668418c8fd15e2db622f3d833af (diff)
move_semantics1 solution
Diffstat (limited to 'solutions')
-rw-r--r--solutions/06_move_semantics/move_semantics1.rs26
1 files changed, 25 insertions, 1 deletions
diff --git a/solutions/06_move_semantics/move_semantics1.rs b/solutions/06_move_semantics/move_semantics1.rs
index 4e18198..ac34e7a 100644
--- a/solutions/06_move_semantics/move_semantics1.rs
+++ b/solutions/06_move_semantics/move_semantics1.rs
@@ -1 +1,25 @@
-// Solutions will be available before the stable release. Thank you for testing the beta version 🥰
+fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
+ 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]);
+ }
+}