Trait digest::VariableOutput
source · [−]pub trait VariableOutput: Sized {
fn new(output_size: usize) -> Result<Self, InvalidOutputSize>;
fn output_size(&self) -> usize;
fn finalize_variable(self, f: impl FnOnce(&[u8]));
fn finalize_variable_reset(&mut self, f: impl FnOnce(&[u8]));
fn finalize_boxed(self) -> Box<[u8]> { ... }
fn finalize_boxed_reset(&mut self) -> Box<[u8]> { ... }
}
Expand description
Trait for returning digest result with the variable size
Required methods
fn new(output_size: usize) -> Result<Self, InvalidOutputSize>
fn new(output_size: usize) -> Result<Self, InvalidOutputSize>
Create new hasher instance with the given output size.
It will return Err(InvalidOutputSize)
in case if hasher can not return
specified output size. It will always return an error if output size
equals to zero.
fn output_size(&self) -> usize
fn output_size(&self) -> usize
Get output size of the hasher instance provided to the new
method
Retrieve result via closure and consume hasher.
Closure is guaranteed to be called, length of the buffer passed to it
will be equal to output_size
.
Provided methods
Retrieve result into a boxed slice and consume hasher.
Box<[u8]>
is used instead of Vec<u8>
to save stack space, since
they have size of 2 and 3 words respectively.