3 ms·
I thought everyone used hashbrown now https://github.com/rust-lang/hashbrown https://github.com/rust-lang/hashbrown
by jasonjmcghee 3y ago
I thought everyone used hashbrown now
https://github.com/rust-lang/hashbrown https://github.com/rust-lang/hashbrown
- IshKebab 3y agoThey do because the standard library implementation was changed to use Hashbrown. However the standard library API has a slight limitation in that you can't get say "I have a reference to a string. If there's an entry for it, give me that. Otherwise clone the string and insert a new entry. Also only do one key lookup." You end up either having to do two lookups or always cloning the string even if you ended up not needing it.
- GrumpySloth 3y agoYou can. https://doc.rust-lang.org/std/collections/hash_map/enum.Entry.html#method.or_insert https://doc.rust-lang.org/std/collections/hash_map/enum.Entr...
- IshKebab 3y agoYou can't. `entry()` takes they key by value, not by reference: https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.entry https://doc.rust-lang.org/std/collections/hash_map/struct.Ha... You might be getting confused because in that example the `HashMap` keys are references.
- GrumpySloth 3y agoMy bad. That’s not been an issue in my code, as I use arenas to manage memory and never put an owning container as key in a HashMap.