1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use std::result; use neovim_lib::CallError; pub trait ErrorReport<T> { fn report_err(&self); fn ok_and_report(self) -> Option<T>; } impl<T> ErrorReport<T> for result::Result<T, CallError> { fn report_err(&self) { if let Err(ref err) = *self { error!("{}", err); } } fn ok_and_report(self) -> Option<T> { self.report_err(); self.ok() } }