goose
macro_rules! task { ($task_func:ident) => { ... }; }
Async tasks must be boxed and pinned for Goose to store and invoke them.