pub struct Config { /* private fields */ }
Expand description
The configuration for a packed multiple pattern searcher.
The configuration is currently limited only to being able to select the match semantics (leftmost-first or leftmost-longest) of a searcher. In the future, more knobs may be made available.
A configuration produces a packed::Builder
, which in turn can
be used to construct a packed::Searcher
for searching.
§Example
This example shows how to use leftmost-longest semantics instead of the default (leftmost-first).
use aho_corasick::{packed::{Config, MatchKind}, PatternID};
let searcher = Config::new()
.match_kind(MatchKind::LeftmostLongest)
.builder()
.add("foo")
.add("foobar")
.build()?;
let matches: Vec<PatternID> = searcher
.find_iter("foobar")
.map(|mat| mat.pattern())
.collect();
assert_eq!(vec![PatternID::must(1)], matches);
Implementations§
source§impl Config
impl Config
sourcepub fn new() -> Config
pub fn new() -> Config
Create a new default configuration. A default configuration uses leftmost-first match semantics.
sourcepub fn builder(&self) -> Builder
pub fn builder(&self) -> Builder
Create a packed builder from this configuration. The builder can be
used to accumulate patterns and create a Searcher
from them.
sourcepub fn match_kind(&mut self, kind: MatchKind) -> &mut Config
pub fn match_kind(&mut self, kind: MatchKind) -> &mut Config
Set the match semantics for this configuration.
sourcepub fn heuristic_pattern_limits(&mut self, yes: bool) -> &mut Config
pub fn heuristic_pattern_limits(&mut self, yes: bool) -> &mut Config
Request that heuristic limitations on the number of patterns be employed. This useful to disable for benchmarking where one wants to explore how Teddy performs on large number of patterns even if the heuristics would otherwise refuse construction.
This is enabled by default.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)