Struct aho_corasick::packed::teddy::generic::FatMaskBuilder

source ·
struct FatMaskBuilder {
    lo: [u8; 32],
    hi: [u8; 32],
}
Expand description

Represents the low and high nybble masks that will be used during “fat” Teddy search.

Each mask is 32 bytes wide, and at the time of writing, only 256-bit vectors support fat Teddy.

A fat Teddy mask is like a slim Teddy mask, except that instead of repeating the bitsets in the high and low 128-bits in 256-bit vectors, the high and low 128-bit halves each represent distinct buckets. (Bringing the total to 16 instead of 8.) This permits spreading the patterns out a bit more and thus putting less pressure on verification to be fast.

Each byte in the mask corresponds to a 8-bit bitset, where bit i is set if and only if the corresponding nybble is in the ith bucket. The index of the byte (0-15, inclusive) corresponds to the nybble.

Fields§

§lo: [u8; 32]§hi: [u8; 32]

Implementations§

source§

impl FatMaskBuilder

source

fn add(&mut self, bucket: usize, byte: u8)

Update this mask by adding the given byte to the given bucket. The given bucket must be in the range 0-15.

§Panics

When bucket >= 16.

source

unsafe fn build<V: Vector>(&self) -> Mask<V>

Turn this builder into a vector mask.

§Panics

When V represents a vector bigger than what MaskBytes can contain.

§Safety

Callers must ensure that this is okay to call in the current target for the current CPU.

source

unsafe fn from_teddy<const BYTES: usize, V: Vector>( teddy: &Teddy<16>, ) -> [Mask<V>; BYTES]

A convenience function for building N vector masks from a fat Teddy value.

§Panics

When V represents a vector bigger than what MaskBytes can contain.

§Safety

Callers must ensure that this is okay to call in the current target for the current CPU.

Trait Implementations§

source§

impl Clone for FatMaskBuilder

source§

fn clone(&self) -> FatMaskBuilder

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 FatMaskBuilder

source§

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

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

impl Default for FatMaskBuilder

source§

fn default() -> FatMaskBuilder

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

impl Copy for FatMaskBuilder

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.