pub const fn split_last<T>(slice: &[T]) -> Option<(&T, &[T])>
Expand description
A const equivalent of
<[T]>::split_last
ยงExample
use konst::slice;
const fn find_last_even(mut slice: &[u32]) -> Option<usize> {
let mut ret = 0u32;
while let Some((last, rem)) = slice::split_last(slice) {
if *last % 2 == 0 {
return Some(rem.len());
}
// advances the slice
slice = rem;
}
None
}
assert_eq!(find_last_even(&[3, 5]), None);
assert_eq!(find_last_even(&[3, 5, 8, 13, 21]), Some(2));
assert_eq!(find_last_even(&[3, 5, 8, 13, 21, 34, 55]), Some(5));
assert_eq!(find_last_even(&[3, 5, 8, 13, 21, 34, 55, 89, 144]), Some(8));