[][src]Function array_tools::try_init_from_iterator

pub fn try_init_from_iterator<T, A, I>(iter: I) -> Option<A> where
    A: FixedSizeArray<T>,
    I: Iterator<Item = T>, 

Attempts to initialize fixed-length array from iterator.

Examples

use array_tools;
 
// Attempt to initialize array with iterator yielding not enough items will result in returning
// `None`. All taken items will be dropped.
let maybe_array: Option<[u64; 5]> = array_tools::try_init_from_iterator(1..=4);
assert_eq!(maybe_array, None);
 
// Attempt to initialize array with iterator yielding number of items equal to array length
// will result in returning `Some` containing array.
let maybe_array: Option<[u64; 5]> = array_tools::try_init_from_iterator(1..=5);
assert_eq!(maybe_array, Some([1, 2, 3, 4, 5]));
 
// Attempt to inititalize array with iterator yielding too many items (Mare than array can 
// contain) will result in taking length-of-array items from iterator and returning `Some` 
// containing array. Iterator with all remaining items will be dropped.
let maybe_array: Option<[u32; 5]> = array_tools::try_init_from_iterator(1..=100);
assert_eq!(maybe_array, Some([1, 2, 3, 4, 5]));