indexmap-rs/indexmap (indexmap)
### [`v2.4.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#240)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.3.0...2.4.0)
- Added methods `IndexMap::append` and `IndexSet::append`, moving all items from
one map or set into another, and leaving the original capacity for reuse.
### [`v2.3.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#230)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.6...2.3.0)
- Added trait `MutableEntryKey` for opt-in mutable access to map entry keys.
- Added method `MutableKeys::iter_mut2` for opt-in mutable iteration of map
keys and values.
### [`v2.2.6`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#226)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.5...2.2.6)
- Added trait `MutableValues` for opt-in mutable access to set values.
### [`v2.2.5`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#225)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.4...2.2.5)
- Added optional `borsh` serialization support.
### [`v2.2.4`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#224)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.3...2.2.4)
- Added an `insert_sorted` method on `IndexMap`, `IndexSet`, and `VacantEntry`.
- Avoid hashing for lookups in single-entry maps.
- Limit preallocated memory in `serde` deserializers.
### [`v2.2.3`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#223)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.2...2.2.3)
- Added `move_index` and `swap_indices` methods to `IndexedEntry`,
`OccupiedEntry`, and `RawOccupiedEntryMut`, functioning like the existing
methods on `IndexMap`.
- Added `shift_insert` methods on `VacantEntry` and `RawVacantEntryMut`, as
well as `shift_insert_hashed_nocheck` on the latter, to insert the new entry
at a particular index.
- Added `shift_insert` methods on `IndexMap` and `IndexSet` to insert a new
entry at a particular index, or else move an existing entry there.
### [`v2.2.2`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#222)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.1...2.2.2)
- Added indexing methods to raw entries: `RawEntryBuilder::from_hash_full`,
`RawEntryBuilder::index_from_hash`, and `RawEntryMut::index`.
### [`v2.2.1`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#221)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.0...2.2.1)
- Corrected the signature of `RawOccupiedEntryMut::into_key(self) -> &'a mut K`,
This a breaking change from 2.2.0, but that version was published for less
than a day and has now been yanked.
### [`v2.2.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#220)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.1.0...2.2.0)
- The new `IndexMap::get_index_entry` method finds an entry by its index for
in-place manipulation.
- The `Keys` iterator now implements `Index` for quick access to the
entry's key, compared to indexing the map to get the value.
- The new `IndexMap::splice` and `IndexSet::splice` methods will drain the
given range as an iterator, and then replace that range with entries from
an input iterator.
- The new trait `RawEntryApiV1` offers opt-in access to a raw entry API for
`IndexMap`, corresponding to the unstable API on `HashSet` as of Rust 1.75.
- Many `IndexMap` and `IndexSet` methods have relaxed their type constraints,
e.g. removing `K: Hash` on methods that don't actually need to hash.
- Removal methods `remove`, `remove_entry`, and `take` are now deprecated
in favor of their `shift_` or `swap_` prefixed variants, which are more
explicit about their effect on the index and order of remaining items.
The deprecated methods will remain to guide drop-in replacements from
`HashMap` and `HashSet` toward the prefixed methods.
### [`v2.1.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#210)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.0.2...2.1.0)
- Empty slices can now be created with `map::Slice::{new, new_mut}` and
`set::Slice::new`. In addition, `Slice::new`, `len`, and `is_empty` are
now `const` functions on both types.
- `IndexMap`, `IndexSet`, and their respective `Slice`s all have binary
search methods for sorted data: map `binary_search_keys` and set
`binary_search` for plain comparison, `binary_search_by` for custom
comparators, `binary_search_by_key` for key extraction, and
`partition_point` for boolean conditions.
### [`v2.0.2`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#202)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.0.1...2.0.2)
- The `hashbrown` dependency has been updated to version 0.14.1 to
complete the support for Rust 1.63.
### [`v2.0.1`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#201)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.0.0...2.0.1)
- **MSRV**: Rust 1.63.0 is now supported as well, pending publication of
`hashbrown`'s relaxed MSRV (or use cargo `--ignore-rust-version`).
### [`v2.0.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#200)
[Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/1.9.3...2.0.0)
- **MSRV**: Rust 1.64.0 or later is now required.
- The `"std"` feature is no longer auto-detected. It is included in the
default feature set, or else can be enabled like any other Cargo feature.
- The `"serde-1"` feature has been removed, leaving just the optional
`"serde"` dependency to be enabled like a feature itself.
- `IndexMap::get_index_mut` now returns `Option<(&K, &mut V)>`, changing
the key part from `&mut K` to `&K`. There is also a new alternative
`MutableKeys::get_index_mut2` to access the former behavior.
- The new `map::Slice` and `set::Slice` offer a linear view of maps
and sets, behaving a lot like normal `[(K, V)]` and `[T]` slices. Notably,
comparison traits like `Eq` only consider items in order, rather than hash
lookups, and slices even implement `Hash`.
- `IndexMap` and `IndexSet` now have `sort_by_cached_key` and
`par_sort_by_cached_key` methods which perform stable sorts in place
using a key extraction function.
- `IndexMap` and `IndexSet` now have `reserve_exact`, `try_reserve`, and
`try_reserve_exact` methods that correspond to the same methods on `Vec`.
However, exactness only applies to the direct capacity for items, while the
raw hash table still follows its own rules for capacity and load factor.
- The `Equivalent` trait is now re-exported from the `equivalent` crate,
intended as a common base to allow types to work with multiple map types.
- The `hashbrown` dependency has been updated to version 0.14.
- The `serde_seq` module has been moved from the crate root to below the
`map` module.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.9
->2.0
Release Notes
indexmap-rs/indexmap (indexmap)
### [`v2.4.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#240) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.3.0...2.4.0) - Added methods `IndexMap::append` and `IndexSet::append`, moving all items from one map or set into another, and leaving the original capacity for reuse. ### [`v2.3.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#230) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.6...2.3.0) - Added trait `MutableEntryKey` for opt-in mutable access to map entry keys. - Added method `MutableKeys::iter_mut2` for opt-in mutable iteration of map keys and values. ### [`v2.2.6`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#226) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.5...2.2.6) - Added trait `MutableValues` for opt-in mutable access to set values. ### [`v2.2.5`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#225) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.4...2.2.5) - Added optional `borsh` serialization support. ### [`v2.2.4`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#224) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.3...2.2.4) - Added an `insert_sorted` method on `IndexMap`, `IndexSet`, and `VacantEntry`. - Avoid hashing for lookups in single-entry maps. - Limit preallocated memory in `serde` deserializers. ### [`v2.2.3`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#223) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.2...2.2.3) - Added `move_index` and `swap_indices` methods to `IndexedEntry`, `OccupiedEntry`, and `RawOccupiedEntryMut`, functioning like the existing methods on `IndexMap`. - Added `shift_insert` methods on `VacantEntry` and `RawVacantEntryMut`, as well as `shift_insert_hashed_nocheck` on the latter, to insert the new entry at a particular index. - Added `shift_insert` methods on `IndexMap` and `IndexSet` to insert a new entry at a particular index, or else move an existing entry there. ### [`v2.2.2`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#222) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.1...2.2.2) - Added indexing methods to raw entries: `RawEntryBuilder::from_hash_full`, `RawEntryBuilder::index_from_hash`, and `RawEntryMut::index`. ### [`v2.2.1`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#221) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.2.0...2.2.1) - Corrected the signature of `RawOccupiedEntryMut::into_key(self) -> &'a mut K`, This a breaking change from 2.2.0, but that version was published for less than a day and has now been yanked. ### [`v2.2.0`](https://togithub.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#220) [Compare Source](https://togithub.com/indexmap-rs/indexmap/compare/2.1.0...2.2.0) - The new `IndexMap::get_index_entry` method finds an entry by its index for in-place manipulation. - The `Keys` iterator now implements `IndexConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.