Struct aho_corasick::util::prefilter::RareByteOffset

source ·
struct RareByteOffset {
    max: u8,
}
Expand description

Offsets associated with an occurrence of a “rare” byte in any of the patterns used to construct a single Aho-Corasick automaton.

Fields§

§max: u8

The maximum offset at which a particular byte occurs from the start of any pattern. This is used as a shift amount. That is, when an occurrence of this byte is found, the candidate position reported by the prefilter is position_of_byte - max, such that the automaton will begin its search at a position that is guaranteed to observe a match.

To avoid accidentally quadratic behavior, a prefilter is considered ineffective when it is asked to start scanning from a position that it has already scanned past.

Using a u8 here means that if we ever see a pattern that’s longer than 255 bytes, then the entire rare byte prefilter is disabled.

Implementations§

source§

impl RareByteOffset

source

fn new(max: usize) -> Option<RareByteOffset>

Create a new rare byte offset. If the given offset is too big, then None is returned. In that case, callers should render the rare bytes prefilter inert.

Trait Implementations§

source§

impl Clone for RareByteOffset

source§

fn clone(&self) -> RareByteOffset

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 RareByteOffset

source§

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

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

impl Default for RareByteOffset

source§

fn default() -> RareByteOffset

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

impl Copy for RareByteOffset

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.