pub trait RollingHasher {
type T;
type Hash: Copy + Eq;
// Required methods
fn init_with_rng(len: usize, rng: &mut Xorshift);
fn ensure(len: usize);
fn hash_sequence<I>(iter: I) -> HashedSequence<Self>
where I: IntoIterator<Item = Self::T>;
fn hash_substr(hashed: &[Self::Hash]) -> Hashed<Self>;
fn concat_hash(x: &Hashed<Self>, y: &Hashed<Self>) -> Hashed<Self>;
fn empty_hash() -> Hashed<Self>;
// Provided method
fn init(len: usize) { ... }
}
Required Associated Types§
Required Methods§
fn init_with_rng(len: usize, rng: &mut Xorshift)
fn ensure(len: usize)
fn hash_sequence<I>(iter: I) -> HashedSequence<Self>where
I: IntoIterator<Item = Self::T>,
fn hash_substr(hashed: &[Self::Hash]) -> Hashed<Self>
fn concat_hash(x: &Hashed<Self>, y: &Hashed<Self>) -> Hashed<Self>
fn empty_hash() -> Hashed<Self>
Provided Methods§
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.