temply 0.3.0

Simple, opinionated template engine
Documentation
mod util;

use temply::Template;

#[test]
fn test_simple() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let x = 12 %}{{ x }}"]
    struct MyTemplate;

    assert_render!(MyTemplate, "12");
}

#[test]
fn test_semicolon() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let x = 12 %}{{ x }},{% let y = 3; %}{{ y }}"]
    struct MyTemplate;

    assert_render!(MyTemplate, "12,3");
}

#[test]
fn test_multiple() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let x = 1 %}{% let y = 2 %}{{ x + y }}"]
    struct MyTemplate;

    assert_render!(MyTemplate, "3");
}

#[test]
fn test_mut() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let mut x = 1 %}{{ {let copy = x; x += 1; copy} }}, {{ x }}"]
    struct MyTemplate;

    assert_render!(MyTemplate, "1, 2");
}

#[test]
fn test_pattern() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let (x, mut y) = (12, 13) %}{{ x + y}}"]
    struct MyTemplate;

    assert_render!(MyTemplate, "25");
}

#[test]
fn test_shadowing() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let x = 12 %}{{ x }}, {% let x = 5 %}{{ x }}"]
    struct MyTemplate;

    assert_render!(MyTemplate, "12, 5");
}

#[test]
fn test_access_self() {
    #[derive(Debug, Template)]
    #[template_inline = "{% let x = self.double(4) %}{{ x }}"]
    struct MyTemplate;

    impl MyTemplate {
        fn double(&self, x: i32) -> i32 {
            x * 2
        }
    }

    assert_render!(MyTemplate, "8");
}