summaryrefslogtreecommitdiff
path: root/rustlings/exercises/18_iterators/iterators5.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rustlings/exercises/18_iterators/iterators5.rs')
-rw-r--r--rustlings/exercises/18_iterators/iterators5.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/rustlings/exercises/18_iterators/iterators5.rs b/rustlings/exercises/18_iterators/iterators5.rs
index 7e434cc..74f1c74 100644
--- a/rustlings/exercises/18_iterators/iterators5.rs
+++ b/rustlings/exercises/18_iterators/iterators5.rs
@@ -26,6 +26,7 @@ fn count_for(map: &HashMap<String, Progress>, value: Progress) -> usize {
// TODO: Implement the functionality of `count_for` but with an iterator instead
// of a `for` loop.
fn count_iterator(map: &HashMap<String, Progress>, value: Progress) -> usize {
+ map.values().filter(|&&x| x == value).count()
// `map` is a hash map with `String` keys and `Progress` values.
// map = { "variables1": Complete, "from_str": None, … }
}
@@ -45,6 +46,7 @@ fn count_collection_for(collection: &[HashMap<String, Progress>], value: Progres
// TODO: Implement the functionality of `count_collection_for` but with an
// iterator instead of a `for` loop.
fn count_collection_iterator(collection: &[HashMap<String, Progress>], value: Progress) -> usize {
+ collection.iter().map(|m| count_iterator(m, value)).sum()
// `collection` is a slice of hash maps.
// collection = [{ "variables1": Complete, "from_str": None, … },
// { "variables2": Complete, … }, … ]