use alloc::vec::Vec;
pub trait Hash: Sized + Clone {
const OUTPUT_SIZE: usize;
fn new() -> Self;
fn update(&mut self, data: &[u8]);
fn finalize(self) -> Vec<u8>;
fn digest(data: &[u8]) -> Vec<u8> {
let mut h = Self::new();
h.update(data);
h.finalize()
}
}