shiny/crates/std/src/arena/intern/hasher.rs
2024-10-16 01:30:01 +03:00

22 lines
434 B
Rust

use std::hash::Hasher;
#[derive(Default, Clone, Copy, PartialEq, Eq)]
pub struct NoHash(Option<u64>);
impl Hasher for NoHash {
fn write_u64(&mut self, i: u64) {
if self.0.is_some() {
panic!("called write_u64 twice")
} else {
self.0 = Some(i);
}
}
fn write(&mut self, _: &[u8]) {
unreachable!()
}
fn finish(&self) -> u64 {
self.0.unwrap()
}
}