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()
}
}