diff options
Diffstat (limited to '')
| -rw-r--r-- | askama_derive/src/lib.rs | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/askama_derive/src/lib.rs b/askama_derive/src/lib.rs index 752978e..f823299 100644 --- a/askama_derive/src/lib.rs +++ b/askama_derive/src/lib.rs @@ -19,9 +19,16 @@ struct TemplateMeta {  // in the parsed struct or enum. Will panic if it does not find the required  // template path, or if the `print` key has an unexpected value.  fn get_template_meta(ast: &syn::DeriveInput) -> TemplateMeta { +    let attr = ast.attrs.iter().find(|a| a.name() == "template"); +    if attr.is_none() { +        let msg = format!("'template' attribute not found on struct '{}'", +                          ast.ident.as_ref()); +        panic!(msg); +    } + +    let attr = attr.unwrap();      let mut path = None;      let mut print = "none".to_string(); -    let attr = ast.attrs.iter().find(|a| a.name() == "template").unwrap();      if let syn::MetaItem::List(_, ref inner) = attr.value {          for nm_item in inner {              if let syn::NestedMetaItem::MetaItem(ref item) = *nm_item { | 
