tracerr

Crates.iotracerr
lib.rstracerr
version0.3.0
sourcesrc
created_at2019-11-20 15:52:18.358629
updated_at2021-10-27 10:17:55.172552
descriptionCustom compile-time captured error tracing.
homepagehttps://github.com/instrumentisto/tracerr-rs
repositoryhttps://github.com/instrumentisto/tracerr-rs
max_upload_size
id183002
size24,127
Kai Ren (tyranron)

documentation

https://docs.rs/tracerr

README

tracerr

Latest version Rust 1.56+ Rust docs CI Unsafe Forbidden

API Docs | Changelog

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.

Commit count: 57

cargo fmt