AuroraEnum/README.md

46 lines
947 B
Markdown
Raw Normal View History

2021-10-28 20:35:48 +00:00
## Aurora Enum
[TODO]
## Example
2021-10-28 20:58:06 +00:00
### Include
```c++
using AuString = std::string; // Applications in the Aurora ecosystem do not need this line
#include <AuroraEnum.hpp>
```
2021-10-28 20:35:48 +00:00
2021-10-28 20:58:06 +00:00
### Example
2021-10-28 20:35:48 +00:00
```c++
#define AUE_DEFINE(name, enumerations)
AUE_DEFINE(EMyTestEnum, (
eValueA,
eValueB,
eValueC,
eValueD
));
static void TestAUE()
{
EMyTestEnum referenceValue = EMyTestEnum::eValueB;
// Convert the index to a string safely O(1)
const AuString &string = EMyTestEnumToString(referenceValue);
// Lookup O(n)
EMyTestEnum backAgain = EMyTestEnumFromString(string);
// Lookup using a hash table
EMyTestEnum fromHashTable = EMyTestEnumFromHashString(string);
// Assert
SysAssert(backAgain == referenceValue);
SysAssert(fromHashTable == referenceValue);
// And iteration for fun
EMyTestEnumForEach([](EMyTestEnum e)
{
LogDbg(EMyTestEnumToString(e));
});
}
```