17#include <ext_data_client.h>
19#include <fmt/format.h>
31 match = EXT_DATA_ITEM_MAP_MATCH,
39 ok = EXT_DATA_ITEM_MAP_OK,
76 return std::string{
"zero" };
78 return std::string{
"match" };
80 return std::string{
"no_dest" };
82 return std::string{
"not_found" };
84 return std::string{
"type_mismatch" };
86 return std::string{
"ctrl_mismatch" };
88 return std::string{
"array_fewer" };
90 return std::string{
"array_more" };
92 return std::string{
"not_done" };
94 return std::string{
"ok" };
96 return std::string{
"ok_no_dest" };
98 return fmt::format(
"", std::bitset<UCESB_MAP_BITSIZE>(
static_cast<UcesbMapUType>(
map)).to_string());
104class fmt::formatter<
R3B::UcesbMap>
107 constexpr auto parse(format_parse_context& ctx)
109 if (ctx.begin() == ctx.end())
113 const auto* specifier_iter = ctx.begin();
114 if (*specifier_iter ==
's' or *specifier_iter ==
'b')
120 if (specifier_iter == ctx.end())
122 throw fmt::format_error(
"UcesbMap format failed: missing right curly bracket!");
125 if (*specifier_iter !=
'}')
127 throw fmt::format_error(
"UcesbMap format failed: only one speicifier is allowed");
129 return specifier_iter;
132 template <
typename FmtContent>
constexpr auto UCESB_MAP_BITSIZE
auto operator<<(std::ostream &ostream, const UcesbMap &map) -> std::ostream &
auto operator|(const UcesbMap &left, const UcesbMap &right) -> UcesbMap
void operator|=(UcesbMap &left, const UcesbMap &right)
auto UcesbMap2String(UcesbMap map) -> std::string
auto operator~(const UcesbMap &map) -> UcesbMap
void operator&=(UcesbMap &left, const UcesbMap &right)
auto operator&(const UcesbMap &left, const UcesbMap &right) -> UcesbMap
std::underlying_type< UcesbMap >::type UcesbMapUType