Struct Error

Source
pub struct Error { /* private fields */ }
Expand description

The error type used by the Hyperdrive library.

This type can be turned into an HTTP response and sent back to a client.

Implementations§

Source§

impl Error

Source

pub fn from_status(status: StatusCode) -> Self

Creates an error that contains just the given StatusCode.

§Panics

This will panic when called with a status that does not indicate a client or server error.

Source

pub fn with_source<S>(status: StatusCode, source: S) -> Self
where S: Into<BoxedError>,

Creates an error from an HTTP error code and an underlying error that caused this one.

Responding with the returned Error will not send a response body back to the client.

§Parameters
  • status: The HTTP StatusCode describing the error.
  • source: The underlying error that caused this one. Any type implementing std::error::Error + Send + Sync can be passed here.
§Panics

This will panic when called with a status that does not indicate a client or server error.

Source

pub fn wrong_method<M>(allowed_methods: M) -> Self
where M: Into<Cow<'static, [&'static Method]>>,

Creates an error with status code 405 Method Not Allowed and includes the allowed set of HTTP methods.

This is called by the code generated by #[derive(FromRequest)] and usually does not need to be called by the user (it may be difficult to determine the full set of allowed methods for a given path).

Calling Error::response on the error created by this function will automatically include an Allow header listing all allowed methods. Including this header is required by RFC 7231.

§Parameters
  • allowed_methods: The list of allowed HTTP methods for the path in the request. This can be empty, but usually should contain at least one method.
Source

pub fn http_status(&self) -> StatusCode

Returns the HTTP status code that describes this error.

Source

pub fn response(&self) -> Response<()>

Creates an HTTP response for indicating this error to the client.

No body will be provided (hence the () body type), but the caller can map the result to supply one.

§Example

Call map on the response to supply your own HTTP payload:

use http::StatusCode;
use hyper::Body;

let error = Error::from_status(StatusCode::NOT_FOUND);
let response = error.response()
    .map(|()| Body::from("oh no!"));
Source

pub fn allowed_methods(&self) -> Option<&[&'static Method]>

If self is a 405 Method Not Allowed error, returns the list of allowed methods.

Returns None if self is a different kind of error.

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Display for Error

Source§

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

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

impl Error for Error

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

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.
Source§

impl<T> ErasedDestructor for T
where T: 'static,