flurry
flurry copied to clipboard
Implement Drain and IntoIterator
We should implement the Drain
and IntoIterator
traits on HashMap
!
Part of what is tricky about Drain
is the contract for what happens when the user "does something weird". For example, what happens if I write the following code:
std::mem::forget(map.drain());
Is map
now empty or full? What happens if I read one element and then drop the Drain
? Take a look at hashbrown::RawDrain
for some inspiration. I'm genuinely not sure what the best way to express this is a concurrent map.
@soruh began an implementation in #33, but it has since run out of time to work on it. It may still be useful to draw inspiration from though, and has a fair amount of good discussion around the challenges involved.
Hi Jon, I would like to give it a try, though this will be challenging. But I found solving specific problems is a good way, if not the best, to strengthen your coding skills. I used flurry in a small actix project and I noted that there is no serde implementation and also no merge. Should I open separate issues for this?
Definitely give it a try if you have the time! Serialization support should have landed in #79 — what in particular are you missing?