diff --git a/maud/Cargo.toml b/maud/Cargo.toml index ab40265..7feca8f 100644 --- a/maud/Cargo.toml +++ b/maud/Cargo.toml @@ -17,6 +17,7 @@ maud_htmlescape = { version = "0.17.0", path = "../maud_htmlescape" } maud_macros = { version = "0.17.5", path = "../maud_macros" } iron = { version = ">= 0.5.1, < 0.7.0", optional = true } rocket = { version = "0.3", optional = true } +actix-web = { version = "0.6.12", optional = true } [dev-dependencies] maud_lints = { version = "0.17.0", path = "../maud_lints" } diff --git a/maud/src/lib.rs b/maud/src/lib.rs index 0a245ab..8dc7410 100644 --- a/maud/src/lib.rs +++ b/maud/src/lib.rs @@ -10,6 +10,7 @@ #![doc(html_root_url = "https://docs.rs/maud/0.17.5")] +#[cfg(feature = "actix-web")] extern crate actix_web; #[cfg(feature = "iron")] extern crate iron; #[cfg(feature = "rocket")] extern crate rocket; @@ -189,3 +190,17 @@ mod rocket_support { } } } + +#[cfg(feature = "actix-web")] +mod actix_support { + use PreEscaped; + use actix_web::{Responder, HttpResponse, HttpRequest, Error}; + + impl Responder for PreEscaped<String> { + type Item = HttpResponse; + type Error = Error; + fn respond_to<String>(self, _req: &HttpRequest<String>) -> Result<Self::Item, Self::Error> { + Ok(HttpResponse::Ok().body(self.0)) + } + } +}