From f05a924c49afb537b624cfe3cbef3a95b13759a2 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Thu, 21 Jun 2018 12:17:45 +0200 Subject: Inline TemplateMeta into TemplateInput --- askama_derive/src/input.rs | 43 ++++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 23 deletions(-) (limited to 'askama_derive/src/input.rs') diff --git a/askama_derive/src/input.rs b/askama_derive/src/input.rs index 62c1072..6c631be 100644 --- a/askama_derive/src/input.rs +++ b/askama_derive/src/input.rs @@ -7,34 +7,15 @@ use syn; pub struct TemplateInput<'a> { pub ast: &'a syn::DeriveInput, - pub meta: TemplateMeta, - pub path: PathBuf, -} - -impl<'a> TemplateInput<'a> { - pub fn new(ast: &'a syn::DeriveInput) -> TemplateInput<'a> { - let meta = TemplateMeta::new(ast); - let path = match meta.source { - Source::Source(_) => match meta.ext { - Some(ref v) => PathBuf::from(format!("{}.{}", ast.ident, v)), - None => PathBuf::new(), - }, - Source::Path(ref s) => path::find_template_from_path(s, None), - }; - TemplateInput { ast, meta, path } - } -} - -// Holds metadata for the template, based on the `template()` attribute. -pub struct TemplateMeta { pub source: Source, pub print: Print, pub escaping: EscapeMode, pub ext: Option, + pub path: PathBuf, } -impl TemplateMeta { - fn new(ast: &syn::DeriveInput) -> TemplateMeta { +impl<'a> TemplateInput<'a> { + pub fn new(ast: &'a syn::DeriveInput) -> TemplateInput<'a> { let attr = ast.attrs .iter() .find(|a| a.interpret_meta().unwrap().name() == "template"); @@ -115,7 +96,23 @@ impl TemplateMeta { } }, }; - TemplateMeta { source, print, escaping, ext } + + let path = match source { + Source::Source(_) => match ext { + Some(ref v) => PathBuf::from(format!("{}.{}", ast.ident, v)), + None => PathBuf::new(), + }, + Source::Path(ref s) => path::find_template_from_path(s, None), + }; + + TemplateInput { + ast, + source, + print, + escaping, + ext, + path, + } } } -- cgit