Use collar:
use collar::*; enum Foo { Value(i32), Nothing, } fn main() { let bar = [1, 2, 3]; let foos = bar.iter().copied().map(Foo::Value).collect_array::<3>(); }