pub struct Hasher {
pub(crate) amount: u64,
pub(crate) state: u32,
pub(crate) spec: Option<State>,
}Expand description
Represents an in-progress CRC32 computation.
Fields§
§amount: u64§state: u32§spec: Option<State>Implementations§
Source§impl Hasher
impl Hasher
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new Hasher.
This will perform a CPU feature detection at runtime to select the most optimal implementation for the current processor architecture.
Sourcepub fn new_with_initial(init: u32) -> Self
pub fn new_with_initial(init: u32) -> Self
Create a new Hasher with an initial CRC32 state.
This works just like Hasher::new, except that it allows for an initial
CRC32 state to be passed in.
Sourcepub fn new_with_initial_len(init: u32, amount: u64) -> Self
pub fn new_with_initial_len(init: u32, amount: u64) -> Self
Create a new Hasher with an initial CRC32 state.
As new_with_initial, but also accepts a length (in bytes). The
resulting object can then be used with combine to compute crc(a || b) from crc(a), crc(b), and len(b).
Sourcepub fn total_len(&self) -> u64
pub fn total_len(&self) -> u64
Returns the total number of bytes represented by this hash state.
This includes the length passed to Hasher::new_with_initial_len and
the lengths of any hash states added with Hasher::combine.
Hasher::reset sets the length back to zero.
A state created with Hasher::new_with_initial starts with a length
of zero because the length of the initial state is not known.
use crc32fast::Hasher;
let mut hasher = Hasher::new();
hasher.update(b"hello");
hasher.update(b" world");
assert_eq!(hasher.total_len(), 11);Trait Implementations§
Source§impl Hasher for Hasher
impl Hasher for Hasher
1.26.0 · Source§fn write_u128(&mut self, i: u128)
fn write_u128(&mut self, i: u128)
u128 into this hasher.1.3.0 · Source§fn write_usize(&mut self, i: usize)
fn write_usize(&mut self, i: usize)
usize into this hasher.1.26.0 · Source§fn write_i128(&mut self, i: i128)
fn write_i128(&mut self, i: i128)
i128 into this hasher.1.3.0 · Source§fn write_isize(&mut self, i: isize)
fn write_isize(&mut self, i: isize)
isize into this hasher.Source§fn write_length_prefix(&mut self, len: usize)
fn write_length_prefix(&mut self, len: usize)
hasher_prefixfree_extras)