Struct memchr::arch::all::rabinkarp::Hash

source ·
struct Hash(u32);
Expand description

A Rabin-Karp hash. This might represent the hash of a needle, or the hash of a rolling window in the haystack.

Tuple Fields§

§0: u32

Implementations§

source§

impl Hash

source

fn new() -> Hash

Create a new hash that represents the empty string.

source

unsafe fn forward(start: *const u8, end: *const u8) -> Hash

Create a new hash from the bytes given for use in forward searches.

§Safety

The given pointers must be valid to read from within their range.

source

unsafe fn reverse(start: *const u8, end: *const u8) -> Hash

Create a new hash from the bytes given for use in reverse searches.

§Safety

The given pointers must be valid to read from within their range.

source

fn roll(&mut self, finder: &Finder, old: u8, new: u8)

Add ‘new’ and remove ‘old’ from this hash. The given needle hash should correspond to the hash computed for the needle being searched for.

This is meant to be used when the rolling window of the haystack is advanced.

source

fn add(&mut self, byte: u8)

Add a byte to this hash.

source

fn del(&mut self, finder: &Finder, byte: u8)

Remove a byte from this hash. The given needle hash should correspond to the hash computed for the needle being searched for.

Trait Implementations§

source§

impl Clone for Hash

source§

fn clone(&self) -> Hash

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 Debug for Hash

source§

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

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

impl Default for Hash

source§

fn default() -> Hash

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

impl PartialEq for Hash

source§

fn eq(&self, other: &Hash) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Hash

source§

impl Eq for Hash

source§

impl StructuralPartialEq for Hash

Auto Trait Implementations§

§

impl Freeze for Hash

§

impl RefUnwindSafe for Hash

§

impl Send for Hash

§

impl Sync for Hash

§

impl Unpin for Hash

§

impl UnwindSafe for Hash

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