aboutsummaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/error.rs b/src/error.rs
deleted file mode 100644
index fe998d0..0000000
--- a/src/error.rs
+++ /dev/null
@@ -1,69 +0,0 @@
-//! Provides the [`crate::Error`] type.
-
-use thiserror::Error;
-use hyper::StatusCode;
-
-/// Encapsulates a status code and an error message.
-#[derive(Error, Debug)]
-#[error("SimpleError({code}, {message})")]
-pub struct SimpleError {
- pub code: StatusCode,
- pub message: String,
-}
-
-impl SimpleError {
- /// Returns an HTTP response builder with the status code set to `self.code`.
- pub fn response_builder(&self) -> hyper::http::response::Builder {
- hyper::Response::builder().status(self.code)
- }
-}
-
-/// Error type for request handlers.
-///
-/// All client errors in [`crate::request`] implement [`Into<Error::Simple>`].
-#[derive(Error, Debug)]
-pub enum Error {
- #[error("SimpleError({}, {})", .0.code, .0.message)]
- Simple(#[from] SimpleError),
-
- #[error("ResponseError({})", .0.status())]
- Response(hyper::Response<hyper::Body>),
-}
-
-impl Error {
- // some convenience methods
-
- pub fn simple(code: StatusCode, message: String) -> Self {
- Error::Simple(SimpleError{code, message})
- }
-
- pub fn bad_request(message: String) -> Self {
- Error::Simple(SimpleError{code: StatusCode::BAD_REQUEST, message})
- }
-
- pub fn not_found(message: String) -> Self {
- Error::Simple(SimpleError{code: StatusCode::NOT_FOUND, message})
- }
-
- pub fn unauthorized(message: String) -> Self {
- Error::Simple(SimpleError{code: StatusCode::UNAUTHORIZED, message})
- }
-
- pub fn internal(message: String) -> Self {
- Error::Simple(SimpleError{code: StatusCode::INTERNAL_SERVER_ERROR, message})
- }
-
- pub fn method_not_allowed(message: String) -> Self {
- Error::Simple(SimpleError{code: StatusCode::METHOD_NOT_ALLOWED, message})
- }
-}
-
-macro_rules! impl_into_error_simple {
- ($type:ident, $status:expr) => {
- impl From<$type> for crate::error::Error {
- fn from(err: $type) -> Self {
- Self::Simple(crate::error::SimpleError{code: $status, message: format!("{}", err)})
- }
- }
- };
-} \ No newline at end of file