But it seems to conflict with the :vis designator and I'm not sure what would be the proper designator - I guessed token tree but that led to:
$vis:vis $($a_sync:tt)? fn $name:ident ( $arg1:ident : $arg1_type:ty, $( $arg_name:ident : $arg_ty:ty ),* $(,)? ),
| ^^^^^^^^^^ not allowed after vis fragments
|
= note: allowed there are: ,, an ident or a type
@H2CO3 but is the resulting function that gets created async? I'm missing how the output of the macro is generating an async fn if you're still returning only $vis fn $name.... Is the presence of async accounted for by $vis?
I don't believe there is any way to retrieve literal identifiers in the transcriber part of the macro, and simply using $async:ident or $async:path also fails due to ambiguity.