referrerpolicy=no-referrer-when-downgrade
sp_core

Trait Hasher

pub trait Hasher: Sync + Send {
    type Out: AsRef<[u8]> + AsMut<[u8]> + Default + MaybeDebug + Ord + PartialEq + Eq + Hash + Send + Sync + Clone + Copy;
    type StdHasher: Sync + Send + Default + Hasher;

    const LENGTH: usize;

    // Required method
    fn hash(x: &[u8]) -> Self::Out;
}
Expand description

Trait describing an object that can hash a slice of bytes. Used to abstract other types over the hashing algorithm. Defines a single hash method and an Out associated type with the necessary bounds.

Required Associated Constants§

const LENGTH: usize

The length in bytes of the Hasher output.

Required Associated Types§

type Out: AsRef<[u8]> + AsMut<[u8]> + Default + MaybeDebug + Ord + PartialEq + Eq + Hash + Send + Sync + Clone + Copy

The output type of the Hasher

type StdHasher: Sync + Send + Default + Hasher

What to use to build HashMaps with this Hasher.

Required Methods§

fn hash(x: &[u8]) -> Self::Out

Compute the hash of the provided slice of bytes returning the Out type of the Hasher.

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.

Implementors§

Source§

impl Hasher for Blake2Hasher

Source§

const LENGTH: usize = 32usize

Source§

type Out = H256

Source§

type StdHasher = Hash256StdHasher

Source§

impl Hasher for KeccakHasher

Source§

const LENGTH: usize = 32usize

Source§

type Out = H256

Source§

type StdHasher = Hash256StdHasher

impl Hasher for BlakeTwo256

impl Hasher for Keccak256