indexmap
indexmap copied to clipboard
Full Consistency With HashMap
Missing methods (stable):
- [x]
with_hasher#35 - [x]
hasher#35 - [x]
shrink_to_fit - [x]
is_empty#22 - [x]
drain#27 - [x]
values,values_mut#17
New methods:
As a rule, we don't implement unstable methods; they are implemented when they are stable in Rust beta
- [x]
get_key_valuerust-lang/rust/issues/49347 - [x]
Entry::and_modify(unstable) - [x]
Entry::or_default(unstable) - [ ]
try_reserverust-lang/rust/issues/48043 - [x]
remove_entryrust-lang/rust/issues/46344
Trait impls
- [x]
PartialEq + Eq#23 - [x]
Extend<(&K, &V)>#34 - [x] Ser/De #28
- [x] ESI for iterators #26
- [x] Debug for Entry
- [x] Clone for some iterators (Keys, Values, Iter, probably all of them)
Type Conflicts:
- [x]
Entry<K, V>vsEntry<K, V, S>(not important) #59 - [x]
retain's&Kvs&mut K#39 - [ ]
drain's signature (not important) - [x]
OccupiedEntry::insert's signature #68
#28 implements Ser/De
I can't find any discrepancies between HashSet and OrderSet. A second close look is of course welcome, but I think @cuviper already did this carefully when implementing OrderSet, so it should already be fine.
indexmap::map::Keys is not Clone where std::collections::hash_map::Keys is. (Just noticed this moving some code that needed stable ordering over.) Is this an innate limitation or just an oversight?
Just an oversight, please check all iterators you can and PRs welcome.
I think we are as close as we can get at this point. New additions to std can continue being considered individually.