summaryrefslogtreecommitdiff
path: root/exercises
diff options
context:
space:
mode:
Diffstat (limited to 'exercises')
-rw-r--r--exercises/enums/enums3.rs7
-rw-r--r--exercises/hashmaps/hashmaps2.rs9
-rw-r--r--exercises/hashmaps/hashmaps3.rs3
-rw-r--r--exercises/move_semantics/move_semantics2.rs10
4 files changed, 18 insertions, 11 deletions
diff --git a/exercises/enums/enums3.rs b/exercises/enums/enums3.rs
index 69ba072..5d28441 100644
--- a/exercises/enums/enums3.rs
+++ b/exercises/enums/enums3.rs
@@ -20,6 +20,7 @@ struct State {
color: (u8, u8, u8),
position: Point,
quit: bool,
+ message: String
}
impl State {
@@ -31,9 +32,7 @@ impl State {
self.quit = true;
}
- fn echo(&self, s: String) {
- println!("{}", s);
- }
+ fn echo(&mut self, s: String) { self.message = s }
fn move_position(&mut self, p: Point) {
self.position = p;
@@ -57,6 +56,7 @@ mod tests {
quit: false,
position: Point { x: 0, y: 0 },
color: (0, 0, 0),
+ message: "hello world".to_string(),
};
state.process(Message::ChangeColor(255, 0, 255));
state.process(Message::Echo(String::from("hello world")));
@@ -67,5 +67,6 @@ mod tests {
assert_eq!(state.position.x, 10);
assert_eq!(state.position.y, 15);
assert_eq!(state.quit, true);
+ assert_eq!(state.message, "hello world");
}
}
diff --git a/exercises/hashmaps/hashmaps2.rs b/exercises/hashmaps/hashmaps2.rs
index f913848..a592569 100644
--- a/exercises/hashmaps/hashmaps2.rs
+++ b/exercises/hashmaps/hashmaps2.rs
@@ -81,4 +81,13 @@ mod tests {
let count = basket.values().sum::<u32>();
assert!(count > 11);
}
+
+ #[test]
+ fn all_fruit_types_in_basket() {
+ let mut basket = get_fruit_basket();
+ fruit_basket(&mut basket);
+ for amount in basket.values() {
+ assert_ne!(amount, &0);
+ }
+ }
}
diff --git a/exercises/hashmaps/hashmaps3.rs b/exercises/hashmaps/hashmaps3.rs
index 4b48e09..08e977c 100644
--- a/exercises/hashmaps/hashmaps3.rs
+++ b/exercises/hashmaps/hashmaps3.rs
@@ -18,9 +18,8 @@
use std::collections::HashMap;
-// A structure to store team name and its goal details.
+// A structure to store the goal details of a team.
struct Team {
- name: String,
goals_scored: u8,
goals_conceded: u8,
}
diff --git a/exercises/move_semantics/move_semantics2.rs b/exercises/move_semantics/move_semantics2.rs
index 5821b52..72d37fa 100644
--- a/exercises/move_semantics/move_semantics2.rs
+++ b/exercises/move_semantics/move_semantics2.rs
@@ -1,8 +1,8 @@
// move_semantics2.rs
//
// Expected output:
-// vec0 has length 3 content `[22, 44, 66]`
-// vec1 has length 4 content `[22, 44, 66, 88]`
+// vec0 has length 3, with contents `[22, 44, 66]`
+// vec1 has length 4, with contents `[22, 44, 66, 88]`
//
// Execute `rustlings hint move_semantics2` or use the `hint` watch subcommand
// for a hint.
@@ -12,15 +12,13 @@
fn main() {
let vec0 = Vec::new();
- // Do not move the following line!
let mut vec1 = fill_vec(vec0);
- // Do not change the following line!
- println!("{} has length {} content `{:?}`", "vec0", vec0.len(), vec0);
+ println!("{} has length {}, with contents: `{:?}`", "vec0", vec0.len(), vec0);
vec1.push(88);
- println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
+ println!("{} has length {}, with contents `{:?}`", "vec1", vec1.len(), vec1);
}
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {