adler32

Struct RollingAdler32

Source
pub struct RollingAdler32 { /* private fields */ }
Expand description

A rolling version of the Adler32 hash, which can ‘forget’ past bytes.

Calling remove() will update the hash to the value it would have if that past byte had never been fed to the algorithm. This allows you to get the hash of a rolling window very efficiently.

Implementations§

Source§

impl RollingAdler32

Source

pub fn new() -> RollingAdler32

Creates an empty Adler32 context (with hash 1).

Source

pub fn from_value(adler32: u32) -> RollingAdler32

Creates an Adler32 context with the given initial value.

Source

pub fn from_buffer(buffer: &[u8]) -> RollingAdler32

Convenience function initializing a context from the hash of a buffer.

Source

pub fn hash(&self) -> u32

Returns the current hash.

Source

pub fn remove(&mut self, size: usize, byte: u8)

Removes the given byte that was fed to the algorithm size bytes ago.

Source

pub fn update(&mut self, byte: u8)

Feeds a new byte to the algorithm to update the hash.

Source

pub fn update_buffer(&mut self, buffer: &[u8])

Feeds a vector of bytes to the algorithm to update the hash.

Trait Implementations§

Source§

impl Clone for RollingAdler32

Source§

fn clone(&self) -> RollingAdler32

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 Default for RollingAdler32

Source§

fn default() -> RollingAdler32

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

Auto Trait Implementations§

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<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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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,

Source§

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>,

Source§

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>,

Source§

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.