#![allow(dead_code, deprecated, unused_variables, unused_mut)] fn main() { let a = [1, 2, -3, 4]; let mut iter = a.into_iter(); let result: Vec = iter.by_ref().map_while(|n| u32::try_from(n).ok()).collect(); assert_eq!(result, [1, 2]); let result: Vec = iter.collect(); assert_eq!(result, [4]); }