pub trait InfoResult : Sized { fn map_info String>(self, f: F) -> Self; fn map_info_str(self, s: &str) -> Self { self.map_info(|_| format!("{}", s)) } fn map_info_err String>(self, f: F) -> Self; fn map_info_err_str(self, s: &str) -> Self { self.map_info_err(|_| format!("{}", s)) } } impl InfoResult for Result { fn map_info String>(self, f: F) -> Self { self.map(|t| { info!("{}", f(&t)); t }) } fn map_info_err String>(self, f: F) -> Self { self.map_err(|e| { info!("{}", f(&e)); e }) } }