From 528e45ea4c9e4f7fbdfd12a8832e4843d16ffdb6 Mon Sep 17 00:00:00 2001 From: Sateesh Basavaraju Date: Thu, 6 May 2021 23:17:27 +0530 Subject: [PATCH] feat: Add move_semantics5 exercise. --- exercises/move_semantics/move_semantics5.rs | 14 ++++++++++++++ info.toml | 7 +++++++ 2 files changed, 21 insertions(+) create mode 100644 exercises/move_semantics/move_semantics5.rs diff --git a/exercises/move_semantics/move_semantics5.rs b/exercises/move_semantics/move_semantics5.rs new file mode 100644 index 0000000..4f8128c --- /dev/null +++ b/exercises/move_semantics/move_semantics5.rs @@ -0,0 +1,14 @@ +// move_semantics5.rs +// Make me compile without adding any newlines or removing any of the lines. +// Execute `rustlings hint move_semantics5` for hints :) + +// I AM NOT DONE + +fn main() { + let mut x = 100; + let y = &mut x; + let z = &mut *y; + *y += 100; + *z += 1000; + assert_eq!(x, 1200); +} diff --git a/info.toml b/info.toml index 82e1195..9f35d50 100644 --- a/info.toml +++ b/info.toml @@ -210,6 +210,13 @@ So the end goal is to: - since we're not creating a new vec in `main` anymore, we need to create a new vec in `fill_vec`, similarly to the way we did in `main`""" +[[exercises]] +name = "move_semantics5" +path = "exercises/move_semantics/move_semantics5.rs" +mode = "compile" +hint = """Carefully reason about the range in which each mutable reference is in vogue. Does updating the value of referrent (x) immediately after the mutable reference is taken helps ? Read more about 'Mutable Referenes' in the book's section References and Borrowing': https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html#mutable-references.""" + + # PRIMITIVE TYPES [[exercises]]