diff options
Diffstat (limited to 'rustlings/exercises/06_move_semantics')
6 files changed, 0 insertions, 125 deletions
diff --git a/rustlings/exercises/06_move_semantics/README.md b/rustlings/exercises/06_move_semantics/README.md deleted file mode 100644 index 54ddd8e..0000000 --- a/rustlings/exercises/06_move_semantics/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Move Semantics - -These exercises are adapted from [pnkfelix](https://github.com/pnkfelix)'s [Rust Tutorial](https://pnkfelix.github.io/rust-examples-icfp2014/) -- Thank you Felix!!! - -## Further information - -For this section, the book links are especially important. - -- [Ownership](https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html) -- [Reference and borrowing](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html) diff --git a/rustlings/exercises/06_move_semantics/move_semantics1.rs b/rustlings/exercises/06_move_semantics/move_semantics1.rs deleted file mode 100644 index 9385f28..0000000 --- a/rustlings/exercises/06_move_semantics/move_semantics1.rs +++ /dev/null @@ -1,23 +0,0 @@ -fn fill_vec(vec: Vec<i32>) -> Vec<i32> { - let mut vec = vec; - - 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); - assert_eq!(vec1, vec![22, 44, 66, 88]); - } -} diff --git a/rustlings/exercises/06_move_semantics/move_semantics2.rs b/rustlings/exercises/06_move_semantics/move_semantics2.rs deleted file mode 100644 index e205b81..0000000 --- a/rustlings/exercises/06_move_semantics/move_semantics2.rs +++ /dev/null @@ -1,28 +0,0 @@ -fn fill_vec(vec: Vec<i32>) -> Vec<i32> { - let mut vec = vec; - - vec.push(88); - - vec -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - // TODO: Make both vectors `vec0` and `vec1` accessible at the same time to - // fix the compiler error in the test. - #[test] - fn move_semantics2() { - let vec0 = vec![22, 44, 66]; - - let vec1 = fill_vec(vec0.clone()); - - assert_eq!(vec0, [22, 44, 66]); - assert_eq!(vec1, [22, 44, 66, 88]); - } -} diff --git a/rustlings/exercises/06_move_semantics/move_semantics3.rs b/rustlings/exercises/06_move_semantics/move_semantics3.rs deleted file mode 100644 index 4a90c21..0000000 --- a/rustlings/exercises/06_move_semantics/move_semantics3.rs +++ /dev/null @@ -1,22 +0,0 @@ -// TODO: Fix the compiler error in the function without adding any new line. -fn fill_vec(mut vec: Vec<i32>) -> Vec<i32> { - vec.push(88); - - vec -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn move_semantics3() { - let vec0 = vec![22, 44, 66]; - let vec1 = fill_vec(vec0); - assert_eq!(vec1, [22, 44, 66, 88]); - } -} diff --git a/rustlings/exercises/06_move_semantics/move_semantics4.rs b/rustlings/exercises/06_move_semantics/move_semantics4.rs deleted file mode 100644 index 89b412f..0000000 --- a/rustlings/exercises/06_move_semantics/move_semantics4.rs +++ /dev/null @@ -1,18 +0,0 @@ -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - // TODO: Fix the compiler errors only by reordering the lines in the test. - // Don't add, change or remove any line. - #[test] - fn move_semantics4() { - let mut x = Vec::new(); - let y = &mut x; - y.push(42); - let z = &mut x; - z.push(13); - assert_eq!(x, [42, 13]); - } -} diff --git a/rustlings/exercises/06_move_semantics/move_semantics5.rs b/rustlings/exercises/06_move_semantics/move_semantics5.rs deleted file mode 100644 index 78d8c77..0000000 --- a/rustlings/exercises/06_move_semantics/move_semantics5.rs +++ /dev/null @@ -1,24 +0,0 @@ -#![allow(clippy::ptr_arg)] - -// TODO: Fix the compiler errors without changing anything except adding or -// removing references (the character `&`). - -// Shouldn't take ownership -fn get_char(data: &String) -> char { - data.chars().last().unwrap() -} - -// Should take ownership -fn string_uppercase(mut data: String) { - data = data.to_uppercase(); - - println!("{data}"); -} - -fn main() { - let data = "Rust is great!".to_string(); - - get_char(&data); - - string_uppercase(data); -} |