pub fn split_first(self) -> (T, Array<Pred<L>, T>)
        where Self: ArraySplit<L, T>,
              L: NatPred,
              Pred<L>: Arrayify<T>
    {
        <Self as ArraySplit<L, T>>::split_first(self)
    }
/// Split the `Array` apart into its first element and an `Array` consisting of the remaining elements.
/// This splitting is quite efficient and consists internally of only pointer casts and dereferences.
///
/// ```
/// # #[macro_use] extern crate tll_array; fn main() {
/// let array = array![42i32, 84, 126, 168, 210, 252, 294, 336];
/// assert_eq!(array.len(), 8);
/// let (head, tail) = array.split_first();
/// assert_eq!(head, 42);
/// assert_eq!(tail.len(), 7);
/// # }
/// ```
Split the `Array` apart into its first element and an `Array` consisting of the remaining elements.
This splitting is quite efficient and consists internally of only pointer casts and dereferences.


Split the ` Array ` apart into its first element and an ` Array ` consisting of the remaining elements . This splitting is quite efficient and consists internally of only pointer casts and dereferences .
pub fn split_first(self) -> (T, Array<Pred<L>, T>)
        where Self: ArraySplit<L, T>,
              L: NatPred,
              Pred<L>: Arrayify<T>
    {
        <Self as ArraySplit<L, T>>::split_first(self)
    }
pub fn split_first ( self ) -> ( T , Array < Pred < L > , T > ) where Self : ArraySplit < L , T > , L : NatPred , Pred < L > : Arrayify < T > { < Self as ArraySplit < L , T > > :: split_first ( self ) }
Split the `Array` apart into its first element and an `Array` consisting of the remaining elements.
Split the ` Array ` apart into its first element and an ` Array ` consisting of the remaining elements .
self
self
#[macro_use] extern crate tll_array; fn main() {
None
}
None