1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
// check-pass pub trait ResultExt { type Ok; fn err_eprint_and_ignore(self) -> Option<Self::Ok>; } impl<O, E> ResultExt for std::result::Result<O, E> where E: std::error::Error, { type Ok = O; fn err_eprint_and_ignore(self) -> Option<O> where Self: , { match self { Err(e) => { eprintln!("{}", e); None } Ok(o) => Some(o), } } } fn main() {}