Expand description
§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),
}Also, you may wish to note that pisserror works with #![no_std]/embedded projects! Just ask cargo add to not use default features, like cargo add pisserror --no-default-features.
Alternatively, you can add it to Cargo.toml by adding default-features = false:
[dependencies]
pisserror = { version = (your version), default-features = false }§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.
- Generate the
README.mdfile usingcargo-rdme. - Change the version numbers in
/Cargo.tomland/macros/Cargo.toml.- Under the
dependencies.pisserror_macrossection, you must also change the version number to match the new release.
- Under the
- Run
cargo publish!
Derive Macros§
- Error
- Derives
core::error::Errorfrom special syntax.