All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
HashMap
's and HashSet
's Clone
impls. (#252)pub
modifier to BumpWrapper
. (#251)try_insert_no_grow
method to RawTable
. (#229)bumpalo
as an allocator without the nightly
feature. (#231)Default
for RawTable
. (#237)RawTable::get_each_mut
, HashMap::get_each_mut
, and HashMap::get_each_key_value_mut
. (#239)From<HashMap<T, ()>>
for HashSet<T>
. (#235)try_insert
method to HashMap
. (#247)aHash
, which was resulting in inconsistent hashes being generated for a key. (#248)This release was yanked due to inconsistent hashes being generated with the nightly
feature. (#248)
RawTable
, HashSet
and HashMap
over an allocator. (#133)RawTable
's reserve functions once per key-value. (#204)RawTable
(#202):get
: find
and as_ref
get_mut
: find
and as_mut
insert_entry
: insert
and as_mut
remove_entry
: find
and remove
erase_entry
: find
and erase
from_key_hashed_nocheck
's Q: Hash
. (#200)RawTable::drain
safe. (#201)drain_filter
now removes and yields items that do match the predicate, rather than items that don't. This is a breaking change to match the behavior of the drain_filter
methods in std
. (#187)replace_entry_with
to OccupiedEntry
, and and_replace_entry_with
to Entry
. (#190)FusedIterator
and size_hint
for DrainFilter
. (#188)crossbeam
dependency). (#193)ahash
dependency to 0.4. (#198)HashMap::with_hasher
and HashSet::with_hasher
are now const fn
. (#195)T: Hash + Eq
and S: BuildHasher
bounds on HashSet::new
, with_capacity
, with_hasher
, and with_capacity_and_hasher
. (#185)erase
and remove
to RawTable
. (#171)try_with_capacity
to RawTable
. (#174)RawIter
for RawDrain
, RawIntoIter
, and RawParIter
. (#175)reflect_remove
and reflect_insert
to RawIter
. (#175)drain_filter
function to HashSet
. (#179)RawTable::erase_no_drop
in favor of erase
and remove
. (#176)insert_no_grow
is now exposed under the "raw"
feature. (#180)RawTable::par_iter
as unsafe
. (#157)HashMap
. (#159)K: Eq + Hash
bounds on retain
. (#163)HashMap
changes from rust-lang/rust (#164):extend_one
support on nightly.CollectionAllocErr
renamed to TryReserveError
.HashSet::get_or_insert_owned
.Default
for HashSet
no longer requires T: Eq + Hash
and S: BuildHasher
.or_insert_with_key
to Entry
. (#152)Clone
optimization which was unsound. (#154)const-random
by default, which prevented reproducible builds. (#155)repeat
function. (#150)NonNull
for buckets, which improves codegen for iterators. (#148)HashMap::get_key_value_mut
. (#145)Clone
implementation. (#146)drain_filter
function to HashMap
. (#135)ahash
dependency to 0.3. (#141)raw_entry
can now be used without requiring S: BuildHasher
. (#123)RawTable::bucket_index
can now be used under the raw
feature. (#128)ahash-compile-time-rng
feature (enabled by default) which allows disabling the compile-time-rng
feature in ahash
to work around a Cargo bug. (#125)inline-more
feature (enabled by default) which allows choosing a tradeoff between runtime performance and compilation time. (#119)Entry::insert
and RawEntryMut::insert
. (#118)Group::static_empty
was changed from a const
to a static
(#116).std
. (#110)rand
dependency).This release was yanked due to a breaking change for users of no-default-features
.
RawTable
API is available under the “raw” feature. (#108)HashSet
. (#98)hashbrown
is now fully no_std
on recent Rust versions (1.36+). (#96)RawOccupiedEntryMut
now properly implements Send
and Sync
. (#100)lazy_static
version. (#92)Send
trait bounds on IterMut
not matching the libstd one. (#82)insert_with_hasher
to the raw_entry API to allow K: !(Hash + Eq)
. (#54)#[may_dangle]
attributes to match the libstd HashMap
. (#46)raw_entry
support (#31)#[may_dangle]
on nightly (#31)try_reserve
support (#31)IterMut
. (#31)erase_no_drop
implementation. (#26)clear
segfaults when called on an empty table. (#13)erase_no_drop
optimization not triggering in the SSE2 implementation. (#3)Send
and Sync
for hash map and iterator types. (#7)