Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust crate indexmap to v2.6.0 #101

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 27, 2024

This PR contains the following updates:

Package Type Update Change
indexmap dependencies major 1.9.3 -> 2.6.0
indexmap dependencies minor 2 -> 2.6.0

Release Notes

indexmap-rs/indexmap (indexmap)

v2.6.0

Compare Source

  • Implemented Clone for map::IntoIter and set::IntoIter.
  • Updated the hashbrown dependency to version 0.15.

v2.5.0

Compare Source

  • Added an insert_before method to IndexMap and IndexSet, as an
    alternative to shift_insert with different behavior on existing entries.
  • Added first_entry and last_entry methods to IndexMap.
  • Added From implementations between IndexedEntry and OccupiedEntry.

v2.4.0

Compare Source

  • 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

Compare Source

  • 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

Compare Source

  • Added trait MutableValues for opt-in mutable access to set values.

v2.2.5

Compare Source

  • Added optional borsh serialization support.

v2.2.4

Compare Source

  • 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

Compare Source

  • 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

Compare Source

  • Added indexing methods to raw entries: RawEntryBuilder::from_hash_full,
    RawEntryBuilder::index_from_hash, and RawEntryMut::index.

v2.2.1

Compare Source

  • 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

Compare Source

  • The new IndexMap::get_index_entry method finds an entry by its index for
    in-place manipulation.

  • The Keys iterator now implements Index<usize> 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

Compare Source

  • 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 Slices 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

Compare Source

  • The hashbrown dependency has been updated to version 0.14.1 to
    complete the support for Rust 1.63.

v2.0.1

Compare Source

  • 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

Compare Source

  • 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<K, V> and set::Slice<T> 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 these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants