use actix_web::{HttpRequest, HttpResponse};
pub trait FallbackHandler: 'static + Clone {
#[allow(missing_docs)]
fn execute(&self, req: &HttpRequest) -> HttpResponse;
}
impl<T> FallbackHandler for T
where
T: Fn(&HttpRequest) -> HttpResponse + Clone + 'static,
{
fn execute(&self, req: &HttpRequest) -> HttpResponse {
(self)(req)
}
}
#[derive(Debug, Clone)]
pub struct DefaultFallbackHandler;
impl FallbackHandler for DefaultFallbackHandler {
fn execute(&self, _: &HttpRequest) -> HttpResponse {
HttpResponse::NotFound().body("404 Not Found")
}
}