pub struct FibonacciHasheru32 {
hash: u32,
}Fields§
§hash: u32Implementations§
Source§impl FibonacciHasheru32
impl FibonacciHasheru32
const A: u32 = 2_654_435_769u32
const B: u32 = 5u32
Sourcefn push(&mut self, x: u32)
fn push(&mut self, x: u32)
Examples found in repository?
crates/competitive/src/data_structure/fibonacci_hash.rs (line 31)
28 fn write(&mut self, mut bytes: &[u8]) {
29 if bytes.len() % 4 >= 2 {
30 let (chunk, rest) = bytes.split_first_chunk::<2>().unwrap();
31 self.push(u16::from_ne_bytes(*chunk) as u32);
32 bytes = rest;
33 }
34 if bytes.len() % 2 >= 1 {
35 let (chunk, rest) = bytes.split_first_chunk::<1>().unwrap();
36 self.push(u8::from_ne_bytes(*chunk) as u32);
37 bytes = rest;
38 }
39 for chunk in bytes.as_chunks::<4>().0 {
40 self.push(u32::from_ne_bytes(*chunk));
41 }
42 }
43 fn write_u8(&mut self, i: u8) {
44 self.push(i as u32)
45 }
46 fn write_u16(&mut self, i: u16) {
47 self.push(i as u32)
48 }
49 fn write_u32(&mut self, i: u32) {
50 self.push(i)
51 }
52 fn write_u64(&mut self, i: u64) {
53 self.push(i as u32);
54 self.push((i >> 32) as u32);
55 }
56 fn write_u128(&mut self, i: u128) {
57 self.push(i as u32);
58 self.push((i >> 32) as u32);
59 self.push((i >> 64) as u32);
60 self.push((i >> 96) as u32);
61 }Trait Implementations§
Source§impl Debug for FibonacciHasheru32
impl Debug for FibonacciHasheru32
Source§impl Default for FibonacciHasheru32
impl Default for FibonacciHasheru32
Source§fn default() -> FibonacciHasheru32
fn default() -> FibonacciHasheru32
Returns the “default value” for a type. Read more
Source§impl Hasher for FibonacciHasheru32
impl Hasher for FibonacciHasheru32
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 FibonacciHasheru32
impl RefUnwindSafe for FibonacciHasheru32
impl Send for FibonacciHasheru32
impl Sync for FibonacciHasheru32
impl Unpin for FibonacciHasheru32
impl UnwindSafe for FibonacciHasheru32
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