#include "TargetBitFieldDescriptor.hpp" #include #include #include namespace Targets { TargetBitFieldDescriptor::TargetBitFieldDescriptor( const std::string& key, const std::string& name, std::uint64_t mask, std::optional description ) : key(key) , name(name) , mask(mask) , description(description) {} std::size_t TargetBitFieldDescriptor::width() const { const auto maskBitset = std::bitset::digits>{ this->mask }; auto width = std::size_t{0}; for (auto maskIndex = std::size_t{0}; maskIndex < maskBitset.size(); ++maskIndex) { if (maskBitset[maskIndex]) { ++width; } } return width; } TargetBitFieldDescriptor TargetBitFieldDescriptor::clone() const { return {*this}; } }