Trait Pattern
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: TraitBound { trait_: Path { path: "Searcher", id: Id(30536), args: Some(AngleBracketed { args: [Lifetime("'a")], constraints: [] }) }, generic_params: [], modifier: None }Associated searcher for this pattern
Required Methods
fn into_searcher(self: Self, haystack: &str) -> <Self as >::Searcher<'_>Constructs the associated searcher from
selfand thehaystackto search in.
Provided Methods
fn is_contained_in(self: Self, haystack: &str) -> boolChecks whether the pattern matches anywhere in the haystack
fn is_prefix_of(self: Self, haystack: &str) -> boolChecks whether the pattern matches at the front of the haystack
fn is_suffix_of<'a>(self: Self, haystack: &'a str) -> bool where <Self as >::Searcher<'a>: ReverseSearcher<'a>Checks whether the pattern matches at the back of the haystack
fn strip_prefix_of(self: Self, haystack: &str) -> Option<&str>Removes the pattern from the front of haystack, if it matches.
fn strip_suffix_of<'a>(self: Self, haystack: &'a str) -> Option<&'a str> where <Self as >::Searcher<'a>: ReverseSearcher<'a>Removes the pattern from the back of haystack, if it matches.
fn as_utf8_pattern(self: &Self) -> Option<Utf8Pattern<'_>>Returns the pattern as utf-8 bytes if possible.
Implementors
impl<'b, 'c> Pattern for &'c &'b strimpl<N: usize> Pattern for [char; N]impl<'b> Pattern for &'b [char]impl<F> Pattern for Fimpl Pattern for charimpl<F> Pattern for Exclusive<T>impl<'b> Pattern for &'b strimpl<'b, N: usize> Pattern for &'b [char; N]impl<F> Pattern for fn(_: T) -> Ret