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
impl Builder
sourcepub fn build<I, P>(&self, patterns: I) -> Result<DFA, BuildError>
pub fn build<I, P>(&self, patterns: I) -> Result<DFA, BuildError>
Build an Aho-Corasick DFA from the given iterator of patterns.
A builder may be reused to create more DFAs.
sourcepub fn build_from_noncontiguous(&self, nnfa: &NFA) -> Result<DFA, BuildError>
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.
sourcefn finish_build_one_start(&self, anchored: Anchored, nnfa: &NFA, dfa: &mut DFA)
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.
sourcefn finish_build_both_starts(&self, nnfa: &NFA, dfa: &mut DFA)
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.
sourcepub fn match_kind(&mut self, kind: MatchKind) -> &mut Builder
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.
sourcepub fn ascii_case_insensitive(&mut self, yes: bool) -> &mut Builder
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.
sourcepub fn prefilter(&mut self, yes: bool) -> &mut Builder
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.
sourcepub fn start_kind(&mut self, kind: StartKind) -> &mut Builder
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.
sourcepub fn byte_classes(&mut self, yes: bool) -> &mut Builder
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.