diff options
Diffstat (limited to '')
-rw-r--r-- | testing/tests/rust_macro.rs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/testing/tests/rust_macro.rs b/testing/tests/rust_macro.rs index 8d2543d..2efe8be 100644 --- a/testing/tests/rust_macro.rs +++ b/testing/tests/rust_macro.rs @@ -17,25 +17,29 @@ fn main() { } macro_rules! call_a_or_b_on_tail { - ((a: $a:expr, b: $b:expr), call a: $($tail:tt)*) => { - $a(stringify!($($tail)*)) + ((a: $a:expr, b: $b:expr, c: $c:expr), call a: $($tail:expr),*) => { + ($a)($($tail),*) }; - ((a: $a:expr, b: $b:expr), call b: $($tail:tt)*) => { - $b(stringify!($($tail)*)) + ((a: $a:expr, b: $b:expr, c: $c:expr), call b: $($tail:expr),*) => { + ($b)($($tail),*) }; - ($ab:tt, $_skip:tt $($tail:tt)*) => { - call_a_or_b_on_tail!($ab, $($tail)*) + ((a: $a:expr, b: $b:expr, c: $c:expr), call c: $($tail:expr),*) => { + ($c)($($tail),*) }; } -fn compute_len(s: &str) -> usize { - s.len() +fn year(y: u16, _: &str, _: u8) -> u16 { + y } -fn zero(_s: &str) -> usize { - 0 +fn month(_: u16, m: &str, _: u8) -> &str { + m +} + +fn day(_: u16, _: &str, d: u8) -> u8 { + d } #[derive(Template)] @@ -45,5 +49,5 @@ struct RustMacrosArgTemplate {} #[test] fn args() { let template = RustMacrosArgTemplate {}; - assert_eq!("0\n17\n25", template.render().unwrap()); + assert_eq!("2021\nJuly\n2", template.render().unwrap()); } |