Struct anyhash::HasherBe

source ·
pub struct HasherBe<T, H: Hasher<T>>(/* private fields */);
Expand description

Wrapper for types implementing Hasher<T> to change native endian writes to big endian.

This can aid in creating an endian independent hash, but be aware that types may write endian dependent data in ways that can’t be detected or fixed by this wrapper. The wrapped hasher’s algorithm must also be endian independent for this to work.

Hashers with endian independent algorithms implement the EndianIndependentAlgorithm trait.

Implementations§

source§

impl<T, H: Hasher<T>> HasherBe<T, H>

source

pub const fn new(hasher: H) -> Self

Create a new HasherBe.

Trait Implementations§

source§

impl<T, H: Hasher<T> + Clone> Clone for HasherBe<T, H>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T, H: Hasher<T> + Debug> Debug for HasherBe<T, H>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T, H: Hasher<T> + Default> Default for HasherBe<T, H>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<T, H: Hasher<T>> Hasher<T> for HasherBe<T, H>

source§

fn finish(&self) -> T

Returns the hash value for the values written so far.
source§

impl<T, H: Hasher<T>> Hasher for HasherBe<T, H>
where Self: Hasher<u64>,

source§

fn finish(&self) -> u64

Returns the hash value for the values written so far. Read more
source§

fn write(&mut self, bytes: &[u8])

Writes some data into this Hasher. Read more
source§

fn write_u8(&mut self, i: u8)

Writes a single u8 into this hasher.
source§

fn write_u16(&mut self, i: u16)

Writes a single u16 into this hasher.
source§

fn write_u32(&mut self, i: u32)

Writes a single u32 into this hasher.
source§

fn write_u64(&mut self, i: u64)

Writes a single u64 into this hasher.
source§

fn write_u128(&mut self, i: u128)

Writes a single u128 into this hasher.
source§

fn write_usize(&mut self, i: usize)

Writes a single usize into this hasher.
source§

fn write_i8(&mut self, i: i8)

Writes a single i8 into this hasher.
source§

fn write_i16(&mut self, i: i16)

Writes a single i16 into this hasher.
source§

fn write_i32(&mut self, i: i32)

Writes a single i32 into this hasher.
source§

fn write_i64(&mut self, i: i64)

Writes a single i64 into this hasher.
source§

fn write_i128(&mut self, i: i128)

Writes a single i128 into this hasher.
source§

fn write_isize(&mut self, i: isize)

Writes a single isize into this hasher.
source§

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
source§

fn write_str(&mut self, s: &str)

🔬This is a nightly-only experimental API. (hasher_prefixfree_extras)
Writes a single str into this hasher. Read more
source§

impl<T, H: Hasher<T>> HasherWrite for HasherBe<T, H>

source§

fn write_u8(&mut self, i: u8)

Writes a single u8 into this hasher.

source§

fn write_u16(&mut self, i: u16)

Writes a single u16 into this hasher in big endian byte order.

source§

fn write_u32(&mut self, i: u32)

Writes a single u32 into this hasher in big endian byte order.

source§

fn write_u64(&mut self, i: u64)

Writes a single u64 into this hasher in big endian byte order.

source§

fn write_u128(&mut self, i: u128)

Writes a single u128 into this hasher in big endian byte order.

source§

fn write_usize(&mut self, i: usize)

Writes a single usize into this hasher in big endian byte order.

source§

fn write_i8(&mut self, i: i8)

Writes a single i8 into this hasher.

source§

fn write_i16(&mut self, i: i16)

Writes a single i16 into this hasher in big endian byte order.

source§

fn write_i32(&mut self, i: i32)

Writes a single i32 into this hasher in big endian byte order.

source§

fn write_i64(&mut self, i: i64)

Writes a single i64 into this hasher in big endian byte order.

source§

fn write_i128(&mut self, i: i128)

Writes a single i128 into this hasher in big endian byte order.

source§

fn write_isize(&mut self, i: isize)

Writes a single isize into this hasher in big endian byte order.

source§

fn write_length_prefix(&mut self, len: usize)

Writes a length prefix into this hasher in big endian byte order.

source§

fn write_str(&mut self, s: &str)

Writes a single str into this hasher in big endian byte order.

source§

fn write(&mut self, bytes: &[u8])

Writes some data into this hasher.
source§

impl<T, H: Hasher<T> + EndianIndependentAlgorithm> EndianIndependentAlgorithm for HasherBe<T, H>

source§

impl<T, H: Hasher<T>> EndianIndependentWrites for HasherBe<T, H>

Auto Trait Implementations§

§

impl<T, H> Freeze for HasherBe<T, H>
where H: Freeze,

§

impl<T, H> RefUnwindSafe for HasherBe<T, H>
where H: RefUnwindSafe,

§

impl<T, H> Send for HasherBe<T, H>
where H: Send,

§

impl<T, H> Sync for HasherBe<T, H>
where H: Sync,

§

impl<T, H> Unpin for HasherBe<T, H>
where H: Unpin,

§

impl<T, H> UnwindSafe for HasherBe<T, H>
where H: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<U> As for U

source§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T, H> EndianIndependentHasher<T> for H