#[macro_use]
extern crate askama;

use askama::Template;

#[derive(Template)]
#[template(source = "{% let v = s %}{{ v }}")]
struct LetTemplate<'a> {
    s: &'a str,
}

#[test]
fn test_let() {
    let t = LetTemplate { s: "foo" };
    assert_eq!(t.render().unwrap(), "foo");
}


#[derive(Template)]
#[template(path = "let-decl.html")]
struct LetDeclTemplate<'a> {
    cond: bool,
    s: &'a str,
}

#[test]
fn test_let_decl() {
    let t = LetDeclTemplate { cond: false, s: "bar" };
    assert_eq!(t.render().unwrap(), "bar");
}

#[macro_use]
extern crate askama;

use askama::Template;

#[derive(Template)]
#[template(path = "let.html")]
struct LetTemplate<'a> {
    s: &'a str,
}

#[test]
fn test_let() {
    let t = LetTemplate { s: "foo" };
    assert_eq!(t.render().unwrap(), "foo");
}


#[derive(Template)]
#[template(path = "let-decl.html")]
struct LetDeclTemplate<'a> {
    cond: bool,
    s: &'a str,
}

#[test]
fn test_let_decl() {
    let t = LetDeclTemplate { cond: false, s: "bar" };
    assert_eq!(t.render().unwrap(), "bar");
}

--- 
+++ 
@@ -4,7 +4,7 @@
 use askama::Template;
 
 #[derive(Template)]
-#[template(path = "let.html")]
+#[template(source = "{% let v = s %}{{ v }}")]
 struct LetTemplate<'a> {
     s: &'a str,
 }
Change one test case to use source attribute
