Struct regex_automata::Match
source · pub struct Match { /* private fields */ }
Expand description
A representation of a match reported by a regex engine.
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 regex engine. If only a single pattern is provided, then all
matches are guaranteed to have a pattern ID of 0
.
Every match reported by a regex engine guarantees that its span has its start offset as less than or equal to its end offset.
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 a regex object using convenient range syntax.
use regex_automata::{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 a regex object using convenient range syntax.
use regex_automata::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 regex engine. 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()
.
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
)