pub fn from_fn(mut cb: F) -> [T; N] where F: FnMut(usize) -> T, { let mut idx = 0; [(); N].map(|_| { let res = cb(idx); idx += 1; res }) }