Trait highway::HighwayHash

source ·
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];

    // 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§

source

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.

source

fn finalize64(self) -> u64

Consumes the hasher to return the 64bit hash

source

fn finalize128(self) -> [u64; 2]

Consumes the hasher to return the 128bit hash

source

fn finalize256(self) -> [u64; 4]

Consumes the hasher to return the 256bit hash

Provided Methods§

source

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.

source

fn hash128(self, data: &[u8]) -> [u64; 2]

Convenience function for hashing all data in a single call and receiving a 128bit hash. Results are equivalent to appending the data manually.

source

fn hash256(self, data: &[u8]) -> [u64; 4]

Convenience function for hashing all data in a single call and receiving a 256bit hash. Results are equivalent to appending the data manually.

Implementors§