obj-pool 0.7.0

A simple object arena
Documentation
0.7.0
=====

* **Breaking:** `ObjPool::obj_id_to_index` and `ObjPool::index_to_obj_id` are instance methods
  now, and the redundant static conversion helpers on `Iter`, `IterMut`, and `IntoIter` are
  removed.
* **Breaking:** `ObjPool::clear` now releases the allocated memory instead of keeping it for
  reuse (`ParObjPool::clear` already did).
* Debug builds now mix a random pool-specific offset into every `ObjId`, so an id used with a
  pool other than the one that created it is rejected instead of silently aliasing an unrelated
  object. Release builds are unaffected.
* `ParObjPool` derives the shard/index bit split of external ids from the shard count `S`
  instead of hardcoding 6 shard bits: each shard can now hold up to `2^(32 - ceil(log2(S))) - 1`
  objects, any `S` from 1 to 2^31 works, and invalid shard counts fail at compile time.
* `ParObjPool` lookups now return `None` for ids decoding to a nonexistent shard instead of
  panicking.
* Replace the unmaintained `unreachable` dependency with `std::hint::unreachable_unchecked`.
* Re-enable the linked-list and splay-tree examples, ported to the current API.
* Require parking_lot 0.12.5, use the `Apache-2.0 OR MIT` SPDX license expression.

0.6.0
=====

* Upgrade to Rust edition 2024.
* Add `size_hint`, `ExactSizeIterator`, and `FusedIterator` to `Iter`, `IterMut`, and `IntoIter`.
* Fix 2× iteration slowdown vs `slab`: `ObjId::from_index` now uses `new_unchecked` in release builds, allowing the compiler to eliminate key construction when the result is discarded.
* Add GitHub Actions CI (test on stable/beta/nightly, clippy, rustfmt).
* Add criterion benchmarks comparing `obj-pool` vs `slab`.
* Rewrite README with usage examples and benchmark data.

0.5.1
=====

* Added try_get and try_get_mut for ParObjPool

0.5.0
=====

* Shared implementation ParObjPool

0.4.4
=====

* Add ObjPool::new_const 

0.4.2
=====

* Enable serde support for optional

0.4.1
=====

* Add serde_support feature

0.4.0
=====

* Make ObjId field public for static usage
* Update dependencies

0.3.1
=====

* Fixed release build issue.

0.3.0
=====

* Switched to `optional` crate, remove invalid_value module.

0.2.0
=====

* Added debug-only check that `ObjId` used to get object from `ObjPool` is got from the correct `ObjPool`.
* Reintroduced iterators.
* Added `OptionObjId`.

0.1.0
=====

Initial version.
* Undeprecated `vec-arena`.
* Added `ObjId`.