enum action { nop = 0, update, ACTION_MAX, }; enum element_e { ELEMENT_INVALID = 0, #define ELEMENT(identifier, _function, _arg, _minutes, _seconds) \ ELEMENT_##identifier, #include "config.def.h" #undef ELEMENT ELEMENT_MAX, }; const char* element_str[] = { [ELEMENT_INVALID] = "ELEMENT_INVALID", #define ELEMENT(identifier, _function, _arg, _minutes, _seconds) \ [ELEMENT_##identifier] = "ELEMENT_" #identifier, #include "config.def.h" #undef ELEMENT }; struct message_t { enum element_e element; enum action action; };