#error #tracing #debugging #manage #traceback #structured #projects

traceback-error

This crate aims to make error handling and tracing easier

10 releases

0.1.9 Sep 14, 2023
0.1.8 Sep 12, 2023

#588 in Development tools

Download history 8/week @ 2024-02-26 10/week @ 2024-03-11 3/week @ 2024-03-18 8/week @ 2024-04-01 194/week @ 2024-04-08

206 downloads per month

MIT/Apache

40KB
497 lines

traceback-error

traceback-error is a Rust crate for efficient error handling and traceback functionality. It simplifies error tracking, serialization, and handling in your Rust projects, making it easier to manage and diagnose errors.

Features

Efficient Error Handling: traceback-error provides a structured way to handle errors, allowing you to track and manage them effectively.

Traceback Functionality: Easily create error traces that include detailed information about the error, its location, and any relevant context.

Serialization: Serialize errors to JSON for storage or debugging purposes.

Installation

Add this crate to your Cargo.toml:

[dependencies]
traceback-error = "0.1.9"

Usage

use traceback_error::{serde_json::json, traceback, TracebackError};

fn main() {
    // Should an error occur, handle it
    if let Err(e) = do_something_that_might_fail() {
        // Handle the error here
        // You can also log or serialize it
        println!("Error: {}", e);
        // Or continue tracing
        traceback!(err e, "The thing that might fail failed");
    }
}

fn do_something_that_might_fail() -> Result<(), TracebackError> {
    // Your code here
    // Use the traceback! macro to create and handle errors
    Err(traceback!("Something went wrong").with_extra_data(json!({
        "details": "Additional information about the error"
    })))
}

Documentation

Documentation is available at docs.rs

Contributing

Contributions are welcome! Feel free to open issues or pull requests on the GitHub repository. This project is still in very early development, and proper contribution guidelines have not yet been established

License

This crate is dual-licensed under the MIT License and the Apache License, Version 2.0. You may choose either of these licenses when using this crate. See the LICENSE-MIT and LICENSE-APACHE files for the full text of the licenses.

Dependencies

~1.6–2.6MB
~51K SLoC