Support hashbrown
hash maps and sets with or without use_std
#1051
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add an optional
hashbrown
feature that switches the underlying hash map implementation fromstd::collections
tohashbrown
and makes items that depend on hash maps available withoutuse_std
(although it still requires and implicitly enablesuse_alloc
).This addresses the motivating use case of #605 (which is the same use case that I am interested in) but does not implement a generic approach as the issue suggests. #901 would be a better solution long term and would make these changes obsolete, but the PR appears to be stalled and I wanted a simple solution that allows using APIs like
unique
/unique_by
withno_std
now.It also partially addresses #322 because enabling this feature does switch to a faster hash algorithm, it just doesn't allow to specify which one exactly (currently the default hasher in
hashbrown
isfoldhash
, so this is what's going to be used until/unless changed upstream in the future).TODO:
--all-features
/-F hashbrown
use_std
I'm opening a draft PR early because I'd like to get feedback on whether it's something you want to have.