Skip to content

Commit 81e133f

Browse files
authored
feat: Make anyhow backtrace feature optional (#347)
1 parent e2311e6 commit 81e133f

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

sentry-anyhow/Cargo.toml

+4-1
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,13 @@ Sentry integration for anyhow.
1111
"""
1212
edition = "2018"
1313

14+
[features]
15+
backtrace = ["anyhow/backtrace"]
16+
1417
[dependencies]
1518
sentry-backtrace = { version = "0.22.0", path = "../sentry-backtrace" }
1619
sentry-core = { version = "0.22.0", path = "../sentry-core" }
17-
anyhow = { version = "1.0.39", features = ["backtrace"] }
20+
anyhow = "1.0.39"
1821

1922
[dev-dependencies]
2023
sentry = { version = "0.22.0", path = "../sentry", default-features = false, features = ["test"] }

sentry-anyhow/src/lib.rs

+14-7
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,25 @@ pub trait AnyhowHubExt {
6666
impl AnyhowHubExt for Hub {
6767
fn capture_anyhow(&self, anyhow_error: &anyhow::Error) -> Uuid {
6868
let dyn_err: &dyn std::error::Error = anyhow_error.as_ref();
69-
let mut event = sentry_core::event_from_error(dyn_err);
7069

71-
// exception records are sorted in reverse
72-
if let Some(exc) = event.exception.iter_mut().last() {
73-
let backtrace = anyhow_error.backtrace();
74-
exc.stacktrace = sentry_backtrace::parse_stacktrace(&format!("{:#}", backtrace));
75-
}
70+
#[cfg(feature = "backtrace")]
71+
{
72+
let mut event = sentry_core::event_from_error(dyn_err);
73+
74+
// exception records are sorted in reverse
75+
if let Some(exc) = event.exception.iter_mut().last() {
76+
let backtrace = anyhow_error.backtrace();
77+
exc.stacktrace = sentry_backtrace::parse_stacktrace(&format!("{:#}", backtrace));
78+
}
7679

77-
self.capture_event(event)
80+
self.capture_event(event)
81+
}
82+
#[cfg(not(feature = "backtrace"))]
83+
self.capture_error(dyn_err)
7884
}
7985
}
8086

87+
#[cfg(all(feature = "backtrace", test))]
8188
#[test]
8289
fn test_has_backtrace() {
8390
std::env::set_var("RUST_BACKTRACE", "1");

0 commit comments

Comments
 (0)