macro_rules! input_msg { ($lt:lifetime, $first:ty, $($rest:ty),+) => { ... }; ($lt:lifetime, $ty:ty) => { ... }; ($ty:ty) => { ... }; }