AuroraEnum/README.md
2021-10-28 22:58:52 +01:00

1.1 KiB

Aurora Enum

[TODO]

Example

Include

#define AUE_OUT_OF_ECOSYSTEM // Applications in the Aurora ecosystem do not need this line
#include <AuroraForEach.hpp>
#include <AuroraEnum.hpp>

Example

#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

License

Public Domain or Unlicense