Skip to main content

RequestError

Struct RequestError 

Source
#[non_exhaustive]
pub struct RequestError { /* private fields */ }
Expand description

A request-level JMAP error response: HTTP status code + JMAP error body.

Used when an error occurs before method dispatch (e.g., parse failure, unknown capability). Derives the HTTP status from the error type via error_status. Use request_error to construct.

Call RequestError::into_response to produce an http::Response<String> with the RFC 7807 Problem Details body. Any HTTP framework that works with the http crate (axum, hyper, warp, etc.) accepts this directly.

Implementations§

Source§

impl RequestError

Source

pub fn into_response(self) -> Response<String>

Convert into an HTTP response with an RFC 7807 Problem Details body.

The Content-Type is application/problem+json. The body is a JSON object with at minimum "type" (full URN) and "status" fields per RFC 7807 §3.1, plus "limit" for limit errors (RFC 8620 §3.6.1).

Trait Implementations§

Source§

impl Debug for RequestError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for RequestError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Render as "<status>: <error_type>[: <description>]" for log/diagnostic output. The HTTP status is included because RequestError is the request-level error type and the status is the most actionable field for operators.

Source§

impl Error for RequestError

1.30.0 · Source§

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

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<JmapError> for RequestError

Source§

fn from(err: JmapError) -> Self

Convert a JmapError into a RequestError, deriving the HTTP status code automatically via error_status.

Enables ? propagation in functions returning Result<_, RequestError>. Pass only request-level errors; see error_status for the safe list.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.