ringmap 0.2.3

A hash table with consistent deque-like order and fast iteration.
Documentation
# Releases

## 0.2.3 (2026-01-08)

- Added `RingMap::get_range`, `get_range_mut`, `range`, and `range_mut`.
- Added `RingSet::get_range` and `range`.

## 0.2.2 (2026-01-07)

- Added `map::Slice::split_at_checked` and `split_at_mut_checked`.
- Added `set::Slice::split_at_checked`.

## 0.2.1 (2025-11-20)

- Simplified a lot of internals using `hashbrown`'s new bucket API.

## 0.2.0 (2025-10-18)

- **MSRV**: Rust 1.82.0 or later is now required.
- Error types now implement `core::error::Error`.
- Added `pop_back_if` and `pop_front_if` methods to `RingMap` and
  `RingSet`.
- Deprecated map and set `insert_full` in favor of `push_back` and
  `push_front`.
- Added new `Entry` back/front methods and deprecated the old:
  - `insert` => `push_back`, `push_front`
  - `insert_entry` => `push_back_entry`, `push_front_entry`
  - `or_default` => `or_push_back_default`, `or_push_front_default`
  - `or_insert` => `or_push_back`, `or_push_front`
  - `or_insert_with` => `or_push_back_with`, `or_push_front_with`
  - `or_insert_with_key` => `or_push_back_with_key`, `or_push_front_with_key`

## 0.1.8 (2025-09-18)

- Updated the `hashbrown` dependency to version 0.16.

## 0.1.7 (2025-09-15)

- Switched the "serde" feature to depend on `serde_core`, improving build
  parallelism in cases where other dependents have enabled "serde/derive".

## 0.1.6 (2025-09-08)

- Added a `get_key_value_mut` method to `RingMap`.
- Removed the unnecessary `Ord` bound on `insert_sorted_by` methods.

## 0.1.5 (2025-08-22)

- Added `insert_sorted_by` and `insert_sorted_by_key` methods to `RingMap`,
  `RingSet`, and `VacantEntry`, like customizable versions of `insert_sorted`.
- Added `is_sorted`, `is_sorted_by`, and `is_sorted_by_key` methods to
  `RingMap` and `RingSet`, as well as their `Slice` counterparts.
- Added `sort_by_key` and `sort_unstable_by_key` methods to `RingMap` and
  `RingSet`, as well as parallel counterparts.
- Added `replace_index` methods to `RingMap`, `RingSet`, and `VacantEntry`
  to replace the key (or set value) at a given index.
- Added optional `sval` serialization support.

## 0.1.4 (2025-06-26)

- Added `extract_if` methods to `RingMap` and `RingSet`, similar to the
  methods for `HashMap` and `HashSet` with ranges like `Vec::extract_if`.
- Added more `#[track_caller]` annotations to functions that may panic.

## 0.1.3 (2025-04-04)

- Added a `get_disjoint_mut` method to `RingMap`, matching Rust 1.86's
  `HashMap` method.
- Added a `get_disjoint_indices_mut` method to `RingMap` and `map::Slice`,
  matching Rust 1.86's `get_disjoint_mut` method on slices.

## 0.1.2 (2025-03-10)

- Added `ringmap_with_default!` and `ringset_with_default!` to be used with
  alternative hashers, especially when using the crate without `std`.
- Implemented `PartialEq` between each `Slice` and `[]`/arrays.

## 0.1.1 (2025-01-29)

- Optimized the branch behavior of the iterators.

## 0.1.0 (2025-01-21)

- Initial release, based on `indexmap v2.7.1`.