Function rs_utils::array::fst_initial [] [src]

pub fn fst_initial<A, B, N, M>(
    from: &GenericArray<(A, B), N>
) -> GenericArray<A, M> where
    A: Clone,
    N: ArrayLength<(A, B)>,
    M: ArrayLength<A> + IsLessOrEqual<N, Output = B1>, 

Create a new array from the first elements of an array of pairs of equal or greater length than the first.

use generic_array::GenericArray;
use typenum::consts::*;
let xs : [(u8, f32); 2]        = [(5, 1.0), (100, -1.0)];
let ys : GenericArray <u8, U1> = fst_initial (&xs.into());
assert_eq!(ys.as_slice(), [5]);

A compilation error will result if the length of the input array is shorter than the length of the destination array:

This example deliberately fails to compile
use generic_array::GenericArray;
use typenum::consts::*;
let xs : [(u8, f32); 2]        = [(5, 1.0), (100, -1.0)];
let ys : GenericArray <u8, U3> = fst_initial (&xs.into());