arpx 0.5.0

Small-scale process orchestration
Documentation
#[macro_export]
macro_rules! test {
    ($name:ident, $fn:expr) => {
        #[test]
        fn $name() {
            let test_object = crate::common::TC::new(stringify!($name));

            $fn(test_object);
        }
    };
}

#[macro_export]
macro_rules! debug {
    ($input:expr) => {
        assert_eq!(vec![""], $input);
    };
}

#[macro_export]
macro_rules! assert_btw {
    ($expected:expr, $got:expr, $before_index:expr, $after_index:expr) => {
        let after_index = $after_index;
        let before_index = $before_index;
        let expected = &*$expected;
        let got = &*$got;

        let got_index = got
            .iter()
            .position(|item| item.contains(expected))
            .expect(&format!("Expected expression \"{}\" not found in given output", expected)[..]);

        let valid = got_index > before_index && got_index < after_index;

        if !valid {
            panic!("Expected index was not between before and after.\n\tGot: {}\n\tBefore: {}\n\tAfter: {}", got_index, before_index, after_index);
        }
    };
}