polars_utils/
array.rs

1pub fn try_map<T, U, const N: usize>(
2    array: [T; N],
3    f: impl FnMut(T) -> Option<U>,
4) -> Option<[U; N]> {
5    let mut array = array.map(f);
6
7    if array.iter().any(Option::is_none) {
8        return None;
9    }
10
11    Some(std::array::from_fn(|n| array[n].take().unwrap()))
12}