From fd59814f8ba9e3426dcc13c49f56c600d85c5d4e Mon Sep 17 00:00:00 2001 From: Coleman McFarland <coleman.mcfarland@gmail.com> Date: Mon, 11 Jun 2018 14:05:35 -0700 Subject: [PATCH] impl Responder for actix-web framework It looks similar to the Rocket implementation, and functionally is also similar: a syncronous response for PreEscaped<String> Refs #135 --- maud/Cargo.toml | 1 + maud/src/lib.rs | 15 +++++++++++++++ 2 files changed, 16 insertions(+) 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)) + } + } +}