AuroraEnum/README.md

51 lines
1.0 KiB
Markdown

## Aurora Enum
[TODO]
## Example
### Include
```c++
#define AUE_OUT_OF_ECOSYSTEM // Applications in the Aurora ecosystem do not need this line
#include <AuroraForEach.hpp>
#include <AuroraEnum.hpp>
```
### Example
```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));
});
}
```
## Dependencies
* [AuroraForEach](https://git.reece.sx/AuroraSupport/AuroraForEach) [header only]