libmhash 0.2.1

A file hashing library that can do multiple hashes for multile files at the same time.
Documentation
use std::{fmt::Debug, hash::Hash};

use crate::{
    hasher_server::{hasher_wrapper::HasherWrapper, Identifier},
    paranoid_hash::Hasher,
};

pub struct HasherResult<'a, Tag>
where
    Tag: Clone + Eq + Hash + Send,
{
    pub identifier: Identifier,
    pub tag: Tag,
    pub hasher: &'a dyn Hasher,
}

impl<'a> std::fmt::Debug for dyn Hasher + 'a {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{:02x?}", self.digest())
    }
}

impl<'a, Tag> Debug for HasherResult<'a, Tag>
where
    Tag: Clone + Eq + Hash + Send + Debug,
{
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        f.debug_struct("HasherResult")
            .field("identifier", &self.identifier)
            .field("tag", &self.tag)
            .field("hasher", &self.hasher)
            .finish()
    }
}

pub(super) struct HasherResultPrivate<Tag>
where
    Tag: Clone + Eq + Hash + Send,
{
    pub identifier: Identifier,
    pub hasher_wrapper: HasherWrapper<Tag>,
}