diff --git a/src/blackmisc/tuple.h b/src/blackmisc/tuple.h index b05469538..b51c232e9 100644 --- a/src/blackmisc/tuple.h +++ b/src/blackmisc/tuple.h @@ -12,12 +12,26 @@ #ifndef BLACKMISC_TUPLE_H #define BLACKMISC_TUPLE_H -#include "tuple_private.h" - /*! * \defgroup Tuples Tuple conversion of object data members */ +namespace BlackMisc +{ + //! Metadata flags attached to tuple elements. + //! \ingroup Tuples + enum TupleConverterFlags + { + DisabledForComparison = 1 << 0, //!< Element will be ignored by compare() and comparison operators + DisabledForMarshalling = 1 << 1, //!< Element will be ignored during DBus marshalling + DisabledForDebugging = 1 << 2, //!< Element will be ignored when streaming to QDebug + DisabledForHashing = 1 << 3, //!< Element will be ignored by qHash() + DisabledForJson = 1 << 4 //!< Element will be ignored during JSON serialization + }; +} + +#include "tuple_private.h" + /*! * \brief Macro to make a class available to TupleConverter. * \details Put this macro anywhere in the private section of a class declaration to make it usable in TupleConverter. @@ -155,17 +169,6 @@ namespace BlackMisc */ class TupleConverterBase { - public: - //! \brief Metadata flags attached to tuple elements. - enum Flags - { - DisabledForComparison = 1 << 0, //!< Element will be ignored by compare(), but not by operators - DisabledForMarshalling = 1 << 1, //!< Element will be ignored during DBus marshalling - DisabledForDebugging = 1 << 2, //!< Element will be ignored when streaming to QDebug - DisabledForHashing = 1 << 3, //!< Element will be ignored by qHash() - DisabledForJson = 1 << 4 //!< Element will be ignored during JSON serialization - }; - protected: //! \brief A shorthand alias for passing flags as a compile-time constant. template @@ -305,7 +308,7 @@ namespace BlackMisc auto valuesA = Private::stripMeta(a, Private::make_index_sequence()); auto valuesB = Private::stripMeta(b, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(a, Private::make_index_sequence()); - return Private::TupleHelper::compare(valuesA, valuesB, Private::skipFlaggedIndices(metaTu)); + return Private::TupleHelper::compare(valuesA, valuesB, Private::skipFlaggedIndices(metaTu)); } /*! @@ -317,7 +320,7 @@ namespace BlackMisc { auto valueTu = Private::stripMeta(tu, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(tu, Private::make_index_sequence()); - return Private::TupleHelper::marshall(arg, valueTu, Private::skipFlaggedIndices(metaTu)); + return Private::TupleHelper::marshall(arg, valueTu, Private::skipFlaggedIndices(metaTu)); } /*! @@ -329,7 +332,7 @@ namespace BlackMisc { auto valueTu = Private::stripMeta(tu, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(tu, Private::make_index_sequence()); - return Private::TupleHelper::unmarshall(arg, valueTu, Private::skipFlaggedIndices(metaTu)); + return Private::TupleHelper::unmarshall(arg, valueTu, Private::skipFlaggedIndices(metaTu)); } /*! @@ -341,7 +344,7 @@ namespace BlackMisc { auto valueTu = Private::stripMeta(tu, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(tu, Private::make_index_sequence()); - return Private::TupleHelper::debug(debug, valueTu, Private::skipFlaggedIndices(metaTu)); + return Private::TupleHelper::debug(debug, valueTu, Private::skipFlaggedIndices(metaTu)); } /*! @@ -364,7 +367,7 @@ namespace BlackMisc { auto valueTu = Private::stripMeta(tu, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(tu, Private::make_index_sequence()); - return Private::TupleHelper::hash(valueTu, Private::skipFlaggedIndices(metaTu)); + return Private::TupleHelper::hash(valueTu, Private::skipFlaggedIndices(metaTu)); } /*! @@ -378,7 +381,7 @@ namespace BlackMisc QJsonObject json; auto valueTu = Private::stripMeta(tu, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(tu, Private::make_index_sequence()); - Private::TupleHelper::serializeJson(json, members, valueTu, Private::skipFlaggedIndices(metaTu)); + Private::TupleHelper::serializeJson(json, members, valueTu, Private::skipFlaggedIndices(metaTu)); return json; } @@ -392,7 +395,7 @@ namespace BlackMisc { auto valueTu = Private::stripMeta(tu, Private::make_index_sequence()); auto metaTu = Private::recoverMeta(tu, Private::make_index_sequence()); - Private::TupleHelper::deserializeJson(json, members, valueTu, Private::skipFlaggedIndices(metaTu)); + Private::TupleHelper::deserializeJson(json, members, valueTu, Private::skipFlaggedIndices(metaTu)); } /*! @@ -404,7 +407,7 @@ namespace BlackMisc { QJsonObject json; Private::assertMeta(tu); - Private::TupleHelper::serializeJson(json, tu, Private::skipFlaggedIndices(tu)); + Private::TupleHelper::serializeJson(json, tu, Private::skipFlaggedIndices(tu)); return json; } @@ -416,7 +419,7 @@ namespace BlackMisc void deserializeJson(const QJsonObject &json, std::tuple tu) { Private::assertMeta(tu); - Private::TupleHelper::deserializeJson(json, tu, Private::skipFlaggedIndices(tu)); + Private::TupleHelper::deserializeJson(json, tu, Private::skipFlaggedIndices(tu)); } } // namespace BlackMisc