diff --git a/src/unroll_int.rs b/src/unroll_int.rs index 6771527..43e191c 100644 --- a/src/unroll_int.rs +++ b/src/unroll_int.rs @@ -7,32 +7,31 @@ macro_rules! create_unroll_int { [$( create_unroll_int!(replace@ ($num, 0)) ),*] }; - ($first:literal $($rest:literal)* | $($acc:tt)*) => { + ([$first:tt $($rest:tt)*] | $($acc:tt)*) => { create_unroll_int! { - $($rest)* + [$($rest)*] | ($first) => { create_unroll_int!(turn_into_zero_array@ $($rest)*) }; $($acc)* } }; - (| $($acc:tt)*) => { + ([] | $($acc:tt)*) => { macro_rules! unroll_int { $($acc)* } }; - ($($num:literal)*) => { - create_unroll_int! { $($num)* | } + ($($num:tt)*) => { + create_unroll_int! { [$($num)*] | } }; } create_unroll_int! { - // 20 19 18 17 16 15 14 13 12 11 - //10 9 8 7 6 5 4 3 - 2 1 0 + 20 19 18 17 16 15 14 13 12 11 + 10 9 8 7 6 5 4 3 1 2 0 } fn x() { - let x = unroll_int!(0); + let x = unroll_int!(20); }