# memrchr3 in memchr - Rust
Like `memrchr`, but searches for any of three bytes instead of just one.
Keywords: rust, rustlang, rust-lang, memrchr3

# Function memchr::memrchr3

source · [−]

    pub fn memrchr3(
        needle1: u8,
        needle2: u8,
        needle3: u8,
        haystack: &[u8]
    ) -> Option<usize>

Expand description

Like `memrchr`, but searches for any of three bytes instead of just one.

This returns the index corresponding to the last occurrence of `needle1`, the last occurrence of `needle2`, or the last occurrence of `needle3` in `haystack` (whichever occurs later), or `None` if none are found. If an index is returned, it is guaranteed to be less than `usize::MAX`.

While this is operationally the same as something like `haystack.iter().rposition(|&b| b == needle1 || b == needle2 || b == needle3)`, `memrchr3` will use a highly optimized routine that can be up to an order of magnitude faster in some cases.

## Example

This shows how to find the last position of any of three bytes in a byte string.

    use memchr::memrchr3;

    let haystack = b"the quick brown fox";
    assert_eq!(memrchr3(b'k', b'q', b'e', haystack), Some(8));