Skip to main content

RequestError

Struct RequestError 

Source
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 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, 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.