Open
Description
Feature gate: #![feature(hasher_prefixfree_extras)]
This is a tracking issue for the new provided methods on Hasher
added to fix #94026
write_str
lets the hasher customize how it works withstr
, so it can use theb'\xFF'
trick if it's byte-wise, or a different approach if it does chunked rounds.write_length_prefix
gives an obvious choice when implementingHash
for collections (likeVecDeque
) which can't just use the slice hash, and allows the hasher to optimize how best to represent the length.
Public API
// core::hash
pub trait Hasher {
// ... existing stuff ...
fn write_length_prefix(&mut self, len: usize);
fn write_str(&mut self, s: &str);
}
Steps / History
- Implementation: Add a dedicated length-prefixing method to
Hasher
#94598 - Final comment period (FCP)
- Stabilization PR
Unresolved Questions
- What should the
write_str
provided implementation be? It was added matching the previousimpl Hash for str
behaviour to get in without breaking hash checks (like the one incargo
), but that's not always prefix-free (it depends on the round strategy), so there's an argument that a different implementation would be better.
Activity