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}