# Trait std::str::pattern::Pattern[−][src]

    pub trait Pattern<'a> {
        type Searcher: Searcher<'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) -> bool
        where
            Self::Searcher: ReverseSearcher<'a>,
        { ... }
    }

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

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.

## Associated Types

### `type Searcher: Searcher<'a>`

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

Associated searcher for this pattern

## Required Methods

### `fn into_searcher(self, haystack: &'a str) -> Self::Searcher`

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

Constructs the associated searcher from `self` and the `haystack` to search in.

## Provided Methods

### `fn is_contained_in(self, haystack: &'a str) -> bool`

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

Checks whether the pattern matches anywhere in the haystack

### `fn is_prefix_of(self, haystack: &'a str) -> bool`

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

Checks whether the pattern matches at the front of the haystack

### `fn is_suffix_of(self, haystack: &'a str) -> bool where
Self::Searcher: ReverseSearcher<'a>,`

🔬 This is a nightly-only experimental API. (`pattern` #27721)

API not fully fleshed out and ready to be stabilized

Checks whether the pattern matches at the back of the haystack

## Implementors

- `impl<'a, F> Pattern<'a> for F where F: FnMut(char) -> bool, type Searcher = CharPredicateSearcher<'a, F>;` | [src]

- `impl<'a> Pattern<'a> for char type Searcher = CharSearcher<'a>;` | [src]

- `impl<'a, 'b, 'c> Pattern<'a> for &'c &'b str type Searcher = StrSearcher<'a, 'b>;` | [src]

- `impl<'a, 'b> Pattern<'a> for &'b [char] type Searcher = CharSliceSearcher<'a, 'b>;` | [src]

- `impl<'a, 'b> Pattern<'a> for &'b str type Searcher = StrSearcher<'a, 'b>;` | [src]

- `impl<'a, 'b> Pattern<'a> for &'b String type Searcher = <&'b str as Pattern<'a>>::Searcher;` | [src]

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)