Struct aho_corasick::util::search::Match
source · pub struct Match {
pattern: PatternID,
span: Span,
}
Expand description
A representation of a match reported by an Aho-Corasick searcher.
A match has two essential pieces of information: the PatternID
that
matches, and the Span
of the match in a haystack.
The pattern is identified by an ID, which corresponds to its position
(starting from 0
) relative to other patterns used to construct the
corresponding searcher. If only a single pattern is provided, then all
matches are guaranteed to have a pattern ID of 0
.
Every match reported by a searcher guarantees that its span has its start offset as less than or equal to its end offset.
Fields§
§pattern: PatternID
The pattern ID.
span: Span
The underlying match span.
Implementations§
source§impl Match
impl Match
sourcepub fn new<S: Into<Span>>(pattern: PatternID, span: S) -> Match
pub fn new<S: Into<Span>>(pattern: PatternID, span: S) -> Match
Create a new match from a pattern ID and a span.
This constructor is generic over how a span is provided. While
a Span
may be given directly, one may also provide a
std::ops::Range<usize>
.
§Panics
This panics if end < start
.
§Example
This shows how to create a match for the first pattern in an Aho-Corasick searcher using convenient range syntax.
use aho_corasick::{Match, PatternID};
let m = Match::new(PatternID::ZERO, 5..10);
assert_eq!(0, m.pattern().as_usize());
assert_eq!(5, m.start());
assert_eq!(10, m.end());
sourcepub fn must<S: Into<Span>>(pattern: usize, span: S) -> Match
pub fn must<S: Into<Span>>(pattern: usize, span: S) -> Match
Create a new match from a pattern ID and a byte offset span.
This constructor is generic over how a span is provided. While
a Span
may be given directly, one may also provide a
std::ops::Range<usize>
.
This is like Match::new
, but accepts a usize
instead of a
PatternID
. This panics if the given usize
is not representable
as a PatternID
.
§Panics
This panics if end < start
or if pattern > PatternID::MAX
.
§Example
This shows how to create a match for the third pattern in an Aho-Corasick searcher using convenient range syntax.
use aho_corasick::Match;
let m = Match::must(3, 5..10);
assert_eq!(3, m.pattern().as_usize());
assert_eq!(5, m.start());
assert_eq!(10, m.end());
sourcepub fn pattern(&self) -> PatternID
pub fn pattern(&self) -> PatternID
Returns the ID of the pattern that matched.
The ID of a pattern is derived from the position in which it was
originally inserted into the corresponding searcher. The first pattern
has identifier 0
, and each subsequent pattern is 1
, 2
and so on.
sourcepub fn start(&self) -> usize
pub fn start(&self) -> usize
The starting position of the match.
This is a convenience routine for Match::span().start
.
sourcepub fn end(&self) -> usize
pub fn end(&self) -> usize
The ending position of the match.
This is a convenience routine for Match::span().end
.
sourcepub fn range(&self) -> Range<usize>
pub fn range(&self) -> Range<usize>
Returns the match span as a range.
This is a convenience routine for Match::span().range()
.
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true when the span in this match is empty.
An empty match can only be returned when empty pattern is in the Aho-Corasick searcher.
Trait Implementations§
impl Copy for Match
impl Eq for Match
impl StructuralPartialEq for Match
Auto Trait Implementations§
impl Freeze for Match
impl RefUnwindSafe for Match
impl Send for Match
impl Sync for Match
impl Unpin for Match
impl UnwindSafe for Match
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
)