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.
v0.7.1 - 2020-03-16
- Added
HashMap::get_key_value_mut
. (#145)
- Optimized
Clone
implementation. (#146)
v0.7.0 - 2020-01-31
- Added a
drain_filter
function toHashMap
. (#135)
- Updated
ahash
dependency to 0.3. (#141) - Optimized set union and intersection. (#130)
raw_entry
can now be used without requiringS: BuildHasher
. (#123)RawTable::bucket_index
can now be used under theraw
feature. (#128)
v0.6.3 - 2019-10-31
- Added an
ahash-compile-time-rng
feature (enabled by default) which allows disabling thecompile-time-rng
feature inahash
to work around a Cargo bug. (#125)
v0.6.2 - 2019-10-23
- Added an
inline-more
feature (enabled by default) which allows choosing a tradeoff between runtime performance and compilation time. (#119)
v0.6.1 - 2019-10-04
- Added
Entry::insert
andRawEntryMut::insert
. (#118)
Group::static_empty
was changed from aconst
to astatic
(#116).
v0.6.0 - 2019-08-13
- Fixed AHash accidentally depending on
std
. (#110)
- The minimum Rust version has been bumped to 1.32 (due to
rand
dependency).
v0.5.1 - 2019-08-04
This release was yanked due to a breaking change for users of no-default-features
.
- The experimental and unsafe
RawTable
API is available under the "raw" feature. (#108) - Added entry-like methods for
HashSet
. (#98)
- Changed the default hasher from FxHash to AHash. (#97)
hashbrown
is now fullyno_std
on recent Rust versions (1.36+). (#96)
- We now avoid growing the table during insertions when it wasn't necessary. (#106)
RawOccupiedEntryMut
now properly implementsSend
andSync
. (#100)- Relaxed
lazy_static
version. (#92)
v0.5.0 - 2019-06-12
- Resize with a more conservative amount of space after deletions. (#86)
- Exposed the Layout of the failed allocation in CollectionAllocErr::AllocErr. (#89)
v0.4.0 - 2019-05-30
- Fixed
Send
trait bounds onIterMut
not matching the libstd one. (#82)
v0.3.1 - 2019-05-30
- Fixed incorrect use of slice in unsafe code. (#80)
v0.3.0 - 2019-04-23
- Changed shrink_to to not panic if min_capacity < capacity. (#67)
- Worked around emscripten bug emscripten-core/emscripten-fastcomp#258. (#66)
v0.2.2 - 2019-04-16
- Inlined non-nightly lowest_set_bit_nonzero. (#64)
- Fixed build on latest nightly. (#65)
v0.2.1 - 2019-04-14
- Use for_each in map Extend and FromIterator. (#58)
- Improved worst-case performance of HashSet.is_subset. (#61)
- Removed incorrect debug_assert. (#60)
v0.2.0 - 2019-03-31
- The code has been updated to Rust 2018 edition. This means that the minimum Rust version has been bumped to 1.31 (2018 edition).
- Added
insert_with_hasher
to the raw_entry API to allowK: !(Hash + Eq)
. (#54) - Added support for using hashbrown as the hash table implementation in libstd. (#46)
- Fixed cargo build with minimal-versions. (#45)
- Fixed
#[may_dangle]
attributes to match the libstdHashMap
. (#46) - ZST keys and values are now handled properly. (#46)
v0.1.8 - 2019-01-14
- Rayon parallel iterator support (#37)
raw_entry
support (#31)#[may_dangle]
on nightly (#31)try_reserve
support (#31)
- Fixed variance on
IterMut
. (#31)
v0.1.7 - 2018-12-05
- Fixed non-SSE version of convert_special_to_empty_and_full_to_deleted. (#32)
- Fixed overflow in rehash_in_place. (#33)
v0.1.6 - 2018-11-17
- Fixed compile error on nightly. (#29)
v0.1.5 - 2018-11-08
- Fixed subtraction overflow in generic::Group::match_byte. (#28)
v0.1.4 - 2018-11-04
- Fixed a bug in the
erase_no_drop
implementation. (#26)
v0.1.3 - 2018-11-01
- Serde support. (#14)
- Make the compiler inline functions more aggressively. (#20)
v0.1.2 - 2018-10-31
clear
segfaults when called on an empty table. (#13)
v0.1.1 - 2018-10-30
erase_no_drop
optimization not triggering in the SSE2 implementation. (#3)- Missing
Send
andSync
for hash map and iterator types. (#7) - Bug when inserting into a table smaller than the group width. (#5)
- Initial release