use std::backtrace::Backtrace;
use std::error::request_ref;
use std::error::Error;
pub fn new() -> Backtrace {
Backtrace::force_capture()
}
pub fn new_str() -> String {
format!("{:?}", new())
}
pub fn error_backtrace_ref<'err>(e: &'err (dyn Error + 'static)) -> Option<&'err Backtrace> {
request_ref::<Backtrace>(e)
}
pub fn error_backtrace_str(e: &(dyn Error + 'static)) -> Option<String> {
let bt = error_backtrace_ref(e);
bt.map(|b| format!("{:?}", b))
}