pub trait Hasher {
// Required methods
fn update(&mut self, data: &[u8]) -> Result<()>;
fn update_last(&mut self, data: &[u8]) -> Result<()>;
fn digest(&self) -> Result<&[u8]>;
fn reset(&mut self);
fn block_size(&self) -> usize;
fn digest_size(&self) -> usize;
}