actix_rewrite/
error.rs

1//! Error and Result module
2
3use actix_web::ResponseError;
4use derive_more::{Display, Error, From};
5
6/// Errors which occur when processing Reverse Proxy Requests/Responses
7#[derive(Debug, Display, From, Error)]
8#[non_exhaustive]
9pub enum Error {
10    #[display("Invalid rewrite expression")]
11    RuleError(mod_rewrite::error::ExpressionError),
12
13    #[display("Rewrite engine encountered an error")]
14    RewriteError(mod_rewrite::error::EngineError),
15
16    #[display("Rewrite returned invalid status code")]
17    InvalidStatus(actix_http::error::InvalidStatusCode),
18
19    #[display("Rewrite generated an invalid uri")]
20    InvalidUri(actix_http::uri::InvalidUri),
21
22    #[display("Rewrite query join failed to parse query")]
23    InvalidQuery(actix_web::error::QueryPayloadError),
24
25    #[display("Failed to decode rewritten url")]
26    UrlDecodeError(#[error(not(source))] String),
27
28    #[display("Failed to re-encode query-string")]
29    QueryEncodeError(serde_urlencoded::ser::Error),
30
31    #[display("Failed to build http request uri")]
32    RequestError(actix_web::error::HttpError),
33}
34
35impl ResponseError for Error {
36    /// Returns `500 Internal Server Error`.
37    fn status_code(&self) -> actix_web::http::StatusCode {
38        actix_web::http::StatusCode::INTERNAL_SERVER_ERROR
39    }
40}