pub unsafe trait ReverseSearcher<'a>: Searcher<'a> { fn next_back(&mut self) -> SearchStep; fn next_match_back(&mut self) -> Option<(usize, usize)> { ... } fn next_reject_back(&mut self) -> Option<(usize, usize)> { ... } }
A reverse searcher for a string pattern.
This trait provides methods for searching for non-overlapping matches of a pattern starting from the back (right) of a string.
It will be implemented by associated Searcher
types of the Pattern
trait if the pattern supports searching for it from the back.
The index ranges returned by this trait are not required to exactly match those of the forward search in reverse.
For the reason why this trait is marked unsafe, see them parent trait Searcher
.
fn next_back(&mut self) -> SearchStep
Performs the next search step starting from the back.
Match(a, b)
if haystack[a..b]
matches the pattern.Reject(a, b)
if haystack[a..b]
can not match the pattern, even partially.Done
if every byte of the haystack has been visitedThe stream of Match
and Reject
values up to a Done
will contain index ranges that are adjacent, non-overlapping, covering the whole haystack, and laying on utf8 boundaries.
A Match
result needs to contain the whole matched pattern, however Reject
results may be split up into arbitrary many adjacent fragments. Both ranges may have zero length.
As an example, the pattern "aaa"
and the haystack "cbaaaaab"
might produce the stream [Reject(7, 8), Match(4, 7), Reject(1, 4), Reject(0, 1)]
fn next_match_back(&mut self) -> Option<(usize, usize)>
Find the next Match
result. See next_back()
fn next_reject_back(&mut self) -> Option<(usize, usize)>
Find the next Reject
result. See next_back()
impl<'a> ReverseSearcher<'a> for CharSearcher<'a>
impl<'a, 'b> ReverseSearcher<'a> for CharSliceSearcher<'a, 'b>
impl<'a, F> ReverseSearcher<'a> for CharPredicateSearcher<'a, F> where F: FnMut(char) -> bool
impl<'a, 'b> ReverseSearcher<'a> for StrSearcher<'a, 'b>
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/collections/str/pattern/trait.ReverseSearcher.html