22 lines
434 B
Rust
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()
|
|
}
|
|
}
|