/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */

#ifndef ENUMMESSAGES_QPB_H
#define ENUMMESSAGES_QPB_H

#include "tst_qtprotobufgen_qml_gen_exports.qpb.h"

#include <QtProtobuf/qprotobuflazymessagepointer.h>
#include <QtProtobuf/qprotobufmessage.h>
#include <QtProtobuf/qprotobufobject.h>
#include <QtProtobuf/qtprotobuftypes.h>

#include <QtQml/qqmllist.h>
#include <QtQml/qqmlregistration.h>

#include <QtCore/qbytearray.h>
#include <QtCore/qlist.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qshareddata.h>
#include <QtCore/qstring.h>

namespace qtprotobufnamespace::tests {

namespace TestEnumGadget {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(TestEnum)

enum class TestEnum : int32_t {
    TEST_ENUM_VALUE0 = 0,
    TEST_ENUM_VALUE1 = 1,
    TEST_ENUM_VALUE2 = 2,
    TEST_ENUM_VALUE3 = 4,
    TEST_ENUM_VALUE4 = 3,
};
Q_ENUM_NS(TestEnum)

using TestEnumRepeated = QList<TestEnum>;
QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void registerTypes();
} // namespace TestEnumGadget

namespace TestEnumSecondInFileGadget {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(TestEnumSecondInFile)

enum class TestEnumSecondInFile : int32_t {
    TEST_ENUM_SIF_VALUE0 = 0,
    TEST_ENUM_SIF_VALUE1 = 1,
    TEST_ENUM_SIF_VALUE2 = 2,
};
Q_ENUM_NS(TestEnumSecondInFile)

using TestEnumSecondInFileRepeated = QList<TestEnumSecondInFile>;
QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void registerTypes();
} // namespace TestEnumSecondInFileGadget
class SimpleEnumMessage;
using SimpleEnumMessageRepeated = QList<SimpleEnumMessage>;
namespace SimpleEnumMessage_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class LocalEnum : int32_t;
using LocalEnumRepeated = QList<LocalEnum>;
} // namespace SimpleEnumMessage_QtProtobufNested

class RepeatedEnumMessage;
using RepeatedEnumMessageRepeated = QList<RepeatedEnumMessage>;
namespace RepeatedEnumMessage_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class LocalEnum : int32_t;
using LocalEnumRepeated = QList<LocalEnum>;
} // namespace RepeatedEnumMessage_QtProtobufNested

class MixedEnumUsageMessage;
using MixedEnumUsageMessageRepeated = QList<MixedEnumUsageMessage>;
namespace MixedEnumUsageMessage_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class LocalEnum : int32_t;
using LocalEnumRepeated = QList<LocalEnum>;
class NestedEnumHolder;
using NestedEnumHolderRepeated = QList<NestedEnumHolder>;
namespace NestedEnumHolder_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class LocalEnum : int32_t;
using LocalEnumRepeated = QList<LocalEnum>;
} // namespace NestedEnumHolder_QtProtobufNested

class NestedEnumHolderLevel1;
using NestedEnumHolderLevel1Repeated = QList<NestedEnumHolderLevel1>;
namespace NestedEnumHolderLevel1_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class LocalEnum : int32_t;
using LocalEnumRepeated = QList<LocalEnum>;
class NestedEnumHolderLevel2;
using NestedEnumHolderLevel2Repeated = QList<NestedEnumHolderLevel2>;
namespace NestedEnumHolderLevel2_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class LocalEnum : int32_t;
using LocalEnumRepeated = QList<LocalEnum>;
} // namespace NestedEnumHolderLevel2_QtProtobufNested

} // namespace NestedEnumHolderLevel1_QtProtobufNested

class NestedEnumMessage;
using NestedEnumMessageRepeated = QList<NestedEnumMessage>;
namespace NestedEnumMessage_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace NestedEnumMessage_QtProtobufNested

} // namespace MixedEnumUsageMessage_QtProtobufNested

class SimpleFileEnumMessage;
using SimpleFileEnumMessageRepeated = QList<SimpleFileEnumMessage>;
namespace SimpleFileEnumMessage_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace SimpleFileEnumMessage_QtProtobufNested

class StepChildEnumMessage;
using StepChildEnumMessageRepeated = QList<StepChildEnumMessage>;
namespace StepChildEnumMessage_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace StepChildEnumMessage_QtProtobufNested

class A;
using ARepeated = QList<A>;
namespace A_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class AEnum : int32_t;
using AEnumRepeated = QList<AEnum>;
} // namespace A_QtProtobufNested

class B;
using BRepeated = QList<B>;
namespace B_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class BEnum : int32_t;
using BEnumRepeated = QList<BEnum>;
} // namespace B_QtProtobufNested


class SimpleEnumMessage_QtProtobufData;
class SimpleEnumMessage : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(simpleEnumMessage)
    Q_PROPERTY(LocalEnum localEnum READ localEnum WRITE setLocalEnum SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = SimpleEnumMessage_QtProtobufNested::QtProtobufFieldEnum;
    using LocalEnum = SimpleEnumMessage_QtProtobufNested::LocalEnum;
    using LocalEnumRepeated = QList<LocalEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~SimpleEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleEnumMessage(const SimpleEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleEnumMessage &operator =(const SimpleEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleEnumMessage(SimpleEnumMessage &&other) noexcept;
    SimpleEnumMessage &operator =(SimpleEnumMessage &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(SimpleEnumMessage &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleEnumMessage_QtProtobufNested::LocalEnum localEnum() const;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnum(SimpleEnumMessage_QtProtobufNested::LocalEnum localEnum);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const SimpleEnumMessage &lhs, const SimpleEnumMessage &rhs) noexcept;
    friend bool operator==(const SimpleEnumMessage &lhs, const SimpleEnumMessage &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const SimpleEnumMessage &lhs, const SimpleEnumMessage &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<SimpleEnumMessage_QtProtobufData> dptr;
};
namespace SimpleEnumMessage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(SimpleEnumMessage)

enum class QtProtobufFieldEnum {
    LocalEnumProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

enum class LocalEnum : int32_t {
    LOCAL_ENUM_VALUE0 = 0,
    LOCAL_ENUM_VALUE1 = 1,
    LOCAL_ENUM_VALUE2 = 2,
    LOCAL_ENUM_VALUE3 = 3,
};
Q_ENUM_NS(LocalEnum)

using LocalEnumRepeated = QList<LocalEnum>;
} // namespace SimpleEnumMessage_QtProtobufNested

class RepeatedEnumMessage_QtProtobufData;
class RepeatedEnumMessage : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(repeatedEnumMessage)
    Q_PROPERTY(qtprotobufnamespace::tests::RepeatedEnumMessage::LocalEnumRepeated localEnumList READ localEnumList WRITE setLocalEnumList SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = RepeatedEnumMessage_QtProtobufNested::QtProtobufFieldEnum;
    using LocalEnum = RepeatedEnumMessage_QtProtobufNested::LocalEnum;
    using LocalEnumRepeated = QList<LocalEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT RepeatedEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~RepeatedEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT RepeatedEnumMessage(const RepeatedEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT RepeatedEnumMessage &operator =(const RepeatedEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT RepeatedEnumMessage(RepeatedEnumMessage &&other) noexcept;
    RepeatedEnumMessage &operator =(RepeatedEnumMessage &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(RepeatedEnumMessage &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT const RepeatedEnumMessage_QtProtobufNested::LocalEnumRepeated &localEnumList() const &;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumList(const RepeatedEnumMessage_QtProtobufNested::LocalEnumRepeated &localEnumList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumList(RepeatedEnumMessage_QtProtobufNested::LocalEnumRepeated &&localEnumList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const RepeatedEnumMessage &lhs, const RepeatedEnumMessage &rhs) noexcept;
    friend bool operator==(const RepeatedEnumMessage &lhs, const RepeatedEnumMessage &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const RepeatedEnumMessage &lhs, const RepeatedEnumMessage &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<RepeatedEnumMessage_QtProtobufData> dptr;
};
namespace RepeatedEnumMessage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(RepeatedEnumMessage)

enum class QtProtobufFieldEnum {
    LocalEnumListProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

enum class LocalEnum : int32_t {
    LOCAL_ENUM_VALUE0 = 0,
    LOCAL_ENUM_VALUE1 = 1,
    LOCAL_ENUM_VALUE2 = 2,
    LOCAL_ENUM_VALUE3 = 3,
};
Q_ENUM_NS(LocalEnum)

using LocalEnumRepeated = QList<LocalEnum>;
} // namespace RepeatedEnumMessage_QtProtobufNested

class MixedEnumUsageMessage_QtProtobufData;
class MixedEnumUsageMessage : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(mixedEnumUsageMessage)
    Q_PROPERTY(LocalEnum localEnum READ localEnum WRITE setLocalEnum SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::LocalEnumRepeated localEnumList READ localEnumList WRITE setLocalEnumList SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::LocalEnumMapEntry localEnumMap READ localEnumMap WRITE setLocalEnumMap SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::NestedEnumMessageRepeated msgListData READ msgList WRITE setMsgList SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = MixedEnumUsageMessage_QtProtobufNested::QtProtobufFieldEnum;
    using LocalEnum = MixedEnumUsageMessage_QtProtobufNested::LocalEnum;
    using LocalEnumRepeated = QList<LocalEnum>;
    using NestedEnumHolder = MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolder;
    using NestedEnumHolderRepeated = MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderRepeated;
    using NestedEnumHolderLevel1 = MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderLevel1;
    using NestedEnumHolderLevel1Repeated = MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderLevel1Repeated;
    using NestedEnumMessage = MixedEnumUsageMessage_QtProtobufNested::NestedEnumMessage;
    using NestedEnumMessageRepeated = MixedEnumUsageMessage_QtProtobufNested::NestedEnumMessageRepeated;
    using LocalEnumMapEntry = QHash<QString, MixedEnumUsageMessage_QtProtobufNested::LocalEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~MixedEnumUsageMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage(const MixedEnumUsageMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage &operator =(const MixedEnumUsageMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage(MixedEnumUsageMessage &&other) noexcept;
    MixedEnumUsageMessage &operator =(MixedEnumUsageMessage &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(MixedEnumUsageMessage &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage_QtProtobufNested::LocalEnum localEnum() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT const MixedEnumUsageMessage_QtProtobufNested::LocalEnumRepeated &localEnumList() const &;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT const MixedEnumUsageMessage::LocalEnumMapEntry &localEnumMap() const &;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT const MixedEnumUsageMessage_QtProtobufNested::NestedEnumMessageRepeated &msgList() const &;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnum(MixedEnumUsageMessage_QtProtobufNested::LocalEnum localEnum);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumList(const MixedEnumUsageMessage_QtProtobufNested::LocalEnumRepeated &localEnumList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumList(MixedEnumUsageMessage_QtProtobufNested::LocalEnumRepeated &&localEnumList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumMap(const MixedEnumUsageMessage::LocalEnumMapEntry &localEnumMap);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumMap(MixedEnumUsageMessage::LocalEnumMapEntry &&localEnumMap);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setMsgList(const MixedEnumUsageMessage_QtProtobufNested::NestedEnumMessageRepeated &msgList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setMsgList(MixedEnumUsageMessage_QtProtobufNested::NestedEnumMessageRepeated &&msgList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const MixedEnumUsageMessage &lhs, const MixedEnumUsageMessage &rhs) noexcept;
    friend bool operator==(const MixedEnumUsageMessage &lhs, const MixedEnumUsageMessage &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const MixedEnumUsageMessage &lhs, const MixedEnumUsageMessage &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<MixedEnumUsageMessage_QtProtobufData> dptr;
};
namespace MixedEnumUsageMessage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(MixedEnumUsageMessage)

enum class QtProtobufFieldEnum {
    LocalEnumProtoFieldNumber = 1,
    LocalEnumListProtoFieldNumber = 2,
    LocalEnumMapProtoFieldNumber = 3,
    MsgListProtoFieldNumber = 4,
};
Q_ENUM_NS(QtProtobufFieldEnum)

enum class LocalEnum : int32_t {
    LOCAL_ENUM_VALUE0 = 0,
    LOCAL_ENUM_VALUE1 = 1,
    LOCAL_ENUM_VALUE2 = 2,
    LOCAL_ENUM_VALUE3 = 3,
};
Q_ENUM_NS(LocalEnum)

using LocalEnumRepeated = QList<LocalEnum>;

class NestedEnumHolder_QtProtobufData;
class NestedEnumHolder : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(nestedEnumHolder)

public:
    using QtProtobufFieldEnum = NestedEnumHolder_QtProtobufNested::QtProtobufFieldEnum;
    using LocalEnum = NestedEnumHolder_QtProtobufNested::LocalEnum;
    using LocalEnumRepeated = QList<LocalEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolder();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~NestedEnumHolder();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolder(const NestedEnumHolder &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolder &operator =(const NestedEnumHolder &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolder(NestedEnumHolder &&other) noexcept;
    NestedEnumHolder &operator =(NestedEnumHolder &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(NestedEnumHolder &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const NestedEnumHolder &lhs, const NestedEnumHolder &rhs) noexcept;
    friend bool operator==(const NestedEnumHolder &lhs, const NestedEnumHolder &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const NestedEnumHolder &lhs, const NestedEnumHolder &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<NestedEnumHolder_QtProtobufData> dptr;
};
namespace NestedEnumHolder_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(NestedEnumHolder)

enum class LocalEnum : int32_t {
    NESTED_LOCAL_ENUM_VALUE0 = 0,
    NESTED_LOCAL_ENUM_VALUE1 = 1,
    NESTED_LOCAL_ENUM_VALUE2 = 2,
    NESTED_LOCAL_ENUM_VALUE3 = 3,
};
Q_ENUM_NS(LocalEnum)

using LocalEnumRepeated = QList<LocalEnum>;
} // namespace NestedEnumHolder_QtProtobufNested

class NestedEnumHolderLevel1_QtProtobufData;
class NestedEnumHolderLevel1 : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(nestedEnumHolderLevel1)

public:
    using QtProtobufFieldEnum = NestedEnumHolderLevel1_QtProtobufNested::QtProtobufFieldEnum;
    using LocalEnum = NestedEnumHolderLevel1_QtProtobufNested::LocalEnum;
    using LocalEnumRepeated = QList<LocalEnum>;
    using NestedEnumHolderLevel2 = NestedEnumHolderLevel1_QtProtobufNested::NestedEnumHolderLevel2;
    using NestedEnumHolderLevel2Repeated = NestedEnumHolderLevel1_QtProtobufNested::NestedEnumHolderLevel2Repeated;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel1();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~NestedEnumHolderLevel1();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel1(const NestedEnumHolderLevel1 &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel1 &operator =(const NestedEnumHolderLevel1 &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel1(NestedEnumHolderLevel1 &&other) noexcept;
    NestedEnumHolderLevel1 &operator =(NestedEnumHolderLevel1 &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(NestedEnumHolderLevel1 &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const NestedEnumHolderLevel1 &lhs, const NestedEnumHolderLevel1 &rhs) noexcept;
    friend bool operator==(const NestedEnumHolderLevel1 &lhs, const NestedEnumHolderLevel1 &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const NestedEnumHolderLevel1 &lhs, const NestedEnumHolderLevel1 &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<NestedEnumHolderLevel1_QtProtobufData> dptr;
};
namespace NestedEnumHolderLevel1_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(NestedEnumHolderLevel1)

enum class LocalEnum : int32_t {
    NESTED_LEVEL1_LOCAL_ENUM_VALUE0 = 0,
    NESTED_LEVEL1_LOCAL_ENUM_VALUE1 = 1,
};
Q_ENUM_NS(LocalEnum)

using LocalEnumRepeated = QList<LocalEnum>;

class NestedEnumHolderLevel2_QtProtobufData;
class NestedEnumHolderLevel2 : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(nestedEnumHolderLevel2)

public:
    using QtProtobufFieldEnum = NestedEnumHolderLevel2_QtProtobufNested::QtProtobufFieldEnum;
    using LocalEnum = NestedEnumHolderLevel2_QtProtobufNested::LocalEnum;
    using LocalEnumRepeated = QList<LocalEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel2();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~NestedEnumHolderLevel2();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel2(const NestedEnumHolderLevel2 &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel2 &operator =(const NestedEnumHolderLevel2 &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumHolderLevel2(NestedEnumHolderLevel2 &&other) noexcept;
    NestedEnumHolderLevel2 &operator =(NestedEnumHolderLevel2 &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(NestedEnumHolderLevel2 &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const NestedEnumHolderLevel2 &lhs, const NestedEnumHolderLevel2 &rhs) noexcept;
    friend bool operator==(const NestedEnumHolderLevel2 &lhs, const NestedEnumHolderLevel2 &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const NestedEnumHolderLevel2 &lhs, const NestedEnumHolderLevel2 &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<NestedEnumHolderLevel2_QtProtobufData> dptr;
};
namespace NestedEnumHolderLevel2_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(NestedEnumHolderLevel2)

enum class LocalEnum : int32_t {
    NESTED_LEVEL2_LOCAL_ENUM_VALUE0 = 0,
    NESTED_LEVEL2_LOCAL_ENUM_VALUE1 = 1,
};
Q_ENUM_NS(LocalEnum)

using LocalEnumRepeated = QList<LocalEnum>;
} // namespace NestedEnumHolderLevel2_QtProtobufNested
} // namespace NestedEnumHolderLevel1_QtProtobufNested

class NestedEnumMessage_QtProtobufData;
class NestedEnumMessage : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(nestedEnumMessage)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::LocalEnum localEnumField READ localEnumField WRITE setLocalEnumField SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::RepeatedEnumMessage::LocalEnum localEnumField2 READ localEnumField2 WRITE setLocalEnumField2 SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::NestedEnumHolder::LocalEnum localEnumField3 READ localEnumField3 WRITE setLocalEnumField3 SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::NestedEnumHolderLevel1::LocalEnum localEnumField4 READ localEnumField4 WRITE setLocalEnumField4 SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::MixedEnumUsageMessage::NestedEnumHolderLevel1::NestedEnumHolderLevel2::LocalEnum localEnumField5 READ localEnumField5 WRITE setLocalEnumField5 SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = NestedEnumMessage_QtProtobufNested::QtProtobufFieldEnum;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~NestedEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumMessage(const NestedEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumMessage &operator =(const NestedEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT NestedEnumMessage(NestedEnumMessage &&other) noexcept;
    NestedEnumMessage &operator =(NestedEnumMessage &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(NestedEnumMessage &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage_QtProtobufNested::LocalEnum localEnumField() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT RepeatedEnumMessage_QtProtobufNested::LocalEnum localEnumField2() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolder_QtProtobufNested::LocalEnum localEnumField3() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderLevel1_QtProtobufNested::LocalEnum localEnumField4() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderLevel1_QtProtobufNested::NestedEnumHolderLevel2_QtProtobufNested::LocalEnum localEnumField5() const;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumField(MixedEnumUsageMessage_QtProtobufNested::LocalEnum localEnumField);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumField2(RepeatedEnumMessage_QtProtobufNested::LocalEnum localEnumField2);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumField3(MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolder_QtProtobufNested::LocalEnum localEnumField3);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumField4(MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderLevel1_QtProtobufNested::LocalEnum localEnumField4);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalEnumField5(MixedEnumUsageMessage_QtProtobufNested::NestedEnumHolderLevel1_QtProtobufNested::NestedEnumHolderLevel2_QtProtobufNested::LocalEnum localEnumField5);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const NestedEnumMessage &lhs, const NestedEnumMessage &rhs) noexcept;
    friend bool operator==(const NestedEnumMessage &lhs, const NestedEnumMessage &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const NestedEnumMessage &lhs, const NestedEnumMessage &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<NestedEnumMessage_QtProtobufData> dptr;
};
namespace NestedEnumMessage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(NestedEnumMessage)

enum class QtProtobufFieldEnum {
    LocalEnumFieldProtoFieldNumber = 1,
    LocalEnumField2ProtoFieldNumber = 2,
    LocalEnumField3ProtoFieldNumber = 3,
    LocalEnumField4ProtoFieldNumber = 4,
    LocalEnumField5ProtoFieldNumber = 5,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace NestedEnumMessage_QtProtobufNested
} // namespace MixedEnumUsageMessage_QtProtobufNested

class SimpleFileEnumMessage_QtProtobufData;
class SimpleFileEnumMessage : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(simpleFileEnumMessage)
    Q_PROPERTY(qtprotobufnamespace::tests::TestEnumGadget::TestEnum globalEnum READ globalEnum WRITE setGlobalEnum SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::TestEnumGadget::TestEnumRepeated globalEnumList READ globalEnumList WRITE setGlobalEnumList SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = SimpleFileEnumMessage_QtProtobufNested::QtProtobufFieldEnum;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleFileEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~SimpleFileEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleFileEnumMessage(const SimpleFileEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleFileEnumMessage &operator =(const SimpleFileEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleFileEnumMessage(SimpleFileEnumMessage &&other) noexcept;
    SimpleFileEnumMessage &operator =(SimpleFileEnumMessage &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(SimpleFileEnumMessage &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT TestEnumGadget::TestEnum globalEnum() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT const TestEnumGadget::TestEnumRepeated &globalEnumList() const &;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setGlobalEnum(TestEnumGadget::TestEnum globalEnum);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setGlobalEnumList(const TestEnumGadget::TestEnumRepeated &globalEnumList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setGlobalEnumList(TestEnumGadget::TestEnumRepeated &&globalEnumList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const SimpleFileEnumMessage &lhs, const SimpleFileEnumMessage &rhs) noexcept;
    friend bool operator==(const SimpleFileEnumMessage &lhs, const SimpleFileEnumMessage &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const SimpleFileEnumMessage &lhs, const SimpleFileEnumMessage &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<SimpleFileEnumMessage_QtProtobufData> dptr;
};
namespace SimpleFileEnumMessage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(SimpleFileEnumMessage)

enum class QtProtobufFieldEnum {
    GlobalEnumProtoFieldNumber = 1,
    GlobalEnumListProtoFieldNumber = 2,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace SimpleFileEnumMessage_QtProtobufNested

class StepChildEnumMessage_QtProtobufData;
class StepChildEnumMessage : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(stepChildEnumMessage)
    Q_PROPERTY(qtprotobufnamespace::tests::SimpleEnumMessage::LocalEnum localStepChildEnum READ localStepChildEnum WRITE setLocalStepChildEnum SCRIPTABLE true)
    Q_PROPERTY(qtprotobufnamespace::tests::SimpleEnumMessage::LocalEnumRepeated localStepChildList READ localStepChildList WRITE setLocalStepChildList SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = StepChildEnumMessage_QtProtobufNested::QtProtobufFieldEnum;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT StepChildEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~StepChildEnumMessage();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT StepChildEnumMessage(const StepChildEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT StepChildEnumMessage &operator =(const StepChildEnumMessage &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT StepChildEnumMessage(StepChildEnumMessage &&other) noexcept;
    StepChildEnumMessage &operator =(StepChildEnumMessage &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(StepChildEnumMessage &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT SimpleEnumMessage_QtProtobufNested::LocalEnum localStepChildEnum() const;

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT const SimpleEnumMessage_QtProtobufNested::LocalEnumRepeated &localStepChildList() const &;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalStepChildEnum(SimpleEnumMessage_QtProtobufNested::LocalEnum localStepChildEnum);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalStepChildList(const SimpleEnumMessage_QtProtobufNested::LocalEnumRepeated &localStepChildList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setLocalStepChildList(SimpleEnumMessage_QtProtobufNested::LocalEnumRepeated &&localStepChildList);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const StepChildEnumMessage &lhs, const StepChildEnumMessage &rhs) noexcept;
    friend bool operator==(const StepChildEnumMessage &lhs, const StepChildEnumMessage &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const StepChildEnumMessage &lhs, const StepChildEnumMessage &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<StepChildEnumMessage_QtProtobufData> dptr;
};
namespace StepChildEnumMessage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(StepChildEnumMessage)

enum class QtProtobufFieldEnum {
    LocalStepChildEnumProtoFieldNumber = 1,
    LocalStepChildListProtoFieldNumber = 2,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace StepChildEnumMessage_QtProtobufNested

class A_QtProtobufData;
class A : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(a)
    Q_PROPERTY(qtprotobufnamespace::tests::B::BEnum val READ val WRITE setVal SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = A_QtProtobufNested::QtProtobufFieldEnum;
    using AEnum = A_QtProtobufNested::AEnum;
    using AEnumRepeated = QList<AEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT A();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~A();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT A(const A &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT A &operator =(const A &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT A(A &&other) noexcept;
    A &operator =(A &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(A &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT B_QtProtobufNested::BEnum val() const;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setVal(B_QtProtobufNested::BEnum val);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const A &lhs, const A &rhs) noexcept;
    friend bool operator==(const A &lhs, const A &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const A &lhs, const A &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<A_QtProtobufData> dptr;
};
namespace A_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(A)

enum class QtProtobufFieldEnum {
    ValProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

enum class AEnum : int32_t {
    AVal0 = 0,
    AVal1 = 1,
};
Q_ENUM_NS(AEnum)

using AEnumRepeated = QList<AEnum>;
} // namespace A_QtProtobufNested

class B_QtProtobufData;
class B : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
    QML_VALUE_TYPE(b)
    Q_PROPERTY(qtprotobufnamespace::tests::A::AEnum val READ val WRITE setVal SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = B_QtProtobufNested::QtProtobufFieldEnum;
    using BEnum = B_QtProtobufNested::BEnum;
    using BEnumRepeated = QList<BEnum>;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT B();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT ~B();
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT B(const B &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT B &operator =(const B &other);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT B(B &&other) noexcept;
    B &operator =(B &&other) noexcept
    {
        swap(other);
        return *this;
    }
    void swap(B &other) noexcept
    {
        QProtobufMessage::swap(other);
        dptr.swap(other.dptr);
    }

    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT A_QtProtobufNested::AEnum val() const;
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT void setVal(A_QtProtobufNested::AEnum val);
    QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT static void registerTypes();

private:
    friend QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT bool comparesEqual(const B &lhs, const B &rhs) noexcept;
    friend bool operator==(const B &lhs, const B &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const B &lhs, const B &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<B_QtProtobufData> dptr;
};
namespace B_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_TST_QTPROTOBUFGEN_QML_GEN_EXPORT)
QML_NAMED_ELEMENT(B)

enum class QtProtobufFieldEnum {
    ValProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

enum class BEnum : int32_t {
    BVal0 = 0,
    BVal1 = 1,
};
Q_ENUM_NS(BEnum)

using BEnumRepeated = QList<BEnum>;
} // namespace B_QtProtobufNested
} // namespace qtprotobufnamespace::tests

#endif // ENUMMESSAGES_QPB_H
