#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::str::FromStr; fn main() { let mut results = vec![]; let mut errs = vec![]; let nums: Vec<_> = ["17", "not a number", "99", "-27", "768"] .into_iter() .map(u8::from_str) .inspect(|x| results.push(x.clone())) .inspect(|x| errs.extend(x.clone().err())) .flatten() .collect(); assert_eq!(errs.len(), 3); assert_eq!(nums, [17, 99]); println!("results {results:?}"); println!("errs {errs:?}"); println!("nums {nums:?}"); }