Converts an async-compatible function into a builder and modifies function’s body
to parse all required arguments, for further information about the behaviour of this macro, see
the implementation.
Implements Parse for an enum, allowing it to be used as a command argument.
The enum will be seen by the user as a list of options to choose from, and one of the variants
will have to be selected.