Skip to main content

axum_internal_server_error/
lib.rs

1use std::error::Error;
2
3use axum::http::StatusCode;
4
5pub fn internal_server_error<E: Error>(error: E) -> (StatusCode, String) {
6    (StatusCode::INTERNAL_SERVER_ERROR, error.to_string())
7}
8
9pub trait InternalServiceError<T> {
10    fn internal_server_error(self) -> Result<T, (StatusCode, String)>;
11}
12
13impl<T, E: Error> InternalServiceError<T> for Result<T, E> {
14    fn internal_server_error(self) -> Result<T, (StatusCode, String)> {
15        self.map_err(internal_server_error)
16    }
17}