pub struct Match { /* private fields */ }
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.

Implementations

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());

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());

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.

The starting position of the match.

This is a convenience routine for Match::span().start.

The ending position of the match.

This is a convenience routine for Match::span().end.

Returns the match span as a range.

This is a convenience routine for Match::span().range().

Returns the span for this match.

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.

Returns the length of this match.

This returns 0 in precisely the cases that is_empty returns true.

Returns a new match with offset added to its span’s start and end values.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Feeds this value into the given [Hasher]. Read more
Feeds a slice of this type into the given [Hasher]. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.