Skip to main content

luaur_common/records/
dense_hash_pointer.rs

1#[allow(non_camel_case_types)]
2#[derive(Debug, Clone, Copy, Default)]
3pub struct DenseHashPointer;
4
5impl DenseHashPointer {
6    #[inline]
7    pub fn hash(&self, key: *const core::ffi::c_void) -> usize {
8        let addr = key as usize;
9        (addr >> 4) ^ (addr >> 9)
10    }
11}
12
13impl DenseHashPointer {
14    #[allow(non_snake_case)]
15    #[inline]
16    pub fn call(&self, key: *const core::ffi::c_void) -> usize {
17        self.hash(key)
18    }
19}