Struct Match
pub struct Match { /* private fields */ }
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.
Implementations
impl Match
fn new<S: Into<Span>>(pattern: PatternID, span: S) -> MatchCreate a new match from a pattern ID and a span.
This constructor is generic over how a span is provided. While a
Spanmay be given directly, one may also provide astd::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 ; let m = new; assert_eq!; assert_eq!; assert_eq!;fn must<S: Into<Span>>(pattern: usize, span: S) -> MatchCreate a new match from a pattern ID and a byte offset span.
This constructor is generic over how a span is provided. While a
Spanmay be given directly, one may also provide astd::ops::Range<usize>.This is like
Match::new, but accepts ausizeinstead of aPatternID. This panics if the givenusizeis not representable as aPatternID.Panics
This panics if
end < startor ifpattern > PatternID::MAX.Example
This shows how to create a match for the third pattern in an Aho-Corasick searcher using convenient range syntax.
use Match; let m = must; assert_eq!; assert_eq!; assert_eq!;fn pattern(&self) -> PatternIDReturns 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 is1,2and so on.fn start(&self) -> usizeThe starting position of the match.
This is a convenience routine for
Match::span().start.fn end(&self) -> usizeThe ending position of the match.
This is a convenience routine for
Match::span().end.fn range(&self) -> Range<usize>Returns the match span as a range.
This is a convenience routine for
Match::span().range().fn span(&self) -> SpanReturns the span for this match.
fn is_empty(&self) -> boolReturns 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.
fn len(&self) -> usizeReturns the length of this match.
This returns
0in precisely the cases thatis_emptyreturnstrue.fn offset(&self, offset: usize) -> MatchReturns a new match with
offsetadded to its span'sstartandendvalues.Panics
This panics if adding
offsetto either part of this match'sSpanwould result in overflow.
Trait Implementations
impl Clone for Match
fn clone(&self) -> Self
impl Copy for Match
impl Debug for Match
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for Match
impl Hash for Match
fn hash<__H: Hasher>(&self, state: &mut __H)
impl PartialEq for Match
fn eq(&self, other: &Self) -> bool
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 UnsafeUnpin for Match
impl UnwindSafe for Match
Blanket Implementations
impl<T> Any for Match
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Match
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Match
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Match
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Match
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Match
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for Match
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Match
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Match
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>