From a9132fd6c78d0cc740686d5acc89267f5fa2fc7b Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 31 Mar 2022 22:40:45 +0200 Subject: Simplify the implementation of askama_axum --- askama_axum/Cargo.toml | 1 - askama_axum/src/lib.rs | 25 +++++++++---------------- askama_shared/src/generator.rs | 2 +- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/askama_axum/Cargo.toml b/askama_axum/Cargo.toml index 283fd2a..834daf4 100644 --- a/askama_axum/Cargo.toml +++ b/askama_axum/Cargo.toml @@ -16,7 +16,6 @@ readme = "README.md" askama = { version = "0.11.0", path = "../askama", default-features = false, features = ["with-axum", "mime", "mime_guess"] } axum-core = "0.2" http = "0.2" -http-body = "0.4" [dev-dependencies] axum = { version = "0.5", default-features = false } diff --git a/askama_axum/src/lib.rs b/askama_axum/src/lib.rs index 1048674..da3d699 100644 --- a/askama_axum/src/lib.rs +++ b/askama_axum/src/lib.rs @@ -3,26 +3,19 @@ #![deny(unreachable_pub)] pub use askama::*; -use axum_core::body; -pub use axum_core::body::BoxBody; -pub use axum_core::response::IntoResponse; -pub use http::Response; +pub use axum_core::response::{IntoResponse, Response}; use http::StatusCode; -use http_body::{Empty, Full}; -pub fn into_response(t: &T, _ext: &str) -> Response { +pub fn into_response(t: &T, _ext: &str) -> Response { match t.render() { - Ok(body) => Response::builder() - .status(StatusCode::OK) - .header( + Ok(body) => { + let headers = [( http::header::CONTENT_TYPE, http::HeaderValue::from_static(T::MIME_TYPE), - ) - .body(body::boxed(Full::from(body))) - .unwrap(), - Err(_) => Response::builder() - .status(StatusCode::INTERNAL_SERVER_ERROR) - .body(body::boxed(Empty::new())) - .unwrap(), + )]; + + (headers, body).into_response() + } + Err(_) => StatusCode::INTERNAL_SERVER_ERROR.into_response(), } } diff --git a/askama_shared/src/generator.rs b/askama_shared/src/generator.rs index c9e482d..fc520d8 100644 --- a/askama_shared/src/generator.rs +++ b/askama_shared/src/generator.rs @@ -292,7 +292,7 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> { buf.writeln("#[inline]")?; buf.writeln( "fn into_response(self)\ - -> ::askama_axum::Response<::askama_axum::BoxBody> {", + -> ::askama_axum::Response {", )?; let ext = self.input.extension().unwrap_or("txt"); buf.writeln(&format!("::askama_axum::into_response(&self, {:?})", ext))?; -- cgit