chj_util/
slice.rs

1
2pub fn first<T>(items: &[T]) -> Option<&T> {
3    if items.len() > 0 {
4        Some(&items[0])
5    } else {
6        None
7    }
8}
9
10pub fn rest<T>(items: &[T]) -> Option<&[T]> {
11    if items.len() > 0 {
12        Some(&items[1..])
13    } else {
14        None
15    }
16}
17
18pub fn first_and_rest<T>(items: &[T]) -> Option<(&T, &[T])> {
19    if items.len() > 0 {
20        Some((&items[0], &items[1..]))
21    } else {
22        None
23    }
24}
25
26