macro_rules! async_fn { (|$($argv:ident$(:$argt:ty)?),*|$body:expr) => { ... }; (||$body:expr) => { ... }; }