ct-for 0.1.1

macro to repeat code multiple times with different substitutions
Documentation
use ct_for::ct_for;

#[test]
fn basic() {
    let mut val = 0;
    ct_for!(x in [1, 3, 10] do
        val += x;
    );
    assert_eq!(val, 14);
}

#[test]
fn nested() {
    let mut val = 0;
    ct_for!(x in [1, 3, 10] do
        let mut tmp = x;
        ct_for!(y in (2, 4, 6) do
            tmp += y;
        );
        val += tmp;
    );
    assert_eq!(val, 13 + 15 + 22);
}

#[test]
fn do_not_substitute_literals() {
    let mut val = String::new();

    ct_for!(x in [1, 2, 3] do
        val += "x";
    );

    assert_eq!(val, "xxx".to_string());
}

#[test]
fn substitute_members() {
    struct Struct {
        x: i32,
    }

    let s = Struct { x: 15 };

    let mut val = 0;
    ct_for!(a in [x] do
        val += s.a;
    );
    assert_eq!(val, 15);
}