#![allow(dead_code, deprecated, unused_variables, unused_mut)] fn main() { let a = [0, 1, 2, -3, 4, 5, -6]; let iter = a.into_iter().map_while(|x| u32::try_from(x).ok()); let vec: Vec<_> = iter.collect(); assert_eq!(vec, [0, 1, 2]); }