[][src]Trait extracterr::Extract

pub trait Extract {
    fn extract<C>(&self) -> Option<&C>
    where
        C: 'static
; }

Extension trait for extracting references to bundled context from dyn Error trait objects

Required methods

fn extract<C>(&self) -> Option<&C> where
    C: 'static, 

Example

use std::error::Error;
use backtrace::Backtrace;
use extracterr::{Bundled, Extract};

fn report(error: &(dyn Error + 'static)) {
    let mut source = Some(error);
    let mut ind = 0;
    let mut backtrace = None;

    while let Some(error) = source {
        source = error.source();

        if let Some(bt) = error.extract::<Backtrace>() {
            backtrace = Some(bt);
        } else {
            println!("{}: {}", ind, error);
            ind += 1;
        }
    }

    if let Some(backtrace) = backtrace {
        println!("\nBacktrace:\n{:?}", backtrace)
    }
}
Loading content...

Implementations on Foreign Types

impl Extract for dyn Error + 'static[src]

impl Extract for dyn Error + Send + Sync + 'static[src]

Loading content...

Implementors

Loading content...