Struct aho_corasick::packed::api::Builder
source · pub struct Builder {
config: Config,
inert: bool,
patterns: Patterns,
}
Expand description
A builder for constructing a packed searcher from a collection of patterns.
§Example
This example shows how to use a builder to construct a searcher. By default, leftmost-first match semantics are used.
use aho_corasick::{packed::{Builder, MatchKind}, PatternID};
let searcher = Builder::new()
.add("foobar")
.add("foo")
.build()?;
let matches: Vec<PatternID> = searcher
.find_iter("foobar")
.map(|mat| mat.pattern())
.collect();
assert_eq!(vec![PatternID::ZERO], matches);
Fields§
§config: Config
The configuration of this builder and subsequent matcher.
inert: bool
Set to true if the builder detects that a matcher cannot be built.
patterns: Patterns
The patterns provided by the caller.
Implementations§
source§impl Builder
impl Builder
sourcepub fn new() -> Builder
pub fn new() -> Builder
Create a new builder for constructing a multi-pattern searcher. This constructor uses the default configuration.
fn from_config(config: Config) -> Builder
sourcepub fn build(&self) -> Option<Searcher>
pub fn build(&self) -> Option<Searcher>
Build a searcher from the patterns added to this builder so far.
fn build_teddy(&self, patterns: Arc<Patterns>) -> Option<Searcher>
sourcepub fn add<P: AsRef<[u8]>>(&mut self, pattern: P) -> &mut Builder
pub fn add<P: AsRef<[u8]>>(&mut self, pattern: P) -> &mut Builder
Add the given pattern to this set to match.
The order in which patterns are added is significant. Namely, when using leftmost-first match semantics, then when multiple patterns can match at a particular location, the pattern that was added first is used as the match.
If the number of patterns added exceeds the amount supported by packed
searchers, then the builder will stop accumulating patterns and render
itself inert. At this point, constructing a searcher will always return
None
.
sourcepub fn extend<I, P>(&mut self, patterns: I) -> &mut Builder
pub fn extend<I, P>(&mut self, patterns: I) -> &mut Builder
Add the given iterator of patterns to this set to match.
The iterator must yield elements that can be converted into a &[u8]
.
The order in which patterns are added is significant. Namely, when using leftmost-first match semantics, then when multiple patterns can match at a particular location, the pattern that was added first is used as the match.
If the number of patterns added exceeds the amount supported by packed
searchers, then the builder will stop accumulating patterns and render
itself inert. At this point, constructing a searcher will always return
None
.
sourcepub fn minimum_len(&self) -> usize
pub fn minimum_len(&self) -> usize
Returns the length, in bytes, of the shortest pattern added.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Builder
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
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
)