aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--askama_axum/Cargo.toml8
-rw-r--r--askama_axum/src/lib.rs17
-rw-r--r--askama_shared/src/generator.rs8
3 files changed, 17 insertions, 16 deletions
diff --git a/askama_axum/Cargo.toml b/askama_axum/Cargo.toml
index 7d3045d..998f54a 100644
--- a/askama_axum/Cargo.toml
+++ b/askama_axum/Cargo.toml
@@ -1,7 +1,6 @@
[package]
name = "askama_axum"
version = "0.10.0"
-authors = ["Michael Alyn Miller <malyn@strangeGizmo.com>"]
edition = "2018"
description = "Axum integration for Askama templates"
keywords = ["markup", "template", "jinja2", "html", "axum"]
@@ -14,10 +13,13 @@ workspace = ".."
readme = "README.md"
[dependencies]
-askama = { version = "0.11.0-beta.1", path = "../askama", default-features = false, features = ["with-axum", "mime", "mime_guess"] }
-axum = { version = "0.3", default-features = false }
+askama = { version = "0.11.0", path = "../askama", default-features = false, features = ["with-axum", "mime", "mime_guess"] }
+axum-core = "0.1"
+http = "0.2"
+http-body = "0.4"
[dev-dependencies]
+axum = { version = "0.4", default-features = false }
hyper = { version = "0.14", features = ["full"] }
tokio = { version = "1.0", features = ["full"] }
tower = { version = "0.4", features = ["util"] } \ No newline at end of file
diff --git a/askama_axum/src/lib.rs b/askama_axum/src/lib.rs
index 0c21464..859b19e 100644
--- a/askama_axum/src/lib.rs
+++ b/askama_axum/src/lib.rs
@@ -1,13 +1,14 @@
#![deny(elided_lifetimes_in_paths)]
pub use askama::*;
-use axum::{
- self,
- body::{Bytes, Full},
- http::{Response, StatusCode},
-};
+use axum_core::body;
+pub use axum_core::body::BoxBody;
+pub use axum_core::response::IntoResponse;
+pub use http::Response;
+use http::StatusCode;
+use http_body::{Empty, Full};
-pub fn into_response<T: Template>(t: &T, ext: &str) -> axum::http::Response<Full<Bytes>> {
+pub fn into_response<T: Template>(t: &T, ext: &str) -> Response<BoxBody> {
match t.render() {
Ok(body) => Response::builder()
.status(StatusCode::OK)
@@ -15,11 +16,11 @@ pub fn into_response<T: Template>(t: &T, ext: &str) -> axum::http::Response<Full
"content-type",
askama::mime::extension_to_mime_type(ext).to_string(),
)
- .body(body.into())
+ .body(body::boxed(Full::from(body)))
.unwrap(),
Err(_) => Response::builder()
.status(StatusCode::INTERNAL_SERVER_ERROR)
- .body(vec![].into())
+ .body(body::boxed(Empty::new()))
.unwrap(),
}
}
diff --git a/askama_shared/src/generator.rs b/askama_shared/src/generator.rs
index 368db9f..738b878 100644
--- a/askama_shared/src/generator.rs
+++ b/askama_shared/src/generator.rs
@@ -227,12 +227,10 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
// Implement Axum's `IntoResponse`.
fn impl_axum_into_response(&mut self, buf: &mut Buffer) -> Result<(), CompileError> {
- self.write_header(buf, "::axum::response::IntoResponse", None)?;
+ self.write_header(buf, "::askama_axum::IntoResponse", None)?;
buf.writeln(
- "type Body = ::axum::body::Full<::axum::body::Bytes>;\n\
- type BodyError = std::convert::Infallible;\n\
- fn into_response(self)\
- -> ::axum::http::Response<Self::Body> {",
+ "fn into_response(self)\
+ -> ::askama_axum::Response<::askama_axum::BoxBody> {",
)?;
let ext = self.input.extension().unwrap_or("txt");
buf.writeln(&format!("::askama_axum::into_response(&self, {:?})", ext))?;