#ifndef FEATHERLOG_LOG_MESSAGE_FLAG_HPP #define FEATHERLOG_LOG_MESSAGE_FLAG_HPP #include namespace flog { typedef uint32_t MessageFlag; class MessageFlagManager { public: MessageFlagManager() noexcept = default; ~MessageFlagManager() = default; MessageFlagManager(const MessageFlagManager&) noexcept = default; MessageFlagManager& operator=(const MessageFlagManager&) noexcept = default; MessageFlagManager(MessageFlagManager&&) noexcept = default; MessageFlagManager& operator=(MessageFlagManager&&) noexcept = default; _NODISCARD bool isFull() const noexcept { return flagCount >= std::numeric_limits::digits; } _NODISCARD bool pushable() const noexcept { return !isFull(); } _NODISCARD bool isEmpty() const noexcept { return flagCount == 0; } // _NODISCARD private: std::array::digits> m_flagMap{}; size_t flagCount { 0 }; }; } #endif