Context
setup_deserializable_struct!() macro creates and sets up all the serde structs and trait implementations required for Settings and its sub-structs to be deserialized from settings passed via lua setup() function. Other structs such as TaskDisplay, TaskDisplayFloatSize are also required to be deserialized since they are part of plugin settings structure.
The current design of the macro does not differentiate between structs and enums when it implements the relevant traits.
Proposal
Change the design of these macros to make them modular so that setup_deserializable_struct!() macro can call itself as well as the setup_deserializable_enum!() macro depending on the field types.
Context
setup_deserializable_struct!()macro creates and sets up all the serde structs and trait implementations required forSettingsand its sub-structs to be deserialized from settings passed via luasetup()function. Other structs such asTaskDisplay,TaskDisplayFloatSizeare also required to be deserialized since they are part of plugin settings structure.The current design of the macro does not differentiate between structs and enums when it implements the relevant traits.
Proposal
Change the design of these macros to make them modular so that
setup_deserializable_struct!()macro can call itself as well as thesetup_deserializable_enum!()macro depending on the field types.