summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rustlings-macros/info.toml8
-rw-r--r--solutions/11_hashmaps/hashmaps3.rs8
2 files changed, 4 insertions, 12 deletions
diff --git a/rustlings-macros/info.toml b/rustlings-macros/info.toml
index c1342d6..e705598 100644
--- a/rustlings-macros/info.toml
+++ b/rustlings-macros/info.toml
@@ -575,12 +575,8 @@ https://doc.rust-lang.org/book/ch08-03-hash-maps.html#only-inserting-a-value-if-
name = "hashmaps3"
dir = "11_hashmaps"
hint = """
-Hint 1: Use the `entry()` and `or_insert()` (or `or_insert_with()`) methods of
- `HashMap` to insert the default value of `TeamScores` if a team doesn't
- exist in the table yet.
-
-Learn more in The Book:
-https://doc.rust-lang.org/book/ch08-03-hash-maps.html#only-inserting-a-value-if-the-key-has-no-value
+Hint 1: Use the `entry()` and `or_default()` methods of `HashMap` to insert the
+ default value of `TeamScores` if a team doesn't exist in the table yet.
Hint 2: If there is already an entry for a given key, the value returned by
`entry()` can be updated based on the existing value.
diff --git a/solutions/11_hashmaps/hashmaps3.rs b/solutions/11_hashmaps/hashmaps3.rs
index 8a5d30b..41da784 100644
--- a/solutions/11_hashmaps/hashmaps3.rs
+++ b/solutions/11_hashmaps/hashmaps3.rs
@@ -28,17 +28,13 @@ fn build_scores_table(results: &str) -> HashMap<&str, TeamScores> {
let team_2_score: u8 = split_iterator.next().unwrap().parse().unwrap();
// Insert the default with zeros if a team doesn't exist yet.
- let team_1 = scores
- .entry(team_1_name)
- .or_insert_with(TeamScores::default);
+ let team_1 = scores.entry(team_1_name).or_default();
// Update the values.
team_1.goals_scored += team_1_score;
team_1.goals_conceded += team_2_score;
// Similarly for the second team.
- let team_2 = scores
- .entry(team_2_name)
- .or_insert_with(TeamScores::default);
+ let team_2 = scores.entry(team_2_name).or_default();
team_2.goals_scored += team_2_score;
team_2.goals_conceded += team_1_score;
}