fn full_string(&self) -> String {
        let mut msg = format!("{}", self);
        let mut opt_source = self.source();
        while let Some(source) = opt_source {
            msg = format!("{}: {}", msg, source);
            opt_source = source.source();
        }
        msg
    }
/// loops through the error chain and formats into a single string
/// containing all the lower level errors
loops through the error chain and formats into a single string
containing all the lower level errors
loops through the error chain and formats into a single string containing all the lower level errors
fn full_string(&self) -> String {
        let mut msg = format!("{}", self);
        let mut opt_source = self.source();
        while let Some(source) = opt_source {
            msg = format!("{}: {}", msg, source);
            opt_source = source.source();
        }
        msg
    }
fn full_string ( & self ) -> String { let mut msg = format ! ( " " self ) ; let mut opt_source = self . source ( ) ; while let Some ( source ) = opt_source { msg = format ! ( " " msg source ) ; opt_source = source . source ( ) ; } msg }
loops through the error chain and formats into a single string
containing all the lower level errors
loops through the error chain and formats into a single string containing all the lower level errors
&self