Struct aho_corasick::util::prefilter::Memmem

source ·
struct Memmem(Finder<'static>);
Expand description

A type that wraps a SIMD accelerated single substring search from the memchr crate for use as a prefilter.

Currently, this prefilter is only active for Aho-Corasick searchers with a single pattern. In theory, this could be extended to support searchers that have a common prefix of more than one byte (for one byte, we would use memchr), but it’s not clear if it’s worth it or not.

Also, unfortunately, this currently also requires the ‘std’ feature to be enabled. That’s because memchr doesn’t have a no-std-but-with-alloc mode, and so APIs like Finder::into_owned aren’t available when ‘std’ is disabled. But there should be an ‘alloc’ feature that brings in APIs like Finder::into_owned but doesn’t use std-only features like runtime CPU feature detection.

Tuple Fields§

§0: Finder<'static>

Trait Implementations§

source§

impl Clone for Memmem

source§

fn clone(&self) -> Memmem

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 Memmem

source§

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

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

impl PrefilterI for Memmem

source§

fn find_in(&self, haystack: &[u8], span: Span) -> Candidate

Returns the next possible match candidate. This may yield false positives, so callers must confirm a match starting at the position returned. This, however, must never produce false negatives. That is, this must, at minimum, return the starting position of the next match in the given haystack after or at the given position.

Auto Trait Implementations§

§

impl Freeze for Memmem

§

impl RefUnwindSafe for Memmem

§

impl Send for Memmem

§

impl Sync for Memmem

§

impl Unpin for Memmem

§

impl UnwindSafe for Memmem

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.