Struct gotham::handler::HandlerError

source ·
pub struct HandlerError { /* private fields */ }
Expand description

Describes an error which occurred during handler execution, and allows the creation of a HTTP Response.

Implementations§

source§

impl HandlerError

source

pub fn status(&self) -> StatusCode

Returns the HTTP status code associated with this HandlerError.

source

pub fn with_status(self, status_code: StatusCode) -> HandlerError

Sets the HTTP status code of the response which is generated by the IntoResponse implementation.

fn handler(state: State) -> Pin<Box<HandlerFuture>> {
    // It's OK if this is bogus, we just need something to convert into a `HandlerError`.
    let io_error = std::io::Error::last_os_error();

    let handler_error = HandlerError::from(io_error).with_status(StatusCode::IM_A_TEAPOT);

    future::err((state, handler_error)).boxed()
}

let test_server = TestServer::new(|| Ok(handler)).unwrap();
let response = test_server
    .client()
    .get("http://example.com/")
    .perform()
    .unwrap();
assert_eq!(response.status(), StatusCode::IM_A_TEAPOT);
source

pub fn cause(&self) -> &Error

Returns the cause of this error by reference.

source

pub fn into_cause(self) -> Error

Returns the cause of this error.

source

pub fn downcast_cause_ref<E>(&self) -> Option<&E>
where E: Display + Debug + Send + Sync + 'static,

Attempt to downcast the cause by reference.

source

pub fn downcast_cause_mut<E>(&mut self) -> Option<&mut E>
where E: Display + Debug + Send + Sync + 'static,

Attempt to downcast the cause by mutable reference.

Trait Implementations§

source§

impl Debug for HandlerError

source§

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

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

impl<E> From<E> for HandlerError
where E: Into<Error> + Display,

Convert a generic anyhow::Error into a HandlerError, similar as you would a concrete error type with into_handler_error().

source§

fn from(error: E) -> HandlerError

Converts to this type from the input type.
source§

impl IntoResponse for HandlerError

source§

fn into_response(self, state: &State) -> Response<Body>

Converts this value into a hyper::Response

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<!> for T

source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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>,

§

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

§

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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more