vecmap-rs 0.2.5

A vector-based map and set implementation
Documentation
# Changelog

## [0.2.5]https://github.com/martinohmann/vecmap-rs/compare/v0.2.4...v0.2.5 - 2026-07-01

### Added

- add KeyedVecSet as internal abstraction layer ([#58]https://github.com/martinohmann/vecmap-rs/pull/58)

### Other

- *(deps)* update dtolnay/rust-toolchain digest to 4be7066 ([#70]https://github.com/martinohmann/vecmap-rs/pull/70)
- *(deps)* update actions/cache action to v6 ([#71]https://github.com/martinohmann/vecmap-rs/pull/71)
- *(deps)* update marcoieni/release-plz-action digest to e879257 ([#68]https://github.com/martinohmann/vecmap-rs/pull/68)
- *(deps)* update actions/checkout action to v7 ([#72]https://github.com/martinohmann/vecmap-rs/pull/72)
- *(deps)* update actions/checkout action to v6.0.3
- *(deps)* update actions/checkout digest to df4cb1c
- *(deps)* update actions/cache digest to caa2961
- *(deps)* update actions/cache digest to 27d5ce7
- *(deps)* update swatinem/rust-cache digest to e18b497 ([#64]https://github.com/martinohmann/vecmap-rs/pull/64)
- *(deps)* update marcoieni/release-plz-action digest to 1528104 ([#63]https://github.com/martinohmann/vecmap-rs/pull/63)
- *(deps)* pin dtolnay/rust-toolchain action to 29eef33 ([#62]https://github.com/martinohmann/vecmap-rs/pull/62)
- *(deps)* update actions/cache digest to 6682284
- *(deps)* update marcoieni/release-plz-action digest to f708778 ([#61]https://github.com/martinohmann/vecmap-rs/pull/61)
- *(deps)* update actions/checkout digest to de0fac2
- upgrade to edition 2024 ([#60]https://github.com/martinohmann/vecmap-rs/pull/60)

## [0.2.4]https://github.com/martinohmann/vecmap-rs/compare/v0.2.3...v0.2.4 - 2025-10-04

### Fixed

- *(docs)* prevent docs.rs build failures due to removed feature

### Other

- address new clippy lints

## [0.2.3]https://github.com/martinohmann/vecmap-rs/compare/v0.2.2...v0.2.3 - 2025-01-25

### Added

- add `Vec{Map,Set}::{try_reserve*,reserve_exact}` (#36)
- add `Vec{Map,Set}::append` (#35)

### Fixed

- *(iter)* map to correct item type in `Debug` impls

### Other

- address new clippy lints

## [0.2.2]https://github.com/martinohmann/vecmap-rs/compare/v0.2.1...v0.2.2 - 2024-07-28

### Added
- add `sort_by_cached_key` ([#31]https://github.com/martinohmann/vecmap-rs/pull/31)
- add binary search methods ([#30]https://github.com/martinohmann/vecmap-rs/pull/30)

## [0.2.1]https://github.com/martinohmann/vecmap-rs/compare/v0.2.0...v0.2.1 - 2024-01-03

### Other
- *(release)* switch to release-plz
- avoid unnecessary allocations in `Vec{Map,Set}::into_vec`

## [0.2.0]https://github.com/martinohmann/vecmap-rs/compare/v0.1.15...v0.2.0 (2023-12-25)


### ⚠ BREAKING CHANGES

* **map:** The type of the function parameter of `VecMap::retain` was changed from `FnMut(&K, &V) -> bool` to `FnMut(&K, &mut V) -> bool` to make it consistent with `retain` implementations of other common `std` collections.

### Features

* **set:** add `VecSet::from_vec_unchecked` ([#27]https://github.com/martinohmann/vecmap-rs/issues/27) ([519348b]https://github.com/martinohmann/vecmap-rs/commit/519348bfba4a0ef2c2ddba144cbb9c0adb87a851)


### Bug Fixes

* **map:** update API of VecMap::retain to be consistent with std ([#25]https://github.com/martinohmann/vecmap-rs/issues/25) ([0daf65d]https://github.com/martinohmann/vecmap-rs/commit/0daf65d7b04ad7fe8717bc03bd7b14c2f38d547b)

## [0.1.15]https://github.com/martinohmann/vecmap-rs/compare/v0.1.14...v0.1.15 (2023-12-23)


### Miscellaneous

* improve internal `Slot<K, V>` API ([#22]https://github.com/martinohmann/vecmap-rs/issues/22) ([c3bb9b7]https://github.com/martinohmann/vecmap-rs/commit/c3bb9b78f277d852b28c96df27d5ef2d3266846b)

## [0.1.14]https://github.com/martinohmann/vecmap-rs/compare/v0.1.13...v0.1.14 (2023-12-23)


### Bug Fixes

* **map:** prevent segmentation fault in `VecMap::as_slice` ([#19]https://github.com/martinohmann/vecmap-rs/issues/19) ([a1d5990]https://github.com/martinohmann/vecmap-rs/commit/a1d599019a455656dc95d66fa31243daf9c7823d)


### Miscellaneous

* apply new clippy lint suggestions ([ed59fa5]https://github.com/martinohmann/vecmap-rs/commit/ed59fa5cbede6848e69665cc3215847672a7083b)

## [0.1.13]https://github.com/martinohmann/vecmap-rs/compare/v0.1.12...v0.1.13 (2023-12-11)


### Features

* **map:** avoid allocations in conversion from vector or slice ([#16]https://github.com/martinohmann/vecmap-rs/issues/16) ([c47c487]https://github.com/martinohmann/vecmap-rs/commit/c47c487a6560d0977e282cc204bab66b251e76b7)

## [0.1.12]https://github.com/martinohmann/vecmap-rs/compare/v0.1.11...v0.1.12 (2023-09-19)


### Features

* **map:** add `insert_at` ([7cbef1d]https://github.com/martinohmann/vecmap-rs/commit/7cbef1d3ee44c3002a9bdfe57117b9d315845fee)
* **map:** impl `ExactSizeIterator` and `Debug` for `Drain` ([aca02b4]https://github.com/martinohmann/vecmap-rs/commit/aca02b4327d768e48ff6f9fada94ea98eac3c61d)


### Bug Fixes

* **set:** remove unnecessary trait bounds from `Drain` ([5643f73]https://github.com/martinohmann/vecmap-rs/commit/5643f737a487d7045a7a170b383c36796f977786)

## [0.1.11]https://github.com/martinohmann/vecmap-rs/compare/v0.1.10...v0.1.11 (2023-06-23)


### Features

* add `swap_indices` ([a219c7f]https://github.com/martinohmann/vecmap-rs/commit/a219c7f32c636a3d4721948810d600737c13cb82)
* add `truncate` ([a1e1625]https://github.com/martinohmann/vecmap-rs/commit/a1e1625ad70c33e2af3580807647c1514af686fc)

## [0.1.10]https://github.com/martinohmann/vecmap-rs/compare/v0.1.9...v0.1.10 (2023-03-18)


### Features

* **map:** add `MutableKeys` trait ([#12]https://github.com/martinohmann/vecmap-rs/issues/12) ([a2fc16b]https://github.com/martinohmann/vecmap-rs/commit/a2fc16b2393d9786ee5cba58f98d49367721d689)

## [0.1.9]https://github.com/martinohmann/vecmap-rs/compare/v0.1.8...v0.1.9 (2022-12-13)


### Bug Fixes

* remove unnecessary usages of `mem::transmute` ([41d90b6]https://github.com/martinohmann/vecmap-rs/commit/41d90b6c8a5cbae5be56dd0b4ae12cda4968eff7)

## [0.1.8]https://github.com/martinohmann/vecmap-rs/compare/v0.1.7...v0.1.8 (2022-10-30)


### Features

* **set:** implement `Clone` for `IntoIter` ([e78d5ee]https://github.com/martinohmann/vecmap-rs/commit/e78d5eea597703f25ef02965f2f55bf23faac647)


### Miscellaneous

* enable `clippy::pedantic` warnings ([d61b8f8]https://github.com/martinohmann/vecmap-rs/commit/d61b8f83572973b500a5603239d140d2d9faba1d)

## [0.1.7]https://github.com/martinohmann/vecmap-rs/compare/v0.1.6...v0.1.7 (2022-10-11)


### Miscellaneous

* **test:** switch to `serde_test` ([a980545]https://github.com/martinohmann/vecmap-rs/commit/a9805459bc7997e0cdd630653bcc01be3923005f)

## [0.1.6]https://github.com/martinohmann/vecmap-rs/compare/v0.1.5...v0.1.6 (2022-10-02)


### Features

* add `as_slice`, `to_vec` and `into_vec` methods ([3f1906d]https://github.com/martinohmann/vecmap-rs/commit/3f1906d45f0452ddb625a587f27adf0df47b64a8)


### Bug Fixes

* remove some needless borrows ([29bd06e]https://github.com/martinohmann/vecmap-rs/commit/29bd06e9634b181eeba0e23da319035a153794e7)

## [0.1.5]https://github.com/martinohmann/vecmap-rs/compare/v0.1.4...v0.1.5 (2022-09-21)


### Features

* **entry:** add `into_key` method to `OccupiedEntry` ([f94cbc3]https://github.com/martinohmann/vecmap-rs/commit/f94cbc376c053f9055ee2ac1a6f78eccc46189e1)

## [0.1.4]https://github.com/martinohmann/vecmap-rs/compare/v0.1.3...v0.1.4 (2022-09-18)


### Features

* add sort methods ([b443fe3]https://github.com/martinohmann/vecmap-rs/commit/b443fe37ab3fcf56bb9a15032c2a85324a67dfaf)
* implement `Clone` for all immutable iterators ([86478ba]https://github.com/martinohmann/vecmap-rs/commit/86478ba668ce7c4641f3ce76b9103b1da2b457ac)

## [0.1.3]https://github.com/martinohmann/vecmap-rs/compare/v0.1.2...v0.1.3 (2022-09-17)


### Features

* add `remove_index` ([fbf9e96]https://github.com/martinohmann/vecmap-rs/commit/fbf9e9674ffc3dafcc59e351a612054c508a9c67)
* add `split_off` ([ef05a94]https://github.com/martinohmann/vecmap-rs/commit/ef05a94571dff910b5f53d8f277ef23b840f7d42)
* add `VecSet` ([#5]https://github.com/martinohmann/vecmap-rs/issues/5) ([52cbc1e]https://github.com/martinohmann/vecmap-rs/commit/52cbc1eb1e90abe2c3b453f7957b109465c8e5bb)

## [0.1.2]https://github.com/martinohmann/vecmap-rs/compare/v0.1.1...v0.1.2 (2022-09-15)


### Features

* add `drain` ([380b801]https://github.com/martinohmann/vecmap-rs/commit/380b801c75df8b847d90186d499c4a829b56331a)
* add `retain` ([da11a0a]https://github.com/martinohmann/vecmap-rs/commit/da11a0ad069bcef7d47275453f2844a7858bde14)
* add `shrink_to_fit` and `shrink_to` ([e38cb08]https://github.com/martinohmann/vecmap-rs/commit/e38cb08c0ed00a8cdad0e80ecff629e37582f6ec)


### Bug Fixes

* manually implement `PartialEq` and `Eq` ([6809137]https://github.com/martinohmann/vecmap-rs/commit/680913709db23fa14e592af5c6f3a362f4e4680a)


### Miscellaneous

* add documentation link to `Cargo.toml` ([4c76dc1]https://github.com/martinohmann/vecmap-rs/commit/4c76dc156b34e2fe2580035f9c3c67c645546439)

## [0.1.1]https://github.com/martinohmann/vecmap-rs/compare/v0.1.0...v0.1.1 (2022-09-14)


### Features

* add `vecmap!` macro ([0d188cf]https://github.com/martinohmann/vecmap-rs/commit/0d188cfc114eb9fba123fbbcb261a48ee717c908)


### Miscellaneous

* fix crate categories ([d22090d]https://github.com/martinohmann/vecmap-rs/commit/d22090db7a10bfe9233b7ba97c47752777ffbfaa)
* fix license identifier ([4f07cb3]https://github.com/martinohmann/vecmap-rs/commit/4f07cb30dc567153fa3ef71039273f01d4003194)

## 0.1.0 (2022-09-14)


### Features

* add `Entry` API ([720e480]https://github.com/martinohmann/vecmap-rs/commit/720e480782409ba0c6939b1647464e6d01a51302)
* add `insert_full` ([e8fec92]https://github.com/martinohmann/vecmap-rs/commit/e8fec923e5e5937725dc0bb1e7538740aa4e2273)
* add `serde` feature ([618c7be]https://github.com/martinohmann/vecmap-rs/commit/618c7be4753a3d929769b27a81556d352dda21f0)
* add `VecMap` and basic operations ([18f244f]https://github.com/martinohmann/vecmap-rs/commit/18f244f5d14e86965d7fefd7bbe95cca9f7e1765)
* add iterators ([4a016c8]https://github.com/martinohmann/vecmap-rs/commit/4a016c8785c77edb4b4a15ca6f5119e2fc7dcdaf)


### Miscellaneous

* dual-license under MIT and Apache 2.0 ([d7fe6ec]https://github.com/martinohmann/vecmap-rs/commit/d7fe6ec3a06efc4229f6017360de70f4f954e5f6)
* initial commit ([63dbc94]https://github.com/martinohmann/vecmap-rs/commit/63dbc946cb3f8c647e39612d53b19cf4493e8f1a)
* prepare release ([0cb9f49]https://github.com/martinohmann/vecmap-rs/commit/0cb9f497de2d088042c00a86568796d424c6841f)