diff options
Diffstat (limited to 'askama_derive/src')
-rw-r--r-- | askama_derive/src/input.rs | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/askama_derive/src/input.rs b/askama_derive/src/input.rs index 683c345..ce004a8 100644 --- a/askama_derive/src/input.rs +++ b/askama_derive/src/input.rs @@ -100,20 +100,13 @@ impl<'a> TemplateInput<'a> { syn::Data::Struct(syn::DataStruct { fields: syn::Fields::Named(ref fields), .. - }) => fields.named.iter().find(|f| { - if let Some(field_name) = f.ident.as_ref() { - field_name == "_parent" - } else { - false - } - }), + }) => fields + .named + .iter() + .find(|f| f.ident.as_ref().filter(|name| *name == "_parent").is_some()) + .map(|f| &f.ty), _ => panic!("derive(Template) only works for struct items"), }; - let parent = if let Some(parent) = parent { - Some(&parent.ty) - } else { - None - }; TemplateInput { ast, |