Module pattern

Module pattern 

Source
🔬This is a nightly-only experimental API. (pattern #27721)
Expand description

The string Pattern API.

The Pattern API provides a generic mechanism for using different pattern types when searching through a string.

For more details, see the traits Pattern, Searcher, [ReverseSearcher], and [DoubleEndedSearcher].

Although this API is unstable, it is exposed via stable APIs on the str type.

§Examples

Pattern is implemented in the stable API for &str, char, slices of char, and functions and closures implementing FnMut(char) -> bool.

let s = "Can you find a needle in a haystack?";

// &str pattern
assert_eq!(s.find("you"), Some(4));
// char pattern
assert_eq!(s.find('n'), Some(2));
// array of chars pattern
assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u']), Some(1));
// slice of chars pattern
assert_eq!(s.find(&['a', 'e', 'i', 'o', 'u'][..]), Some(1));
// closure pattern
assert_eq!(s.find(|c: char| c.is_ascii_punctuation()), Some(35));

Structs§

StrSearcherExperimental
Associated type for <&str as Pattern>::Searcher<'a>.

Enums§

SearchStepExperimental
Result of calling Searcher::next() or [ReverseSearcher::next_back()].

Traits§

PatternExperimental
A string pattern.
SearcherExperimental
A searcher for a string pattern.