libmhash 0.2.1

A file hashing library that can do multiple hashes for multile files at the same time.
Documentation
#![macro_use]

use ambassador::delegatable_trait;

use crate::Result;

#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
pub enum HasherTag {
    CRC32,
    CRC32C,
    MD2,
    MD4,
    MD5,
    SHA1,
    SHA2_224,
    SHA2_256,
    SHA2_384,
    SHA2_512,
    SHA3_224,
    SHA3_256,
    SHA3_384,
    SHA3_512,
}

#[delegatable_trait]
pub trait Hasher {
    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;
}