p3_symmetric

Trait CryptographicHasher

Source
pub trait CryptographicHasher<Item: Clone, Out>: Clone {
    // Required method
    fn hash_iter<I>(&self, input: I) -> Out
       where I: IntoIterator<Item = Item>;

    // Provided methods
    fn hash_iter_slices<'a, I>(&self, input: I) -> Out
       where I: IntoIterator<Item = &'a [Item]>,
             Item: 'a { ... }
    fn hash_slice(&self, input: &[Item]) -> Out { ... }
    fn hash_item(&self, input: Item) -> Out { ... }
}

Required Methods§

Source

fn hash_iter<I>(&self, input: I) -> Out
where I: IntoIterator<Item = Item>,

Provided Methods§

Source

fn hash_iter_slices<'a, I>(&self, input: I) -> Out
where I: IntoIterator<Item = &'a [Item]>, Item: 'a,

Source

fn hash_slice(&self, input: &[Item]) -> Out

Source

fn hash_item(&self, input: Item) -> Out

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<F, Inner> CryptographicHasher<F, [u8; 32]> for SerializingHasher32<Inner>
where F: PrimeField32, Inner: CryptographicHasher<u8, [u8; 32]>,

Source§

impl<F, Inner> CryptographicHasher<F, [u8; 32]> for SerializingHasher64<Inner>
where F: PrimeField64, Inner: CryptographicHasher<u8, [u8; 32]>,

Source§

impl<F, PF, P, const WIDTH: usize, const RATE: usize, const OUT: usize> CryptographicHasher<F, [PF; OUT]> for MultiField32PaddingFreeSponge<F, PF, P, WIDTH, RATE, OUT>

Source§

impl<P, PW, Inner> CryptographicHasher<P, [PW; 4]> for SerializingHasher32To64<Inner>
where P: PackedValue, P::Value: PrimeField32, PW: PackedValue<Value = u64>, Inner: CryptographicHasher<PW, [PW; 4]>,

Source§

impl<P, PW, Inner> CryptographicHasher<P, [PW; 4]> for SerializingHasher64<Inner>
where P: PackedValue, P::Value: PrimeField64, PW: PackedValue<Value = u64>, Inner: CryptographicHasher<PW, [PW; 4]>,

Source§

impl<P, PW, Inner> CryptographicHasher<P, [PW; 8]> for SerializingHasher32<Inner>
where P: PackedValue, P::Value: PrimeField32, PW: PackedValue<Value = u32>, Inner: CryptographicHasher<PW, [PW; 8]>,

Source§

impl<T, P, const WIDTH: usize, const RATE: usize, const OUT: usize> CryptographicHasher<T, [T; OUT]> for PaddingFreeSponge<P, WIDTH, RATE, OUT>