LumixEngine/src/engine/flag_set.h
2017-12-07 14:36:03 +01:00

21 lines
No EOL
394 B
C++

#pragma once
namespace Lumix
{
template <typename Enum, typename Base>
struct FlagSet
{
void clear() { base = 0; }
void set(Enum value, bool on) { if (on) set(value); else unset(value); }
void set(Enum value) { base |= (Base)value; }
void unset(Enum value) { base &= ~(Base)value; }
bool isSet(Enum value) const { return base & (Base)value; }
Base base = 0;
};
} // namespace Lumix