pub trait DynDigest {
    // Required methods
    fn update(&mut self, data: &[u8]);
    fn finalize_into(self, buf: &mut [u8]) -> Result<(), InvalidBufferSize>;
    fn finalize_into_reset(
        &mut self,
        out: &mut [u8]
    ) -> Result<(), InvalidBufferSize>;
    fn reset(&mut self);
    fn output_size(&self) -> usize;
    fn box_clone(&self) -> Box<dyn DynDigest, Global>;

    // Provided methods
    fn finalize_reset(&mut self) -> Box<[u8], Global> { ... }
    fn finalize(self: Box<Self, Global>) -> Box<[u8], Global> { ... }
}
Expand description

Modification of the Digest trait suitable for trait objects.

Required Methods§

source

fn update(&mut self, data: &[u8])

Digest input data.

This method can be called repeatedly for use with streaming messages.

source

fn finalize_into(self, buf: &mut [u8]) -> Result<(), InvalidBufferSize>

Write result into provided array and consume the hasher instance.

Returns error if buffer length is not equal to output_size.

source

fn finalize_into_reset( &mut self, out: &mut [u8] ) -> Result<(), InvalidBufferSize>

Write result into provided array and reset the hasher instance.

Returns error if buffer length is not equal to output_size.

source

fn reset(&mut self)

Reset hasher instance to its initial state.

source

fn output_size(&self) -> usize

Get output size of the hasher

source

fn box_clone(&self) -> Box<dyn DynDigest, Global>

Clone hasher state into a boxed trait object

Provided Methods§

source

fn finalize_reset(&mut self) -> Box<[u8], Global>

Retrieve result and reset hasher instance

source

fn finalize(self: Box<Self, Global>) -> Box<[u8], Global>

Retrieve result and consume boxed hasher instance

Implementors§

source§

impl<D> DynDigest for Dwhere D: Update + FixedOutputReset + Reset + Clone + 'static,