pub struct HashProxy<'a> { /* private fields */ }Expand description
A proxy type that wraps &mut dyn Hasher and implements Hasher.
This allows storing a concrete Hash::hash::<HashProxy> function pointer
in the vtable, avoiding the generic H: Hasher parameter.
§Example
ⓘ
// In vtable builder:
.hash(<MyType as Hash>::hash::<HashProxy>)
// At call site:
let mut proxy = HashProxy::new(&mut my_hasher);
unsafe { (vtable.hash.unwrap())(ptr, &mut proxy) };Implementations§
Trait Implementations§
Source§impl Hasher for HashProxy<'_>
impl Hasher for HashProxy<'_>
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<'a> Freeze for HashProxy<'a>
impl<'a> !RefUnwindSafe for HashProxy<'a>
impl<'a> !Send for HashProxy<'a>
impl<'a> !Sync for HashProxy<'a>
impl<'a> Unpin for HashProxy<'a>
impl<'a> !UnwindSafe for HashProxy<'a>
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