pub trait Pattern<'a>: Sized {
type Searcher: Searcher<'a>;
// Required method
fn into_searcher(self, haystack: &'a str) -> Self::Searcher;
// Provided methods
fn is_contained_in(self, haystack: &'a str) -> bool { ... }
fn is_prefix_of(self, haystack: &'a str) -> bool { ... }
fn is_suffix_of(self, haystack: &'a str) -> bool
where Self::Searcher: ReverseSearcher<'a> { ... }
}
Expand description
A string pattern.
A Pattern<'a>
expresses that the implementing type
can be used as a string pattern for searching in a &'a str
.
For example, both 'a'
and "aa"
are patterns that
would match at index 1
in the string "baaaab"
.
The trait itself acts as a builder for an associated
Searcher
type, which does the actual work of finding
occurrences of the pattern in a string.
Required Associated Types§
Required Methods§
Sourcefn into_searcher(self, haystack: &'a str) -> Self::Searcher
fn into_searcher(self, haystack: &'a str) -> Self::Searcher
Constructs the associated searcher from
self
and the haystack
to search in.
Provided Methods§
Sourcefn is_contained_in(self, haystack: &'a str) -> bool
fn is_contained_in(self, haystack: &'a str) -> bool
Checks whether the pattern matches anywhere in the haystack
Sourcefn is_prefix_of(self, haystack: &'a str) -> bool
fn is_prefix_of(self, haystack: &'a str) -> bool
Checks whether the pattern matches at the front of the haystack
Sourcefn is_suffix_of(self, haystack: &'a str) -> boolwhere
Self::Searcher: ReverseSearcher<'a>,
fn is_suffix_of(self, haystack: &'a str) -> boolwhere
Self::Searcher: ReverseSearcher<'a>,
Checks whether the pattern matches at the back of the haystack
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<'a> Pattern<'a> for char
Searches for chars that are equal to a given char
impl<'a> Pattern<'a> for char
Searches for chars that are equal to a given char
type Searcher = CharSearcher<'a>
fn into_searcher(self, haystack: &'a str) -> Self::Searcher
fn is_contained_in(self, haystack: &'a str) -> bool
fn is_prefix_of(self, haystack: &'a str) -> bool
fn is_suffix_of(self, haystack: &'a str) -> boolwhere
Self::Searcher: ReverseSearcher<'a>,
Source§impl<'a, 'b> Pattern<'a> for &'b str
Non-allocating substring search.
impl<'a, 'b> Pattern<'a> for &'b str
Non-allocating substring search.
Will handle the pattern ""
as returning empty matches at each character
boundary.
Source§fn is_prefix_of(self, haystack: &'a str) -> bool
fn is_prefix_of(self, haystack: &'a str) -> bool
Checks whether the pattern matches at the front of the haystack
Source§fn is_suffix_of(self, haystack: &'a str) -> bool
fn is_suffix_of(self, haystack: &'a str) -> bool
Checks whether the pattern matches at the back of the haystack
type Searcher = StrSearcher<'a, 'b>
fn into_searcher(self, haystack: &'a str) -> StrSearcher<'a, 'b>
Source§impl<'a, 'b> Pattern<'a> for &'b [char]
Searches for chars that are equal to any of the chars in the array
impl<'a, 'b> Pattern<'a> for &'b [char]
Searches for chars that are equal to any of the chars in the array
type Searcher = CharSliceSearcher<'a, 'b>
fn into_searcher(self, haystack: &'a str) -> CharSliceSearcher<'a, 'b>
fn is_contained_in(self, haystack: &'a str) -> bool
fn is_prefix_of(self, haystack: &'a str) -> bool
fn is_suffix_of(self, haystack: &'a str) -> boolwhere
CharSliceSearcher<'a, 'b>: ReverseSearcher<'a>,
Source§impl<'a, 'b, 'c> Pattern<'a> for &'c &'b str
Delegates to the &str
impl.
impl<'a, 'b, 'c> Pattern<'a> for &'c &'b str
Delegates to the &str
impl.