konst::slice

Function bytes_rfind_skip

Source
pub const fn bytes_rfind_skip<'a, const N: usize, P>(
    this: &'a [u8],
    needle: &P,
) -> Option<&'a [u8]>
where P: ?Sized + BytesPattern<N>,
Expand description

Truncates this to before the last instance of needle.

Return None if no instance of needle is found.

Return Some(this) if needle is empty.

ยงExample

use konst::slice::bytes_rfind_skip;

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