pub struct FibonacciHasheru64 {
hash: u64,
}Fields§
§hash: u64Implementations§
Source§impl FibonacciHasheru64
impl FibonacciHasheru64
const A: u64 = 11_400_714_819_323_198_485u64
const B: u32 = 5u32
Sourcefn push(&mut self, x: u64)
fn push(&mut self, x: u64)
Examples found in repository?
crates/competitive/src/data_structure/fibonacci_hash.rs (line 108)
105 fn write(&mut self, mut bytes: &[u8]) {
106 if bytes.len() % 8 >= 4 {
107 let (chunk, rest) = bytes.split_first_chunk::<4>().unwrap();
108 self.push(u32::from_ne_bytes(*chunk) as u64);
109 bytes = rest;
110 }
111 if bytes.len() % 4 >= 2 {
112 let (chunk, rest) = bytes.split_first_chunk::<2>().unwrap();
113 self.push(u16::from_ne_bytes(*chunk) as u64);
114 bytes = rest;
115 }
116 if bytes.len() % 2 >= 1 {
117 let (chunk, rest) = bytes.split_first_chunk::<1>().unwrap();
118 self.push(u8::from_ne_bytes(*chunk) as u64);
119 bytes = rest;
120 }
121 for chunk in bytes.as_chunks::<8>().0 {
122 self.push(u64::from_ne_bytes(*chunk));
123 }
124 }
125 fn write_u8(&mut self, i: u8) {
126 self.push(i as u64)
127 }
128 fn write_u16(&mut self, i: u16) {
129 self.push(i as u64)
130 }
131 fn write_u32(&mut self, i: u32) {
132 self.push(i as u64)
133 }
134 fn write_u64(&mut self, i: u64) {
135 self.push(i);
136 }
137 fn write_u128(&mut self, i: u128) {
138 self.push(i as u64);
139 self.push((i >> 64) as u64);
140 }Trait Implementations§
Source§impl Debug for FibonacciHasheru64
impl Debug for FibonacciHasheru64
Source§impl Default for FibonacciHasheru64
impl Default for FibonacciHasheru64
Source§fn default() -> FibonacciHasheru64
fn default() -> FibonacciHasheru64
Returns the “default value” for a type. Read more
Source§impl Hasher for FibonacciHasheru64
impl Hasher for FibonacciHasheru64
Source§fn write_u128(&mut self, i: u128)
fn write_u128(&mut self, i: u128)
Writes a single
u128 into this hasher.Source§fn write_usize(&mut self, i: usize)
fn write_usize(&mut self, i: usize)
Writes a single
usize into this hasher.Source§fn write_i128(&mut self, i: i128)
fn write_i128(&mut self, i: i128)
Writes a single
i128 into this hasher.Source§fn write_isize(&mut self, i: isize)
fn write_isize(&mut self, i: isize)
Writes a single
isize into this hasher.Source§fn write_length_prefix(&mut self, len: usize)
fn write_length_prefix(&mut self, len: usize)
🔬This is a nightly-only experimental API. (
hasher_prefixfree_extras)Writes a length prefix into this hasher, as part of being prefix-free. Read more
Auto Trait Implementations§
impl Freeze for FibonacciHasheru64
impl RefUnwindSafe for FibonacciHasheru64
impl Send for FibonacciHasheru64
impl Sync for FibonacciHasheru64
impl Unpin for FibonacciHasheru64
impl UnwindSafe for FibonacciHasheru64
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more