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));
|
|
|
|
});
|
|
|
|
}
|
2021-10-28 21:04:02 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## Dependencies
|
|
|
|
* [AuroraForEach](https://git.reece.sx/AuroraSupport/AuroraForEach) [header only]
|