pub trait HighwayHash: Sized {
// Required methods
fn append(&mut self, data: &[u8]);
fn finalize64(self) -> u64;
fn finalize128(self) -> [u64; 2];
fn finalize256(self) -> [u64; 4];
fn checkpoint(&self) -> [u8; 164];
// Provided methods
fn hash64(self, data: &[u8]) -> u64 { ... }
fn hash128(self, data: &[u8]) -> [u64; 2] { ... }
fn hash256(self, data: &[u8]) -> [u64; 4] { ... }
}
Expand description
The common set of methods for hashing data.
Required Methods§
Sourcefn append(&mut self, data: &[u8])
fn append(&mut self, data: &[u8])
Adds data to be hashed. If it is important, the performance characteristics of this function differs depending on the amount of data previously hashed and the amount of data to be hashed. For instance, if one appends 50, 1 byte slices then appending the 32nd byte will have a performance outlier as the internal 32 byte block is complete and internally processed.
Sourcefn finalize64(self) -> u64
fn finalize64(self) -> u64
Consumes the hasher to return the 64bit hash
Sourcefn finalize128(self) -> [u64; 2]
fn finalize128(self) -> [u64; 2]
Consumes the hasher to return the 128bit hash
Sourcefn finalize256(self) -> [u64; 4]
fn finalize256(self) -> [u64; 4]
Consumes the hasher to return the 256bit hash
Sourcefn checkpoint(&self) -> [u8; 164]
fn checkpoint(&self) -> [u8; 164]
Serialize the hasher state to be persisted or resumed by another hasher
Note: At this time, the checkpoint format and API should be considered experimental. The format may change in future versions.
Provided Methods§
Sourcefn hash64(self, data: &[u8]) -> u64
fn hash64(self, data: &[u8]) -> u64
Convenience function for hashing all data in a single call and receiving a 64bit hash. Results are equivalent to appending the data manually.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.