[−][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 create instance of array from iterator.
- If iterator yields not enough items to fill array, this function returns
None
. - If iterator yields enough items, this function returns
Some(array)
. - If iterator yields excessive items, this function only takes number of items enough to fill array.
Panics
- Only if iterator does.
Examples
Not enough items case.
use array_tools::try_init_from_iterator; let mut iter = (0..4); let maybe_array: Option<[u64; 5]> = try_init_from_iterator(iter.by_ref()); assert_eq!(maybe_array, None); assert_eq!(iter.next(), None);
Enough items case.
use array_tools::try_init_from_iterator; let mut iter = (0..5); let maybe_array: Option<[u64; 5]> = try_init_from_iterator(iter.by_ref()); assert_eq!(maybe_array, Some([0, 1, 2, 3, 4])); assert_eq!(iter.next(), None);
Excessive items case.
use array_tools::try_init_from_iterator; let mut iter = (0..7); let maybe_array: Option<[u32; 5]> = try_init_from_iterator(iter.by_ref()); assert_eq!(maybe_array, Some([0, 1, 2, 3, 4])); assert_eq!(iter.next(), Some(5)); assert_eq!(iter.next(), Some(6)); assert_eq!(iter.next(), None);