#web-apps #error #thiserror #axum #status-code #proc-macro #response

macro axum_thiserror

A Rust procedural macro for custom error handling in web applications, enabling the association of specific HTTP status codes with error types

1 unstable release

0.1.0 Jan 25, 2024

#772 in Procedural macros

34 downloads per month

Custom license

7KB
84 lines

axum_thiserror

axum_thiserror is a library that offers a procedural macro to allow thiserror error types to be used as axum responses.

Usage

Add the library to your current project using Cargo:

cargo add axum_thiserror

Then you can create a basic thiserror error:

#[derive(Error, Debug)]
pub enum UserCreateError {
  #[error("User {0} already exists")]
  UserAlreadyExists(String),
}

Now you can use axum_thiserror to implement IntoResponse on your error:

#[derive(Error, Debug, ErrorStatus)]
pub enum UserCreateError {
  #[error("User {0} already exists")]
  #[status(StatusCode::CONFLICT)]
  UserAlreadyExists(String),
}

License

This project is licensed under the MIT License.

Dependencies

~5–7.5MB
~127K SLoC