askama_web/implementation/
salvo_core_0_76.rs1pub use askama::Template;
2use http_1::StatusCode;
3use salvo_core_0_76::writing::Text;
4pub use salvo_core_0_76::{Response, Scribe};
5
6#[cfg(feature = "derive")]
7pub use crate::__askama_web_impl_salvo_core_0_76 as derive;
8
9#[cfg(feature = "derive")]
10#[macro_export]
11#[doc(hidden)]
12macro_rules! __askama_web_impl_salvo_core_0_76 {
13 (@ $ast:tt) => {
14 $crate::__askama_web_impl::askama_web_derive::impl_framework! {
15 $crate::__askama_web_impl::salvo_core_0_76::derive!($ast);
16 }
17 };
18 (
19 ident: [$ident:ident],
20 impl_generics: [$($impl_generics:tt)*],
21 ty_generics: [$($ty_generics:tt)*],
22 where_clause: [$($where_clause:tt)*],
23 ) => {
24 const _: () = {
25 use $crate::__askama_web_impl::salvo_core_0_76 as __askama_web;
26
27 impl $($impl_generics)* __askama_web::Scribe
28 for $ident $($ty_generics)* $($where_clause)* {
29 #[inline]
30 #[track_caller]
31 fn render(self, res: &mut __askama_web::Response) {
32 let result = <Self as __askama_web::Template>::render(&self);
33 __askama_web::render(result, res)
34 }
35 }
36 };
37 };
38}
39
40impl<T: Template> Scribe for crate::WebTemplate<T> {
41 #[inline]
42 #[track_caller]
43 fn render(self, res: &mut Response) {
44 render(T::render(&self.0), res)
45 }
46}
47
48#[track_caller]
49pub fn render(result: askama::Result<String>, res: &mut Response) {
50 match result {
51 Ok(body) => Text::Html(body).render(res),
52 Err(err) => {
53 crate::render_error(&err);
54 StatusCode::INTERNAL_SERVER_ERROR.render(res)
55 }
56 }
57}