1use actix_web::ResponseError;
4use derive_more::{Display, Error, From};
5
6#[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 fn status_code(&self) -> actix_web::http::StatusCode {
38 actix_web::http::StatusCode::INTERNAL_SERVER_ERROR
39 }
40}