#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

#1625 in Procedural macros

Download history 64/week @ 2024-06-06 144/week @ 2024-06-13 97/week @ 2024-06-20 109/week @ 2024-06-27 79/week @ 2024-07-04 123/week @ 2024-07-11 163/week @ 2024-07-18 206/week @ 2024-07-25 158/week @ 2024-08-01 515/week @ 2024-08-08 802/week @ 2024-08-15 761/week @ 2024-08-22 758/week @ 2024-08-29 750/week @ 2024-09-05 352/week @ 2024-09-12 90/week @ 2024-09-19

2,052 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–12MB
~125K SLoC