# Changelog ## [v0.11.1](https://github.com/jeromefroe/lru-rs/tree/0.11.1) - 2023-09-05 - Add `try_get_or_insert_mut` method. ## [v0.11.0](https://github.com/jeromefroe/lru-rs/tree/0.11.0) - 2023-07-11 - Update dependency on hashbrown to 0.14 and update MSRV to 1.64.0. ## [v0.10.1](https://github.com/jeromefroe/lru-rs/tree/0.10.1) - 2023-06-29 - Add `try_get_or_insert` method. ## [v0.10.0](https://github.com/jeromefroe/lru-rs/tree/0.10.0) - 2023-03-04 - Remove `KeyRef` from the public API. ## [v0.9.0](https://github.com/jeromefroe/lru-rs/tree/0.9.0) - 2022-12-31 - Update dependency on hashbrown to 0.13. - Change `LruCache.map` to hold a pointer, rather than owned `LruEntry`. ## [v0.8.1](https://github.com/jeromefroe/lru-rs/tree/0.8.1) - 2022-10-01 - Add "caching" and "no-std" to list of categories. ## [v0.8.0](https://github.com/jeromefroe/lru-rs/tree/0.8.0) - 2022-09-11 - Use `NonZeroUsize` for LRU capacity instead of usize. - Add `get_or_insert_mut` method which is similiar to `get_or_insert` but returns a mutable reference instead of an immutable reference. - Add `LruCache::promote` and `LruCache::demote` API to manipulate LRU order of the entry directly. ## [v0.7.8](https://github.com/jeromefroe/lru-rs/tree/0.7.8) - 2022-07-19 - Update dependency on hashbrown to 0.12. ## [v0.7.7](https://github.com/jeromefroe/lru-rs/tree/0.7.7) - 2022-06-14 - Use `FnOnce` instead of `Fn` for trait bound of `fn` in `get_or_insert`. ## [v0.7.6](https://github.com/jeromefroe/lru-rs/tree/0.7.6) - 2022-05-25 - Add `pop_entry` method. ## [v0.7.5](https://github.com/jeromefroe/lru-rs/tree/0.7.5) - 2022-04-04 - Add `push` method. ## [v0.7.4](https://github.com/jeromefroe/lru-rs/tree/0.7.4) - 2022-04-03 - Implement `IntoIterator` trait and fix lifetime bug in `get_or_insert`. ## [v0.7.3](https://github.com/jeromefroe/lru-rs/tree/0.7.3) - 2022-02-28 - Add `get_or_insert` method. ## [v0.7.2](https://github.com/jeromefroe/lru-rs/tree/0.7.2) - 2021-12-28 - Explicitly implement Borrow for Box for non-nightly. ## [v0.7.1](https://github.com/jeromefroe/lru-rs/tree/0.7.1) - 2021-12-18 - Fix lifetime of iterators. ## [v0.7.0](https://github.com/jeromefroe/lru-rs/tree/0.7.0) - 2021-09-14 - Explicitly implement Borrow for String and Vec types for non-nightly. ## [v0.6.6](https://github.com/jeromefroe/lru-rs/tree/0.6.6) - 2021-07-28 - Update dependency on hashbrown to 0.11.2. ## [v0.6.5](https://github.com/jeromefroe/lru-rs/tree/0.6.5) - 2021-02-12 - Add `unbounded_with_hasher` constructor. ## [v0.6.4](https://github.com/jeromefroe/lru-rs/tree/0.6.4) - 2021-02-03 - Fix memory leak when keys contain heap allocated data and ensure send/sync bounds apply to all conforming hashers. ## [v0.6.3](https://github.com/jeromefroe/lru-rs/tree/0.6.3) - 2020-12-19 - Fix memory leak in `clear` and `resize` methods. ## [v0.6.2](https://github.com/jeromefroe/lru-rs/tree/0.6.2) - 2020-12-12 - Rename `optin_builtin_traits` to `auto_traits`. ## [v0.6.1](https://github.com/jeromefroe/lru-rs/tree/0.6.1) - 2020-11-02 - Update dependency on hashbrown to 0.9. ## [v0.6.0](https://github.com/jeromefroe/lru-rs/tree/0.6.0) - 2020-08-02 - Update dependency on hashbrown to 0.8. ## [v0.5.3](https://github.com/jeromefroe/lru-rs/tree/0.5.3) - 2020-07-06 - Fix bug that causes crash when putting an item into a zero-capacity cache. ## [v0.5.2](https://github.com/jeromefroe/lru-rs/tree/0.5.2) - 2020-06-17 - Fix nightly feature. ## [v0.5.1](https://github.com/jeromefroe/lru-rs/tree/0.5.1) - 2020-06-02 - Fix memory leak whereby old entries wouldn't be dropped when cache is full. ## [v0.5.0](https://github.com/jeromefroe/lru-rs/tree/0.5.0) - 2020-05-28 - Stop gating the `alloc` crate behind the `nightly` flag. ## [v0.4.5](https://github.com/jeromefroe/lru-rs/tree/0.4.5) - 2020-05-25 - Use `as_mut_ptr` in `drop` to fix memory leak. ## [v0.4.4](https://github.com/jeromefroe/lru-rs/tree/0.4.4) - 2020-05-19 - Use `mem::MaybeUninit` for key and value fields of nodes and not the nodes themselves. ## [v0.4.3](https://github.com/jeromefroe/lru-rs/tree/0.4.3) - 2019-12-10 - Add back import of alloc crate on nightly which was accidentally removed. ## [v0.4.2](https://github.com/jeromefroe/lru-rs/tree/0.4.2) - 2019-12-08 - Make hasbrown usage optional and add MSRV documentation. ## [v0.4.1](https://github.com/jeromefroe/lru-rs/tree/0.4.1) - 2019-11-26 - Use `mem::MaybeUninit` instead of `mem::uninitialized`. ## [v0.4.0](https://github.com/jeromefroe/lru-rs/tree/0.4.0) - 2019-10-28 - Use `Borrow` trait in `contains` and `pop` methods. ## [v0.3.1](https://github.com/jeromefroe/lru-rs/tree/0.3.1) - 2019-10-08 - Implement `Debug` for `LruCache`. ## [v0.3.0](https://github.com/jeromefroe/lru-rs/tree/0.3.0) - 2019-10-06 - Update the signature of the `peek` methods to use the `Borrow` trait and add a `peek_mut` method. ## [v0.2.0](https://github.com/jeromefroe/lru-rs/tree/0.2.0) - 2019-09-27 - Release a new minor version because of an accidental breaking change in the previous release ([#50](https://github.com/jeromefroe/lru-rs/issues/50)). ## [v0.1.18](https://github.com/jeromefroe/lru-rs/tree/0.1.18) - 2019-09-25 - Add borrowed type support for get_mut. ## [v0.1.17](https://github.com/jeromefroe/lru-rs/tree/0.1.17) - 2019-08-21 - Return Option from put method which contains old value if it exists. ## [v0.1.16](https://github.com/jeromefroe/lru-rs/tree/0.1.16) - 2019-07-25 - Implement Borrow trait for KeyRef with nightly OIBIT feature. ## [v0.1.15](https://github.com/jeromefroe/lru-rs/tree/0.1.15) - 2019-04-13 - Make crate no_std compatible with nightly feature. ## [v0.1.14](https://github.com/jeromefroe/lru-rs/tree/0.1.14) - 2019-04-13 - Implement `IterMut` to be able to get a mutable iterator for the cache. ## [v0.1.13](https://github.com/jeromefroe/lru-rs/tree/0.1.13) - 2019-03-12 - Bug fix to ensure that popped items are released. ## [v0.1.12](https://github.com/jeromefroe/lru-rs/tree/0.1.12) - 2019-03-04 - Replace standard HashMap with hashbrown HashMap. ## [v0.1.11](https://github.com/jeromefroe/lru-rs/tree/0.1.11) - 2018-12-10 - Implement `Iterator` trait for the cache. ## [v0.1.10](https://github.com/jeromefroe/lru-rs/tree/0.1.10) - 2018-11-07 - Add `peek_lru` method to get the least recently used element. ## [v0.1.9](https://github.com/jeromefroe/lru-rs/tree/0.1.9) - 2018-10-30 - Add `with_hasher` constructor to allow callers to use a custom hash function. ## [v0.1.8](https://github.com/jeromefroe/lru-rs/tree/0.1.8) - 2018-08-19 - Add `pop_lru` to remove least recently used element and `unbounded` constructor. ## [v0.1.7](https://github.com/jeromefroe/lru-rs/tree/0.1.7) - 2018-01-22 - Implement `Send` and `Sync` for the cache. ## [v0.1.6](https://github.com/jeromefroe/lru-rs/tree/0.1.6) - 2018-01-15 - Add `resize` method to dynamically resize the cache. ## [v0.1.5](https://github.com/jeromefroe/lru-rs/tree/0.1.5) - 2018-01-15 - Add `get_mut` method to get a mutable reference from the cache. ## [v0.1.4](https://github.com/jeromefroe/lru-rs/tree/0.1.4) - 2017-02-19 - Add function to clear the contents of the cache. ## [v0.1.3](https://github.com/jeromefroe/lru-rs/tree/0.1.3) - 2017-01-02 - Create internal hashmap with specified capacity. ## [v0.1.2](https://github.com/jeromefroe/lru-rs/tree/0.1.2) - 2017-01-02 - Add `peek` and `contains` functions. ## [v0.1.1](https://github.com/jeromefroe/lru-rs/tree/0.1.1) - 2016-12-31 - Fix documentation link in Cargo.toml. ## [v0.1.0](https://github.com/jeromefroe/lru-rs/tree/0.1.0) - 2016-12-31 - Initial release.