3 unstable releases

0.2.3 Sep 4, 2024
0.2.2 Sep 4, 2024
0.2.1 Aug 29, 2024
0.0.0 Jul 8, 2024

#1527 in Rust patterns

Download history 71/week @ 2024-07-02 49/week @ 2024-07-09 105/week @ 2024-08-27 254/week @ 2024-09-03 12/week @ 2024-09-10

371 downloads per month

MIT license

25KB
86 lines

pisserror

A golden replacement for thiserror.

Usage

You'll likely find pisserror to be pretty familiar. As with thiserror, it derives Error for any enum you give to it. Here's a sample of its current usage:

use pisserror::Error;
use std::error::Error; // we don't mess with your prelude :D

#[derive(Debug, Error)]
pub enum DatabaseError {
    #[error("encountered a disk error. see: {_0}")]
    DiskError(#[from] std::io::Error),
    #[error("key `{_0}` has no matching data records")]
    KeyNotFound(String),
    #[error("attempted to store a malformed header. expected: `{expected:?}`. got: `{got:?}`")]
    MalformedHeader {
        expected: String,
        got: String,
    },
    #[error("other error: {_0}")]
    Other(String),
}

Feature Requests and Problems

If there's something wrong or missing, please create a GitHub issue! Make sure to thoroughly describe your intentions.

Contributions

Contributions are welcome! Please create a PR and explain the changes you made.

There are a few ground rules, though:

  • All contributions are bound by the license.
  • Commits must be in Conventional Commits format. Feel free to interpret the rules a bit, though!
  • Document and test your work.

Making a Release

There are only a few steps to releasing this crate.

  1. Generate the README.md file using cargo-rdme.
  2. Change the version numbers in /Cargo.toml and /macros/Cargo.toml.
    • Under the dependencies.pisserror_macros section, you must also change the version number to match the new release.
  3. Run cargo publish!

Dependencies

~270–720KB
~17K SLoC