pub(crate) struct Searcher {
    imp: Arc<dyn SearcherT>,
    memory_usage: usize,
    minimum_len: usize,
}Expand description
A searcher that dispatches to one of several possible Teddy variants.
Fields§
§imp: Arc<dyn SearcherT>The Teddy variant we use. We use dynamic dispatch under the theory that it results in better codegen then a enum, although this is a specious claim.
This Searcher is essentially a wrapper for a SearcherT trait
object. We just make memory_usage and minimum_len available without
going through dynamic dispatch.
memory_usage: usizeTotal heap memory used by the Teddy variant.
minimum_len: usizeThe minimum haystack length this searcher can handle. It is intended for callers to use some other search routine (such as Rabin-Karp) in cases where the haystack (or remainer of the haystack) is too short.
Implementations§
Source§impl Searcher
 
impl Searcher
Sourcepub(crate) fn find(&self, haystack: &[u8], at: usize) -> Option<Match>
 
pub(crate) fn find(&self, haystack: &[u8], at: usize) -> Option<Match>
Look for the leftmost occurrence of any pattern in this search in the given haystack starting at the given position.
§Panics
This panics when haystack[at..].len() is less than the minimum length
for this haystack.
Sourcepub(crate) fn memory_usage(&self) -> usize
 
pub(crate) fn memory_usage(&self) -> usize
Returns the approximate total amount of heap used by this type, in units of bytes.
Sourcepub(crate) fn minimum_len(&self) -> usize
 
pub(crate) fn minimum_len(&self) -> usize
Returns the minimum length, in bytes, that a haystack must be in order to use it with this searcher.