Trait Pattern
pub trait Pattern: Sized
A string pattern.
A Pattern expresses that the implementing type
can be used as a string pattern for searching in a [&str][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.
Depending on the type of the pattern, the behavior of methods like
str::find and str::contains can change. The table below describes
some of those behaviors.
| Pattern type | Match condition |
|---|---|
&str |
is substring |
char |
is contained in string |
&[char] |
any char in slice is contained in string |
F: FnMut(char) -> bool |
F returns true for a char in string |
&&str |
is substring |
&String |
is substring |
Examples
// &str
assert_eq!;
assert_eq!;
// char
assert_eq!;
assert_eq!;
assert_eq!;
// &[char; N]
assert_eq!;
assert_eq!;
assert_eq!;
// &[char]
assert_eq!;
assert_eq!;
assert_eq!;
// FnMut(char) -> bool
assert_eq!;
assert_eq!;
Associated Types
type Searcher<'a>: Searcher<'a>;Associated searcher for this pattern
Required Methods
fn into_searcher(self, haystack: &str) -> Self::Searcher<'_>Constructs the associated searcher from
selfand thehaystackto search in.
Provided Methods
fn is_contained_in(self, haystack: &str) -> boolChecks whether the pattern matches anywhere in the haystack
fn is_prefix_of(self, haystack: &str) -> boolChecks whether the pattern matches at the front of the haystack
fn is_suffix_of<'a>(self, haystack: &'a str) -> bool where Self::Searcher<'a>: ReverseSearcher<'a>,Checks whether the pattern matches at the back of the haystack
fn strip_prefix_of(self, haystack: &str) -> Option<&str>Removes the pattern from the front of haystack, if it matches.
fn strip_suffix_of<'a>(self, haystack: &'a str) -> Option<&'a str> where Self::Searcher<'a>: ReverseSearcher<'a>,Removes the pattern from the back of haystack, if it matches.
fn as_utf8_pattern(&self) -> Option<Utf8Pattern<'_>>Returns the pattern as UTF-8 if possible.
Implementors
impl Pattern for charimpl<'b> Pattern for &'b [char]impl<'b> Pattern for &'b strimpl<'b, 'c> Pattern for &'c &'b strimpl<'b, const N: usize> Pattern for &'b [char; N]impl<C: MultiCharEq> Pattern for MultiCharEqPattern<C>impl<F> Pattern for F where F: FnMut(char) -> bool,impl<F> Pattern for IsWhitespace where F: FnMut(char) -> bool,impl<F> Pattern for SyncView<T> where F: FnMut(char) -> bool,impl<F> Pattern for fn(T) -> Ret where F: FnMut(char) -> bool,impl<const N: usize> Pattern for [char; N]