A lot of the logic of the dispatcher/command router is behind an obscure
macro.
Some optimizations are:
Prior each command was their own individual struct, sharing only a
common trait. That was pointless. To improve this and remove all
dynamic bits from runtime a single Command struct is available now.
It is created in a Dispatcher object, one instance of command per
command, with all their definition. Having the same struct removes
the need of a dynamic trait.
The command struct definition is outside of a macro, making the
code more readable.
A lot of the logic of the dispatcher/command router is behind an obscure macro.
Some optimizations are: