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));

MacrosΒ§

pattern_methods πŸ”’ Experimental
searcher_methods πŸ”’ Experimental

StructsΒ§

CharArrayRefSearcherExperimental
Associated type for <&[char; N] as Pattern>::Searcher<'a>.
CharArraySearcherExperimental
Associated type for <[char; N] as Pattern>::Searcher<'a>.
CharPredicateSearcherExperimental
Associated type for <F as Pattern>::Searcher<'a>.
CharSearcherExperimental
Associated type for <char as Pattern>::Searcher<'a>.
CharSliceSearcherExperimental
Associated type for <&[char] as Pattern>::Searcher<'a>.
EmptyNeedle πŸ”’ Experimental
MultiCharEqPattern πŸ”’ Experimental
MultiCharEqSearcher πŸ”’ Experimental
StrSearcherExperimental
Associated type for <&str as Pattern>::Searcher<'a>.
TwoWaySearcher πŸ”’ Experimental
The internal state of the two-way substring search algorithm.

EnumsΒ§

MatchOnly πŸ”’ Experimental
Skip to match intervals as quickly as possible
RejectAndMatch πŸ”’ Experimental
Emit Rejects regularly
SearchStepExperimental
Result of calling Searcher::next() or ReverseSearcher::next_back().
StrSearcherImpl πŸ”’ Experimental
Utf8PatternExperimental
Result of calling Pattern::as_utf8_pattern(). Can be used for inspecting the contents of a Pattern in cases where the underlying representation can be represented as UTF-8.

TraitsΒ§

DoubleEndedSearcherExperimental
A marker trait to express that a ReverseSearcher can be used for a DoubleEndedIterator implementation.
MultiCharEq πŸ”’πŸ‘» Experimental
PatternExperimental
A string pattern.
ReverseSearcherExperimental
A reverse searcher for a string pattern.
SearcherExperimental
A searcher for a string pattern.
TwoWayStrategy πŸ”’ Experimental

FunctionsΒ§

simd_contains πŸ”’ Experimental
SIMD search for short needles based on Wojciech MuΕ‚a’s β€œSIMD-friendly algorithms for substring searching”0
small_slice_eq πŸ”’ ⚠Experimental
Compares short slices for equality.