1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#[macro_export]
macro_rules! timpl_if {
    ($bool:expr, $body:tt) => {
        if $bool {
            ::timpl::timpl!$body
        } else {
            "".to_string()
        }
    };
}

#[macro_export]
macro_rules! timpl_if_else {
    ($bool:expr, $body:tt, $else:tt) => {
        if $bool {
            ::timpl::timpl!$body
        } else {
            ::timpl::timpl!$else
        }
    };
}

#[macro_export]
macro_rules! timpl_map {
    ($items:expr, $ident:ident, $body:tt) => {
        ($items).map(|$ident| {
            ::timpl::timpl!$body
        }).collect::<String>()
    };
}

#[macro_export]
macro_rules! timpl_map_ln {
    ($items:expr, $ident:ident, $body:tt) => {
        ($items).map(|$ident| {
            ::timpl::timpl!$body
        }).collect::<Vec<String>>().join("\n")
    };
}