bufhash 0.1.1

Buffered hashing facilities
Documentation
use std::hash::Hasher as _;

#[derive(Debug, Default)]
pub struct Simple(u64);

impl bufhash::partitioned::Hasher<8> for Simple {
    fn write(&mut self, bytes: &[u8; 8]) {
        let data = u64::from_le_bytes(*bytes);
        self.0 = self.0.wrapping_add(data);
    }

    fn finish(&self, bytes: &[u8]) -> u64 {
        self.0 << bytes.len()
    }
}

pub fn main() {
    let mut hasher = bufhash::PartitionedHasher::new(Simple::default());
    hasher.write(b"Hello, world!");
    println!("Result: {:#X}", hasher.finish());
}