I have solved hashmap2 in the rustlings repository:
fn fruit_basket(basket: &mut HashMap<Fruit, u32>) {
for fruit in fruit_kinds {
match fruit {
Fruit::Apple => basket.entry(Fruit::Apple).or_insert(3),
Fruit::Banana => basket.entry(Fruit::Banana).or_insert(3),
Fruit::Mango => basket.entry(Fruit::Mango).or_insert(3),
Fruit::Lichi => basket.entry(Fruit::Lichi).or_insert(3),
Fruit::Pineapple => basket.entry(Fruit::Pineapple).or_insert(3),
};
// TODO: Put new fruits if not already present. Note that you
// are not allowed to put any type of fruit that's already
// present!
}
}
Now I want to solve it using a different method:
fn fruit_basket(basket: &mut HashMap<Fruit, u32>) {
for fruit in fruit_kinds {
match fruit {
Fruit::Apple => basket.entry(Fruit::Apple).or_insert(3),
Fruit::Banana => basket.insert(Fruit::Banana, 3),
Fruit::Mango => basket.entry(Fruit::Mango).or_insert(3),
Fruit::Lichi => basket.entry(Fruit::Lichi).or_insert(3),
Fruit::Pineapple => basket.entry(Fruit::Pineapple).or_insert(3),
};
}
}
I get this compilation error:
I can understand by reading the documentation that insert
returns Option
which is causing the issue but don't fully understand how can I fix it.