Skip to content

onkoe/pisserror

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!