Struct aho_corasick::packed::teddy::generic::SlimMaskBuilder

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

Represents the low and high nybble masks that will be used during search. Each mask is 32 bytes wide, although only the first 16 bytes are used for 128-bit vectors.

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.

Each mask is used as the target of a shuffle, where the indices for the shuffle are taken from the haystack. AND’ing the shuffles for both the low and high masks together also results in 8-bit bitsets, but where bit i is set if and only if the correspond byte is in the ith bucket.

Fields§

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

Implementations§

source§

impl SlimMaskBuilder

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

§Panics

When bucket >= 8.

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<8>, ) -> [Mask<V>; BYTES]

A convenience function for building N vector masks from a slim 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 SlimMaskBuilder

source§

fn clone(&self) -> SlimMaskBuilder

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 SlimMaskBuilder

source§

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

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

impl Default for SlimMaskBuilder

source§

fn default() -> SlimMaskBuilder

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.