pub struct FlatbedRouteError<D = ()> {
pub status: StatusCode,
pub code: String,
pub message: String,
pub headers: HeaderMap,
pub details: Option<D>,
}Expand description
HTTP-conformant error type with status code, error code, and optional details
The generic parameter D is the type for structured error details (must be a
flatbed-generated struct implementing ToFlatBuffer). Defaults to () for
errors without structured details.
§Example
ⓘ
// Simple error without details
return Err(FlatbedRouteError::bad_request("Invalid input"));
// Error with code
return Err(FlatbedRouteError::bad_request("Validation failed")
.code("VALIDATION_ERROR"));
// Error with typed details (flatbed-generated struct)
return Err(FlatbedRouteError::bad_request("Validation failed")
.code("VALIDATION_ERROR")
.with_details(ValidationErrorDetails {
field: Some("email".into()),
reason: Some("Invalid format".into()),
}));Fields§
§status: StatusCodeHTTP status code
code: StringApplication-defined error code (e.g., “VALIDATION_ERROR”)
message: StringHuman-readable error message
headers: HeaderMapResponse headers
details: Option<D>Optional structured error details
Implementations§
Source§impl FlatbedRouteError<()>
impl FlatbedRouteError<()>
Sourcepub fn bad_request(message: impl Into<String>) -> Self
pub fn bad_request(message: impl Into<String>) -> Self
Create a 400 Bad Request error
Create a 401 Unauthorized error
Sourcepub fn unprocessable(message: impl Into<String>) -> Self
pub fn unprocessable(message: impl Into<String>) -> Self
Create a 422 Unprocessable Entity error
Sourcepub fn with_status(status: StatusCode, message: impl Into<String>) -> Self
pub fn with_status(status: StatusCode, message: impl Into<String>) -> Self
Create an error with custom status code
Source§impl<D> FlatbedRouteError<D>
impl<D> FlatbedRouteError<D>
Sourcepub fn header(self, key: impl AsRef<str>, value: impl AsRef<str>) -> Self
pub fn header(self, key: impl AsRef<str>, value: impl AsRef<str>) -> Self
Add a header to the error response (builder pattern)
Sourcepub fn with_details<D2>(self, details: D2) -> FlatbedRouteError<D2>
pub fn with_details<D2>(self, details: D2) -> FlatbedRouteError<D2>
Add structured details to the error, changing the type parameter
Sourcepub fn status_code(&self) -> StatusCode
pub fn status_code(&self) -> StatusCode
Get the HTTP status code
Trait Implementations§
Source§impl<D: Clone> Clone for FlatbedRouteError<D>
impl<D: Clone> Clone for FlatbedRouteError<D>
Source§impl<D: Debug> Debug for FlatbedRouteError<D>
impl<D: Debug> Debug for FlatbedRouteError<D>
Source§impl<D> Display for FlatbedRouteError<D>
impl<D> Display for FlatbedRouteError<D>
Source§impl<D: Debug> Error for FlatbedRouteError<D>
impl<D: Debug> Error for FlatbedRouteError<D>
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl<D> Freeze for FlatbedRouteError<D>
impl<D> RefUnwindSafe for FlatbedRouteError<D>where
Option<D>: RefUnwindSafe,
impl<D> Send for FlatbedRouteError<D>
impl<D> Sync for FlatbedRouteError<D>
impl<D> Unpin for FlatbedRouteError<D>
impl<D> UnsafeUnpin for FlatbedRouteError<D>where
Option<D>: UnsafeUnpin,
impl<D> UnwindSafe for FlatbedRouteError<D>where
Option<D>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more