Skip to content

`error-stack-macros2` 0.1.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 05:03
· 85 commits to stable since this release
2d864eb

error-stack-macros2 v0.1.0

The very first development version of error-stack-macros2 is finally here!

Features

This version (0.1.0) offers a derive macro for the Error trait which encourages the best practices for defining error-stack context types.

Here's an example. This code:

use std::{
    error::Error,
    fmt::{self, Display, Formatter},
};

#[derive(Debug)]
pub enum CreditCardError {
    InvalidInput(String),
    Other,
}

impl Display for CreditCardError {
    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
        let msg = match self {
            Self::InvalidInput(_) => "credit card not found",
            Self::Other => "failed to retrieve credit card",
        };

        f.write_str(msg)
    }
}

impl Error for CreditCardError {}

...can now be reduced to this code:

use error_stack_macros2::Error;

#[derive(Debug, Error)]
pub enum CreditCardError {
    #[display("credit card not found")]
    InvalidInput(String),

    #[display("failed to retrieve credit card")]
    Other,
}

This new release also means that we will now be listening to feedback and accepting new features (macros, obviously). We are also now committed to maintaining this macro going forward and keeping our dependencies up to date.

Previous release notes

If you want to take a look at the notes from previous releases, go to GitHub Releases.