2 #![feature(const_generics, const_evaluatable_checked)]
3 #![allow(incomplete_features)]
7 fn split_first<T, const N: usize>(arr: [T; N]) -> (T, [T; N - 1])
11 let arr = mem::ManuallyDrop::new(arr);
13 let head = ptr::read(&arr[0]);
14 let tail = ptr::read(&arr[1..] as *const [T] as *const [T; N - 1]);
20 let arr = [0, 1, 2, 3, 4];
21 let (head, tail) = split_first(arr);
23 assert_eq!(tail, [1, 2, 3, 4]);