Macro implementing the GateSerializer trait.
To serialize a list of gates used for a circuit,
this macro should be called with a struct on which to implement
this as first argument, followed by all the targeted gates.
Macro implementing the WitnessGeneratorSerializer trait.
To serialize a list of generators used for a circuit,
this macro should be called with a struct on which to implement
this as first argument, followed by all the targeted generators.