28 lines
730 B
C++
28 lines
730 B
C++
#ifndef MALACHSCRIPT_CLASSATTR_HPP
|
|
#define MALACHSCRIPT_CLASSATTR_HPP
|
|
|
|
#include <cstdint>
|
|
|
|
namespace MalachScript {
|
|
enum class ClassAttr : uint8_t {
|
|
None = 0,
|
|
Shared = 1 << 1,
|
|
Abstract = 1 << 2,
|
|
Final = 1 << 3,
|
|
External = 1 << 4,
|
|
};
|
|
|
|
class ClassAttrHelpers {
|
|
public:
|
|
constexpr inline static bool Contains(ClassAttr set, ClassAttr flag) {
|
|
return (static_cast<uint8_t>(set) & static_cast<uint8_t>(flag)) != 0;
|
|
}
|
|
constexpr inline static ClassAttr Set(ClassAttr set, ClassAttr flag) {
|
|
return static_cast<ClassAttr>(static_cast<uint8_t>(set) | static_cast<uint8_t>(flag));
|
|
}
|
|
};
|
|
|
|
}
|
|
|
|
#endif // MALACHSCRIPT_CLASSATTR_HPP
|