pub struct AddressHasher { /* private fields */ }Available on crate feature
rand and neither target_os=solana nor target_arch=bpf only.Expand description
A faster, but less collision resistant hasher for addresses.
Specialized hasher that uses a random 8 bytes subslice of the address as the hash value. Should not be used when collisions might be used to mount DOS attacks.
Using this results in about 4x faster lookups in a typical hashmap.
Trait Implementations§
Source§impl Default for AddressHasher
impl Default for AddressHasher
Source§fn default() -> AddressHasher
fn default() -> AddressHasher
Returns the “default value” for a type. Read more
Source§impl Hasher for AddressHasher
impl Hasher for AddressHasher
1.26.0 · Source§fn write_u128(&mut self, i: u128)
fn write_u128(&mut self, i: u128)
Writes a single
u128 into this hasher.1.3.0 · Source§fn write_usize(&mut self, i: usize)
fn write_usize(&mut self, i: usize)
Writes a single
usize into this hasher.1.26.0 · Source§fn write_i128(&mut self, i: i128)
fn write_i128(&mut self, i: i128)
Writes a single
i128 into this hasher.1.3.0 · 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 AddressHasher
impl RefUnwindSafe for AddressHasher
impl Send for AddressHasher
impl Sync for AddressHasher
impl Unpin for AddressHasher
impl UnsafeUnpin for AddressHasher
impl UnwindSafe for AddressHasher
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more