12 KiB
-
1.9.2
IndexMapandIndexSetboth implementarbitrary::Arbitrary<'_>andquickcheck::Arbitraryif those optional dependency features are enabled.
-
1.9.1
- The MSRV now allows Rust 1.56.0 as well. However, currently
hashbrown0.12.1 requires 1.56.1, so users on 1.56.0 should downgrade that to 0.12.0 until there is a later published version relaxing its requirement.
- The MSRV now allows Rust 1.56.0 as well. However, currently
-
1.9.0
-
MSRV: Rust 1.56.1 or later is now required.
-
The
hashbrowndependency has been updated to version 0.12. -
IterMutandValuesMutnow implementDebug. -
The new
IndexMap::shrink_toandIndexSet::shrink_tomethods shrink the capacity with a lower bound. -
The new
IndexMap::move_indexandIndexSet::move_indexmethods change the position of an item from one index to another, shifting the items between to accommodate the move.
-
-
1.8.2
- Bump the
rustc-rayondependency, for compiler use only.
- Bump the
-
1.8.1
- The new
IndexSet::replace_fullwill return the index of the item along with the replaced value, if any, by @zakcutner in PR 222.
- The new
-
1.8.0
-
The new
IndexMap::into_keysandIndexMap::into_valueswill consume the map into keys or values, respectively, matching Rust 1.54'sHashMapmethods, by @taiki-e in PR 195. -
More of the iterator types implement
Debug,ExactSizeIterator, andFusedIterator, by @cuviper in PR 196. -
IndexMapandIndexSetnow implement rayon'sParallelDrainRange, by @cuviper in PR 197. -
IndexMap::with_hasherandIndexSet::with_hasherare nowconstfunctions, allowing static maps and sets, by @mwillsey in PR 203. -
IndexMapandIndexSetnow implementFromfor arrays, matching Rust 1.56's implementation forHashMap, by @rouge8 in PR 205. -
IndexMapandIndexSetnow have methodssort_unstable_keys,sort_unstable_by,sorted_unstable_by, andpar_*equivalents, which sort in-place without preserving the order of equal items, by @bhgomes in PR 211.
-
-
1.7.0
-
MSRV: Rust 1.49 or later is now required.
-
The
hashbrowndependency has been updated to version 0.11.
-
-
1.6.2
-
1.6.1
-
The new
serde_seqmodule implementsIndexMapserialization as a sequence to ensure order is preserved, by @cuviper in PR 158. -
New methods on maps and sets work like the
Vec/slice methods by the same name:truncate,split_off,first,first_mut,last,last_mut, andswap_indices, by @cuviper in PR 160.
-
-
1.6.0
-
MSRV: Rust 1.36 or later is now required.
-
The
hashbrowndependency has been updated to version 0.9.
-
-
1.5.2
- The new "std" feature will force the use of
stdfor users that explicitly want the defaultS = RandomState, bypassing the autodetection added in 1.3.0, by @cuviper in PR 145.
- The new "std" feature will force the use of
-
1.5.1
-
1.5.0
-
MSRV: Rust 1.32 or later is now required.
-
The inner hash table is now based on
hashbrownby @cuviper in PR 131. This also completes the methodreserveand addsshrink_to_fit. -
Add new methods
get_key_value,remove_entry,swap_remove_entry, andshift_remove_entry, by @cuviper in PR 136 -
Clone::clone_fromreuses allocations by @cuviper in PR 125 -
Add new method
reverseby @linclelinkpart5 in PR 128
-
-
1.4.0
-
Add new method
get_index_ofby @Thermatrix in PR 115 and 120 -
Fix build script rebuild-if-changed configuration to use "build.rs"; fixes issue 123. Fix by @cuviper.
-
Dev-dependencies (rand and quickcheck) have been updated. The crate's tests now run using Rust 1.32 or later (MSRV for building the crate has not changed). by @kjeremy and @bluss
-
-
1.3.2
- Maintenance update to regenerate the published
Cargo.toml.
- Maintenance update to regenerate the published
-
1.3.1
- Maintenance update for formatting and
autocfg1.0.
- Maintenance update for formatting and
-
1.3.0
- The deprecation messages in the previous version have been removed. (The methods have not otherwise changed.) Docs for removal methods have been improved.
- From Rust 1.36, this crate supports being built without std, requiring
allocinstead. This is enabled automatically when it is detected thatstdis not available. There is no crate feature to enable/disable to trigger this. The new build-depautocfgenables this.
-
1.2.0
-
Plain
.remove()now has a deprecation message, it informs the user about picking one of the removal functionsswap_removeandshift_removewhich have different performance and order semantics. Plain.remove()will not be removed, the warning message and method will remain until further. -
Add new method
shift_removefor order preserving removal on the map, andshift_takefor the corresponding operation on the set. -
Add methods
swap_remove,swap_remove_entrytoEntry. -
Fix indexset/indexmap to support full paths, like
indexmap::indexmap!() -
Internal improvements: fix warnings, deprecations and style lints
-
-
1.1.0
-
Added optional feature
"rayon"that adds parallel iterator support toIndexMapandIndexSetusing Rayon. This includes all the regular iterators in parallel versions, and parallel sort. -
Implemented
Cloneformap::{Iter, Keys, Values}andset::{Difference, Intersection, Iter, SymmetricDifference, Union} -
Implemented
Debugformap::{Entry, IntoIter, Iter, Keys, Values}andset::{Difference, Intersection, IntoIter, Iter, SymmetricDifference, Union} -
Serde trait
IntoDeserializerare implemented forIndexMapandIndexSet. -
Minimum Rust version requirement increased to Rust 1.30 for development builds.
-
-
1.0.2
-
The new methods
IndexMap::insert_fullandIndexSet::insert_fullare both likeinsertwith the index included in the return value. -
The new method
Entry::and_modifycan be used to modify occupied entries, matching the new methods ofstdmaps in Rust 1.26. -
The new method
Entry::or_defaultinserts a default value in unoccupied entries, matching the new methods ofstdmaps in Rust 1.28.
-
-
1.0.1
- Document Rust version policy for the crate (see rustdoc)
-
1.0.0
- This is the 1.0 release for
indexmap! (the crate and datastructure formerly known as “ordermap”) OccupiedEntry::insertchanged its signature, to use&mut selffor the method receiver, matching the equivalent method for a standardHashMap. Thanks to @dtolnay for finding this bug.- The deprecated old names from ordermap were removed:
OrderMap,OrderSet,ordermap!{},orderset!{}. Use the newIndexMapetc names instead.
- This is the 1.0 release for
-
0.4.1
- Renamed crate to
indexmap; theordermapcrate is now deprecated and the typesOrderMap/Setnow have a deprecation notice.
- Renamed crate to
-
0.4.0
-
This is the last release series for this
ordermapunder that name, because the crate is going to be renamed toindexmap(with typesIndexMap,IndexSet) and no change in functionality! -
The map and its associated structs moved into the
mapsubmodule of the crate, so that the map and set are symmetric- The iterators,
Entryand other structs are now underordermap::map::
- The iterators,
-
Internally refactored
OrderMap<K, V, S>so that all the main algorithms (insertion, lookup, removal etc) that don't use theSparameter (the hasher) are compiled without depending onS, which reduces generics bloat. -
Entry<K, V>no longer has a type parameterS, which is just like the standardHashMap's entry. -
Minimum Rust version requirement increased to Rust 1.18
-
-
0.3.5
- Documentation improvements
-
0.3.4
- The
.retain()methods forOrderMapandOrderSetnow traverse the elements in order, and the retained elements keep their order - Added new methods
.sort_by(),.sort_keys()toOrderMapand.sort_by(),.sort()toOrderSet. These methods allow you to sort the maps in place efficiently.
- The
-
0.3.3
- Document insertion behaviour better by @lucab
- Updated dependences (no feature changes) by @ignatenkobrain
-
0.3.2
- Add
OrderSetby @cuviper! OrderMap::drainis now (too) a double ended iterator.
- Add
-
0.3.1
- In all ordermap iterators, forward the
collectmethod to the underlying iterator as well. - Add crates.io categories.
- In all ordermap iterators, forward the
-
0.3.0
- The methods
get_pair,get_pair_indexwere both replaced byget_full(and the same for the mutable case). - Method
swap_remove_pairreplaced byswap_remove_full. - Add trait
MutableKeysfor opt-in mutable key access. Mutable key access is only possible through the methods of this extension trait. - Add new trait
Equivalentfor key equivalence. This extends theBorrowtrait mechanism forOrderMap::getin a backwards compatible way, just some minor type inference related issues may become apparent. See #10 for more information. - Implement
Extend<(&K, &V)>by @xfix.
- The methods
-
0.2.13
- Fix deserialization to support custom hashers by @Techcable.
- Add methods
.index()on the entry types by @garro95.
-
0.2.12
- Add methods
.with_hasher(),.hasher().
- Add methods
-
0.2.11
- Support
ExactSizeIteratorfor the iterators. By @Binero. - Use
Box<[Pos]>internally, saving a word in theOrderMapstruct. - Serde support, with crate feature
"serde-1". By @xfix.
- Support
-
0.2.10
- Add iterator
.drain(..)by @stevej.
- Add iterator
-
0.2.9
- Add method
.is_empty()by @overvenus. - Implement
PartialEq, Eqby @overvenus. - Add method
.sorted_by().
- Add method
-
0.2.8
- Add iterators
.values()and.values_mut(). - Fix compatibility with 32-bit platforms.
- Add iterators
-
0.2.7
- Add
.retain().
- Add
-
0.2.6
- Add
OccupiedEntry::remove_entryand other minor entry methods, so that it now has all the features ofHashMap's entries.
- Add
-
0.2.5
- Improved
.pop()slightly.
- Improved
-
0.2.4
- Improved performance of
.insert()(#3) by @pczarn.
- Improved performance of
-
0.2.3
- Generalize
Entryfor now, so that it works on hashmaps with non-default hasher. However, there's a lingering compat issue since libstdHashMapdoes not parameterize its entries by the hasher (Styparm). - Special case some iterator methods like
.nth().
- Generalize
-
0.2.2
- Disable the verbose
Debugimpl by default.
- Disable the verbose
-
0.2.1
- Fix doc links and clarify docs.
-
0.2.0
- Add more
HashMapmethods & compat with its API. - Experimental support for
.entry()(the simplest parts of the API). - Add
.reserve()(placeholder impl). - Add
.remove()as synonym for.swap_remove(). - Changed
.insert()to swap value if the entry already exists, and returnOption. - Experimental support as an indexed hash map! Added methods
.get_index(),.get_index_mut(),.swap_remove_index(),.get_pair_index(),.get_pair_index_mut().
- Add more
-
0.1.2
- Implement the 32/32 split idea for
Poswhich improves cache utilization and lookup performance.
- Implement the 32/32 split idea for
-
0.1.1
- Initial release.