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 re-encode query-string")]
26 QueryEncodeError(serde_urlencoded::ser::Error),
27
28 #[display("Failed to build http request uri")]
29 RequestError(actix_web::error::HttpError),
30}
31
32impl ResponseError for Error {
33 fn status_code(&self) -> actix_web::http::StatusCode {
35 actix_web::http::StatusCode::INTERNAL_SERVER_ERROR
36 }
37}