pub trait BacktraceExt: Sized {
// Required method
fn attach_backtrace_with_filter(self, filter: &BacktraceFilter) -> Self;
// Provided method
fn attach_backtrace(self) -> Self { ... }
}Expand description
Extension trait for attaching backtraces to reports.
This trait provides methods to easily attach a captured backtrace to a
report or to the error contained within a Result.
§Examples
Attach backtrace to a report:
use std::io;
use rootcause::report;
use rootcause_backtrace::BacktraceExt;
let report = report!(io::Error::other("An error occurred")).attach_backtrace();Attach backtrace to a Result:
use std::io;
use rootcause::{Report, report};
use rootcause_backtrace::BacktraceExt;
fn might_fail() -> Result<(), Report> {
Err(report!(io::Error::other("operation failed")).into_dynamic())
}
let result = might_fail().attach_backtrace();Use a custom filter:
use std::io;
use rootcause::report;
use rootcause_backtrace::{BacktraceExt, BacktraceFilter};
let filter = BacktraceFilter {
skipped_initial_crates: &[],
skipped_middle_crates: &[],
skipped_final_crates: &[],
max_entry_count: 50,
show_full_path: true,
};
let report = report!(io::Error::other("detailed error")).attach_backtrace_with_filter(&filter);Required Methods§
Sourcefn attach_backtrace_with_filter(self, filter: &BacktraceFilter) -> Self
fn attach_backtrace_with_filter(self, filter: &BacktraceFilter) -> Self
Attaches a captured backtrace to the report using the specified filter.
§Examples
use std::io;
use rootcause::report;
use rootcause_backtrace::{BacktraceExt, BacktraceFilter};
let filter = BacktraceFilter {
max_entry_count: 10,
..BacktraceFilter::DEFAULT
};
let report = report!(io::Error::other("error")).attach_backtrace_with_filter(&filter);Provided Methods§
Sourcefn attach_backtrace(self) -> Self
fn attach_backtrace(self) -> Self
Attaches a captured backtrace to the report using the default filter.
§Examples
use std::io;
use rootcause::report;
use rootcause_backtrace::BacktraceExt;
let report = report!(io::Error::other("error")).attach_backtrace();Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.