use std::hash::Hasher;
#[derive(Debug, Eq)]
pub struct U8SliceKey<'a>(pub &'a [u8]);
impl PartialEq for U8SliceKey<'_> {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl std::hash::Hash for U8SliceKey<'_> {
fn hash<H: Hasher>(&self, state: &mut H) {
self.0.hash(state);
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::collections::HashMap;
#[test]
fn test_u8_slice_key() {
let mut map = HashMap::new();
map.insert(U8SliceKey(&[1, 2, 3]), 42);
assert_eq!(map.get(&U8SliceKey(&[4, 5, 6])), None);
assert_ne!(U8SliceKey(&[1]), U8SliceKey(&[2]));
}
}