Caffa
1.1.0
C++ Application Framework for Embedded Systems with introspection
|
#include <cafAppEnum.h>
Public Types | |
using | DataType = Enum |
Public Member Functions | |
AppEnum (Enum value) | |
AppEnum (const std::string &value) | |
Enum | value () const |
auto | operator (const AppEnum &rhs) const =default |
AppEnum & | operator= (Enum value) |
void | setFromLabel (const std::string &label) |
void | setFromIndex (size_t index) |
std::optional< Enum > | enumVal (const std::string &label) const |
std::optional< Enum > | enumVal (size_t index) const |
size_t | size () const |
std::vector< std::string > | labels () const |
std::string | label () const |
std::string | label (Enum enumValue) const |
size_t | index (Enum enumValue) const |
An enum class wrapper to enable introspection and automatic I/O on enums.
Usage, in header: enum class SomeEnum { A = 2, B = 7 }; caffa::AppEnum<SomeEnum, "SomeEnum"> myEnum;
In cpp file: namespace caffa { template<> void caffa::AppEnum<SomeEnum, "SomeEnum">::setUp() { addItem(SomeEnum::A, "A"); addItem(SomeEnum::B, "B"); setDefault(SomeEnum::B); } }