Skip to content

Commit 9446815

Browse files
committed
make it easier to conditionally use a backtrace
1 parent b986c86 commit 9446815

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/error.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,19 @@ impl Error {
7171
///
7272
/// [tracking]: https://github.com/rust-lang/rust/issues/53487
7373
#[cfg(backtrace)]
74-
pub fn backtrace(&self) -> &std::backtrace::Backtrace {
75-
self.error.backtrace()
74+
pub fn backtrace(&self) -> Option<&std::backtrace::Backtrace> {
75+
let backtrace = self.error.backtrace();
76+
if let std::backtrace::BacktraceStatus::Captured = backtrace.status() {
77+
Some(backtrace)
78+
} else {
79+
None
80+
}
81+
}
82+
83+
#[cfg(not(backtrace))]
84+
#[allow(missing_docs)]
85+
pub fn backtrace(&self) -> Option<()> {
86+
None
7687
}
7788

7889
/// Attempt to downcast the error object to a concrete type.

0 commit comments

Comments
 (0)