pub trait ResultExt<T>: Into<Result<T, Error>> { fn store<V>(self, to: &mut V) -> Option<T> where V: Extend<Error>, { ... } fn report(self, storage: &mut Storage<'_>) -> Option<T> { ... } }