Function array_utils::initialize_from_option[][src]

pub fn initialize_from_option<T, F, const OUTPUT_SIZE: usize>(
    f: F,
    fill: T
) -> ([T; OUTPUT_SIZE], usize) where
    T: Copy,
    F: Fn(usize) -> Option<T>, 

Initialize a sized array from a closure taking the index and outputting an Option of a element, stopping when the first None is encountered.

Generates a new sized array generated from generator closure, which turns a index into a Option<T> with T being elements of the generated array. If a None value is found, the rest of the output array is filled with the fill value. Along with the generated array, this utility returns at what index the given None value was found (OUTPUT_SIZE if not found).

Examples

use array_utils::initialize_from_option;
assert_eq!(
    initialize_from_option(|index| if index == 5 { None } else { Some(index) }, 42),
    ([0, 1, 2, 3, 4, 42, 42, 42], 5)
);

Panics

Only panics if the given f panics.