macro_rules! def_remote_sink { () => { ... }; ({ $variant_name:ident, $sink_type_name:ident, $sink_name:expr }) => { ... }; ({ $variant_name:ident, $sink_type_name:ident, $sink_name:expr, |$desc:ident| $body:expr }) => { ... }; ({ $($first:tt)+ } $({$($rest:tt)+})*) => { ... }; ($($invalid:tt)*) => { ... }; }