pub trait ResultChain<I, T, E, D> {
// Required methods
fn about(self, desc: D) -> Result<T, ErrorChain<I>>
where Self: Sized,
E: Into<I>,
D: Into<Cow<'static, str>>;
fn about_else(self, f: impl FnOnce() -> D) -> Result<T, ErrorChain<I>>
where Self: Sized,
E: Into<I>,
D: Into<Cow<'static, str>>;
}