10#include "Refureku/TypeInfo/Archetypes/Archetype.h"
20 REFUREKU_API
Enum(
char const* name,
23 Entity const* outerEntity =
nullptr)
noexcept;
24 REFUREKU_API
~Enum()
noexcept;
33 RFK_NODISCARD REFUREKU_API
43 RFK_NODISCARD REFUREKU_API
56 RFK_NODISCARD REFUREKU_API
58 void* userData)
const;
67 RFK_NODISCARD REFUREKU_API
80 RFK_NODISCARD REFUREKU_API
82 void* userData)
const;
92 RFK_NODISCARD REFUREKU_API
100 RFK_NODISCARD REFUREKU_API
108 RFK_NODISCARD REFUREKU_API
124 void* userData) const;
139 int64 value) noexcept;
155 RFK_GEN_GET_PIMPL(EnumImpl,
Entity::getPimpl())
159 template <typename T>
165 #include "Refureku/TypeInfo/Archetypes/Enum.inl"
Definition: Allocator.h:19
Definition: Archetype.h:16
REFUREKU_API EnumValue * addEnumValue(char const *name, std::size_t id, int64 value) noexcept
Add an enum value to this enum.
RFK_NODISCARD REFUREKU_API EnumValue const * getEnumValueByName(char const *name) const noexcept
Search an enum value by name in this enum.
RFK_NODISCARD REFUREKU_API EnumValue const * getEnumValue(int64 value) const noexcept
Search an enum value by value in this enum.
RFK_NODISCARD REFUREKU_API Archetype const & getUnderlyingArchetype() const noexcept
Get the type this enum is based on.
RFK_NODISCARD REFUREKU_API std::size_t getEnumValuesCount() const noexcept
Get the number of enum values contained in this enum.
RFK_NODISCARD REFUREKU_API Vector< EnumValue const * > getEnumValues(int64 value) const noexcept
Search all enum values in this enum holding the provided value.
RFK_NODISCARD REFUREKU_API Vector< EnumValue const * > getEnumValuesByPredicate(Predicate< EnumValue > predicate, void *userData) const
Retrieve from this enum all enum values matching with a given predicate.
RFK_NODISCARD REFUREKU_API EnumValue const * getEnumValueByPredicate(Predicate< EnumValue > predicate, void *userData) const
Retrieve from this enum the first enum value matching with a given predicate.
REFUREKU_API void setEnumValuesCapacity(std::size_t capacity) noexcept
Set the number of enum values for this entity. Useful to avoid reallocations when adding a lot of enu...
REFUREKU_API bool foreachEnumValue(Visitor< EnumValue > visitor, void *userData) const
Execute the given visitor on all enum values in this enum.
RFK_NODISCARD REFUREKU_API EnumValue const & getEnumValueAt(std::size_t valueIndex) const noexcept
Get the enum value located at the provided index in the enum. If valueIndex is greater or equal to th...
Definition: EnumValue.h:19
Definition: Allocator.h:16
bool(*)(T const &value, void *userData) Predicate
Predicate defining if a value is valid or not.
Definition: Predicate.h:21
Enum const * getEnum() noexcept
bool(*)(T const &value, void *userData) Visitor
Visitor function.
Definition: Visitor.h:21