use super::NodeID;
use std::hash::{BuildHasherDefault, Hasher};
pub type NodeIDMap<V> = std::collections::HashMap<NodeID, V, BuildHasherDefault<NodeIDHasher>>;
pub type NodeIDSet = std::collections::HashSet<NodeID, BuildHasherDefault<NodeIDHasher>>;
#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
pub struct NodeIDHasher(u64);
impl Hasher for NodeIDHasher {
fn write(&mut self, _: &[u8]) {
unreachable!("This Hasher only works with NodeIDs")
}
fn write_u32(&mut self, id: NodeID) {
self.0 = id as u64
}
fn finish(&self) -> u64 {
self.0
}
}