Macro slice
Source macro_rules! slice {
(@parse [$($stack:tt)*] $r:expr;$s:expr) => { ... };
(@parse [$($stack:tt)*] $r:expr) => { ... };
(@parse [$($stack:tt)*] $r:expr;$s:expr ,) => { ... };
(@parse $in_dim:expr, $out_dim:expr, [$($stack:tt)*] $r:expr ,) => { ... };
(@parse [$($stack:tt)*] $r:expr;$s:expr, $($t:tt)*) => { ... };
(@parse [$($stack:tt)*] $r:expr, $($t:tt)*) => { ... };
(@parse []) => { ... };
(@parse $($t:tt)*) => { ... };
(@convert $r:expr) => { ... };
(@convert $r:expr, $s:expr) => { ... };
(@final [$dim1:expr]) => { ... };
(@final [$dim1:expr, $dim2:expr]) => { ... };
(@final [$dim1:expr, $dim2:expr, $dim3:expr]) => { ... };
(@final [$dim1:expr, $dim2:expr, $dim3:expr, $dim4:expr]) => { ... };
($($t:tt)*) => { ... };
}