5 unstable releases
0.3.0 | Oct 27, 2021 |
---|---|
0.2.0 | Jun 24, 2021 |
0.1.2 | Nov 3, 2020 |
0.1.1 | Nov 22, 2019 |
0.1.0 | Nov 20, 2019 |
#1261 in Rust patterns
219 downloads per month
Used in medea-jason
21KB
406 lines
tracerr
Custom compile-time captured error tracing for Rust.
Usage
The common rule:
- Use macro to capture trace frame in the invocation place.
use tracerr::Traced;
let err = tracerr::new!("my error"); // captures frame
let res: Result<(), _> = Err(err)
.map_err(tracerr::wrap!()); // captures frame
let err: Traced<&'static str> = res.unwrap_err();
# #[cfg(not(target_os = "windows"))]
assert_eq!(
format!("{}\n{}", err, err.trace()),
r"my error
error trace:
rust_out
at src/lib.rs:6
rust_out
at src/lib.rs:9",
);
let (val, trace) = err.split();
# #[cfg(not(target_os = "windows"))]
assert_eq!(
format!("{}\n{}", val, trace),
r"my error
error trace:
rust_out
at src/lib.rs:6
rust_out
at src/lib.rs:9",
);
License
Copyright © 2019 Instrumentisto Team, https://github.com/instrumentisto
This software is subject to the terms of the Blue Oak Model License 1.0.0. If a copy of the BlueOak-1.0.0 license was not distributed with this file, You can obtain one at https://blueoakcouncil.org/license/1.0.0.
Dependencies
~2MB
~43K SLoC