use metaldb::BinaryKey;
pub const HASH_SIZE: usize = 32;
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
pub struct Key(pub [u8; HASH_SIZE]);
impl From<[u8; HASH_SIZE]> for Key {
fn from(key: [u8; HASH_SIZE]) -> Self {
Self(key)
}
}
impl BinaryKey for Key {
fn size(&self) -> usize {
HASH_SIZE
}
fn write(&self, buffer: &mut [u8]) -> usize {
buffer.copy_from_slice(&self.0);
self.0.len()
}
fn read(buffer: &[u8]) -> Self::Owned {
let mut buf = [0; 32];
buf.copy_from_slice(&buffer);
Self(buf)
}
}