aboutsummaryrefslogtreecommitdiffstats
path: root/askama_shared/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--askama_shared/src/generator.rs4
-rw-r--r--askama_shared/src/input.rs6
2 files changed, 10 insertions, 0 deletions
diff --git a/askama_shared/src/generator.rs b/askama_shared/src/generator.rs
index 5c6303c..cd18819 100644
--- a/askama_shared/src/generator.rs
+++ b/askama_shared/src/generator.rs
@@ -165,6 +165,10 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
buf.writeln(&format!("{}", size_hint))?;
buf.writeln(";")?;
+ buf.writeln("const MIME_TYPE: &'static ::std::primitive::str = ")?;
+ buf.writeln(&format!("{:?}", &self.input.mime_type))?;
+ buf.writeln(";")?;
+
buf.writeln("}")?;
Ok(())
}
diff --git a/askama_shared/src/input.rs b/askama_shared/src/input.rs
index a679461..17410ed 100644
--- a/askama_shared/src/input.rs
+++ b/askama_shared/src/input.rs
@@ -14,6 +14,7 @@ pub struct TemplateInput<'a> {
pub print: Print,
pub escaper: &'a str,
pub ext: Option<String>,
+ pub mime_type: String,
pub parent: Option<&'a syn::Type>,
pub path: PathBuf,
}
@@ -180,6 +181,10 @@ impl TemplateInput<'_> {
CompileError::String(format!("no escaper defined for extension '{}'", escaping,))
})?;
+ let mime_type =
+ extension_to_mime_type(ext_default_to_path(ext.as_deref(), &path).unwrap_or("txt"))
+ .to_string();
+
Ok(TemplateInput {
ast,
config,
@@ -188,6 +193,7 @@ impl TemplateInput<'_> {
print,
escaper,
ext,
+ mime_type,
parent,
path,
})