Macro easy_service

Source
macro_rules! easy_service {
    (ASYNC
        $service_vis:vis $Service:ident,
        $Task:ident,
        $inner_vis:vis $Inner:ident { $($fields:tt)* }
    ) => { ... };
    (ASYNC
        $service_vis:vis $Service:ident,
        $Task:ident,
        $inner_vis:vis $Inner:ident <$($S:ident),*> { $($fields:tt)* }
        where $($preds:tt)*
    ) => { ... };
    (SYNC
        $service_vis:vis $Service:ident,
        $Task:ident,
        $inner_vis:vis $Inner:ident { $($fields:tt)* }
    ) => { ... };
    (SYNC
        $service_vis:vis $Service:ident,
        $Task:ident,
        $inner_vis:vis $Inner:ident <$($S:ident),*> { $($fields:tt)* }
        where $($preds:tt)*
    ) => { ... };
    (TASK $boxed_task:ident) => { ... };
    (TASK $task:expr) => { ... };
    ($Inner:ident { $($fields:tt)* }) => { ... };
    (@impl
        $service_vis:vis $Service:ident,
        $Task:ident,
        $Handle:ty,
        $inner_vis:vis $Inner:ident { $($fields:tt)* }
    ) => { ... };
    (@impl
        $service_vis:vis $Service:ident,
        $Task:ident,
        $Handle:ty,
        $inner_vis:vis $Inner:ident <$($S:ident),*> { $($fields:tt)* }
        where $($preds:tt)*
    ) => { ... };
    (@as_item $($i:item)*) => { ... };
    (@Service) => { ... };
    (@ServiceClone) => { ... };
    (@Inner) => { ... };
    (@InnerSync) => { ... };
    (@InnerAsync) => { ... };
    (@InnerDrop) => { ... };
}