axum_error_macro 0.1.6

Simple derive macro for your custom Error enum to generate quickly its status code and message
Documentation
mod format {
    use axum_error_macro::ErrorResponse;

    #[test]
    fn json_format() {
        #[derive(ErrorResponse)]
        #[error_format("application/json")]
        enum Error {
            #[error(code = 500, msg = "123")]
            InternalServerError,
            #[error(code = 400, msg = "123")]
            BadRequest,
        }

        assert_eq!(
            Error::InternalServerError
                .into_response()
                .headers()
                .get("Content-Type")
                .unwrap(),
            "application/json"
        );
        assert_eq!(
            Error::BadRequest
                .into_response()
                .headers()
                .get("Content-Type")
                .unwrap(),
            "application/json"
        );
    }

    #[test]
    fn text_format() {
        #[derive(ErrorResponse)]
        #[error_format("text/plain")]
        enum Error {
            #[error(code = 500, msg = "123")]
            InternalServerError,
            #[error(code = 400, msg = "123")]
            BadRequest,
        }

        assert_eq!(
            Error::InternalServerError
                .into_response()
                .headers()
                .get("Content-Type")
                .unwrap(),
            "text/plain"
        );
        assert_eq!(
            Error::BadRequest
                .into_response()
                .headers()
                .get("Content-Type")
                .unwrap(),
            "text/plain"
        );
    }

    #[test]
    fn implicit_text_format() {
        #[derive(ErrorResponse)]
        enum Error {
            #[error(code = 500, msg = "123")]
            InternalServerError,
            #[error(code = 400, msg = "123")]
            BadRequest,
        }

        assert_eq!(
            Error::InternalServerError
                .into_response()
                .headers()
                .get("Content-Type")
                .unwrap(),
            "text/plain"
        );
        assert_eq!(
            Error::BadRequest
                .into_response()
                .headers()
                .get("Content-Type")
                .unwrap(),
            "text/plain"
        );
    }
}