pub fn root_cause<'e>(
    mut error: &'e (dyn std::error::Error + 'static),
) -> &'e (dyn std::error::Error + 'static) {
    while let Some(e) = error.source() {
        error = e;
    }
    error
}
/// Obtain the source error at the end of a chain of `Error`s.
Obtain the source error at the end of a chain of `Error`s.
Obtain the source error at the end of a chain of ` Error ` s .
pub fn root_cause<'e>(
    mut error: &'e (dyn std::error::Error + 'static),
) -> &'e (dyn std::error::Error + 'static) {
    while let Some(e) = error.source() {
        error = e;
    }
    error
}
pub fn root_cause < ' e > ( mut error : & ' e ( dyn std :: error :: Error + ' static ) , ) -> & ' e ( dyn std :: error :: Error + ' static ) { while let Some ( e ) = error . source ( ) { error = e ; } error }
Obtain the source error at the end of a chain of `Error`s.
Obtain the source error at the end of a chain of ` Error ` s .
error
&'e (dyn std::error::Error + 'static)
error
&'e (dyn std::error::Error + 'static)