Replace the raw module with just hash_map
[anymap] / CHANGELOG.md
index 448ec9933ae6609d0269883e047dd8c7320c2d46..1be21282c0ec88b570a64cffa663e2674b1e18be 100644 (file)
@@ -1,6 +1,6 @@
 # 1.0.0 (unreleased)
 
-- Removed `anymap::any::Any` in favour of just plain `std::any::Any`, since its
+- Removed `anymap::any::Any` in favour of just plain `core::any::Any`, since its
   `Send`/`Sync` story is now long stable.
 
   - This loses `Any + Sync`. `CloneAny + Sync` is also removed for consistency.
 
 - Relicensed from MIT/Apache-2.0 to BlueOak-1.0.0/MIT/Apache-2.0.
 
-- Increased the minimum supported version of Rust from 1.7.0 to 1.34.0.
+- Increased the minimum supported version of Rust from 1.7.0 to 1.36.0.
+
+- no_std is now possible in the usual way (default Cargo feature 'std'),
+  depending on alloc and hashbrown.
 
 - Removed the `bench` Cargo feature which was mostly to work around historical
   Cargo limitations, but was solved by moving benchmarks from `src/lib.rs` to
 
 - Implemented `Default` on `Map` (not just on `RawMap`).
 
-- The implementation of `Into<RawMap<A>>` for `Map<A>` has been
-  replaced with the more general `From<Map<A>>` for `RawMap<A>`.
+- Removed the `anymap::raw` wrapper layer around `std::collections::hash_map`,
+  in favour of exposing the raw `HashMap` directly. I think there was a reason
+  I did it that seven years ago, but I think that reason may have dissolved by
+  now, and I can’t think of it and I don’t like the particular safe
+  `as_mut`/unsafe insert approach that I used. Because of the hashbrown stuff,
+  I have retained `anymap::RawMap` is an alias, and `anymap::raw_hash_map` too.
+  The end result of this is that raw access can finally access things that have
+  stabilised since Rust 1.7.0, and we’ll no longer need to play catch-up.
 
 - Worked around the spurious `where_clauses_object_safety` future-compatibility lint that has been raised since mid-2018.
   If you put `#![allow(where_clauses_object_safety)]` on your binary crates for this reason, you can remove it.