Struct aho_corasick::dfa::Builder

source ·
pub struct Builder {
    noncontiguous: Builder,
    start_kind: StartKind,
    byte_classes: bool,
}
Expand description

A builder for configuring an Aho-Corasick DFA.

This builder has a subset of the options available to a AhoCorasickBuilder. Of the shared options, their behavior is identical.

Fields§

§noncontiguous: Builder§start_kind: StartKind§byte_classes: bool

Implementations§

source§

impl Builder

source

pub fn new() -> Builder

Create a new builder for configuring an Aho-Corasick DFA.

source

pub fn build<I, P>(&self, patterns: I) -> Result<DFA, BuildError>
where I: IntoIterator<Item = P>, P: AsRef<[u8]>,

Build an Aho-Corasick DFA from the given iterator of patterns.

A builder may be reused to create more DFAs.

source

pub fn build_from_noncontiguous(&self, nnfa: &NFA) -> Result<DFA, BuildError>

Build an Aho-Corasick DFA from the given noncontiguous NFA.

Note that when this method is used, only the start_kind and byte_classes settings on this builder are respected. The other settings only apply to the initial construction of the Aho-Corasick automaton. Since using this method requires that initial construction has already completed, all settings impacting only initial construction are no longer relevant.

source

fn finish_build_one_start(&self, anchored: Anchored, nnfa: &NFA, dfa: &mut DFA)

Finishes building a DFA for either unanchored or anchored searches, but NOT both.

source

fn finish_build_both_starts(&self, nnfa: &NFA, dfa: &mut DFA)

Finishes building a DFA that supports BOTH unanchored and anchored searches. It works by inter-leaving unanchored states with anchored states in the same transition table. This way, we avoid needing to re-shuffle states afterward to ensure that our states still look like DEAD, MATCH, …, START-UNANCHORED, START-ANCHORED, NON-MATCH, …

Honestly this is pretty inscrutable… Simplifications are most welcome.

source

pub fn match_kind(&mut self, kind: MatchKind) -> &mut Builder

Set the desired match semantics.

This only applies when using Builder::build and not Builder::build_from_noncontiguous.

See AhoCorasickBuilder::match_kind for more documentation and examples.

source

pub fn ascii_case_insensitive(&mut self, yes: bool) -> &mut Builder

Enable ASCII-aware case insensitive matching.

This only applies when using Builder::build and not Builder::build_from_noncontiguous.

See AhoCorasickBuilder::ascii_case_insensitive for more documentation and examples.

source

pub fn prefilter(&mut self, yes: bool) -> &mut Builder

Enable heuristic prefilter optimizations.

This only applies when using Builder::build and not Builder::build_from_noncontiguous.

See AhoCorasickBuilder::prefilter for more documentation and examples.

source

pub fn start_kind(&mut self, kind: StartKind) -> &mut Builder

Sets the starting state configuration for the automaton.

See AhoCorasickBuilder::start_kind for more documentation and examples.

source

pub fn byte_classes(&mut self, yes: bool) -> &mut Builder

A debug setting for whether to attempt to shrink the size of the automaton’s alphabet or not.

This should never be enabled unless you’re debugging an automaton. Namely, disabling byte classes makes transitions easier to reason about, since they use the actual bytes instead of equivalence classes. Disabling this confers no performance benefit at search time.

See AhoCorasickBuilder::byte_classes for more documentation and examples.

Trait Implementations§

source§

impl Clone for Builder

source§

fn clone(&self) -> Builder

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 Builder

source§

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

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

impl Default for Builder

source§

fn default() -> Builder

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