Function konst::slice::bytes_find_skip[][src]

pub const fn bytes_find_skip<'a>(
    this: &'a [u8],
    needle: &[u8]
) -> Option<&'a [u8]>
Expand description

Advances this past the first instance of needle.

Return None if no instance of needle is found.

Return Some(this) if needle is empty.

Motivation

This function exists because calling bytes_find + slice_from when the "constant_time_slice" feature is disabled is slower than it could be, since the slice has to be traversed twice.

Example

use konst::slice::bytes_find_skip;

{
    const FOUND: Option<&[u8]> = bytes_find_skip(b"foo bar baz", b"bar");
    assert_eq!(FOUND, Some(&b" baz"[..]));
}
{
    const NOT_FOUND: Option<&[u8]> = bytes_find_skip(b"foo bar baz", b"qux");
    assert_eq!(NOT_FOUND, None);
}
{
    const EMPTY_NEEDLE: Option<&[u8]> = bytes_find_skip(b"foo bar baz", b"");
    assert_eq!(EMPTY_NEEDLE, Some(&b"foo bar baz"[..]));
}