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