cps 0.2.3

Assists in the creation of readable and maintainable macro_rules! macros
Documentation
use cps::cps;

#[cps]
macro_rules! macro1 {
    () => { BaseCase };

    ($expr:expr) => { concat!("Got: ", $expr) };

    (@run stringify) =>
    let $x:tt = macro1!() in
    let $y:expr = cps::stringify!($x) in
    let $($z:tt)* = macro1!($y) in
    {
        $($z)*
    };

    (@run concat) =>
    let $x:tt = macro1!() in
    let $a:expr = cps::stringify!($x) in
    let $y:expr = cps::concat!(3, $a, true) in
    let $($z:tt)* = macro1!($y) in
    {
        $($z)*
    };

    (@run include) =>
    let $($y:tt)* = cps::include!("tests/test_file.txt") in
    let $z:tt = cps::stringify!($($y)*) in
    {
        $z
    };
}

#[test]
fn stringify_call() {
    assert_eq!(macro1!(@run stringify), "Got: BaseCase");
}

#[test]
fn concat_call() {
    assert_eq!(macro1!(@run concat), "Got: 3BaseCasetrue");
}

#[test]
fn include_call() {
    assert_eq!(
        macro1!(@run include),
        "this is a test file used for include macros testing!"
    );
}