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

#ifndef Q_PROTOBUF_annotation_H
#define Q_PROTOBUF_annotation_H

#include <QtCore/QObject>
#include <QtCore/QMetaType>
#include <QtCore/QList>

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

#include <memory>

#include <QByteArray>
#include <QString>


namespace qtprotobufnamespace::tests {
class AnnotatedMessage1;
using AnnotatedMessage1Repeated = QList<std::shared_ptr<AnnotatedMessage1>>;
class AnnotatedMessage2;
using AnnotatedMessage2Repeated = QList<std::shared_ptr<AnnotatedMessage2>>;
class AnnotatedMessage3;
using AnnotatedMessage3Repeated = QList<std::shared_ptr<AnnotatedMessage3>>;
class AnnotatedMessage4;
using AnnotatedMessage4Repeated = QList<std::shared_ptr<AnnotatedMessage4>>;
class AnnotatedMessage5;
using AnnotatedMessage5Repeated = QList<std::shared_ptr<AnnotatedMessage5>>;
class AnnotatedMessage6;
using AnnotatedMessage6Repeated = QList<std::shared_ptr<AnnotatedMessage6>>;
class AnnotatedMessage7;
using AnnotatedMessage7Repeated = QList<std::shared_ptr<AnnotatedMessage7>>;
class AnnotatedMessage8;
using AnnotatedMessage8Repeated = QList<std::shared_ptr<AnnotatedMessage8>>;
class AnnotatedMessage9;
using AnnotatedMessage9Repeated = QList<std::shared_ptr<AnnotatedMessage9>>;
class AnnotatedMessage10;
using AnnotatedMessage10Repeated = QList<std::shared_ptr<AnnotatedMessage10>>;
class AnnotatedMessage11;
using AnnotatedMessage11Repeated = QList<std::shared_ptr<AnnotatedMessage11>>;
class AnnotatedMessage12;
using AnnotatedMessage12Repeated = QList<std::shared_ptr<AnnotatedMessage12>>;
class AnnotatedMessage13;
using AnnotatedMessage13Repeated = QList<std::shared_ptr<AnnotatedMessage13>>;
class AnnotatedMessage14;
using AnnotatedMessage14Repeated = QList<std::shared_ptr<AnnotatedMessage14>>;
class AnnotatedMessage15;
using AnnotatedMessage15Repeated = QList<std::shared_ptr<AnnotatedMessage15>>;
class AnnotatedMessage16;
using AnnotatedMessage16Repeated = QList<std::shared_ptr<AnnotatedMessage16>>;
class AnnotatedMessage17;
using AnnotatedMessage17Repeated = QList<std::shared_ptr<AnnotatedMessage17>>;
class AnnotatedMessage18;
using AnnotatedMessage18Repeated = QList<std::shared_ptr<AnnotatedMessage18>>;

class  AnnotatedMessage1 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage1(QObject *parent = nullptr);
    ~AnnotatedMessage1() override;
    AnnotatedMessage1(const AnnotatedMessage1 &other);
    AnnotatedMessage1 &operator =(const AnnotatedMessage1 &other);
    AnnotatedMessage1(AnnotatedMessage1 &&other) noexcept;
    AnnotatedMessage1 &operator =(AnnotatedMessage1 &&other) noexcept;
    bool operator ==(const AnnotatedMessage1 &other) const;
    bool operator !=(const AnnotatedMessage1 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage2 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage2(QObject *parent = nullptr);
    ~AnnotatedMessage2() override;
    AnnotatedMessage2(const AnnotatedMessage2 &other);
    AnnotatedMessage2 &operator =(const AnnotatedMessage2 &other);
    AnnotatedMessage2(AnnotatedMessage2 &&other) noexcept;
    AnnotatedMessage2 &operator =(AnnotatedMessage2 &&other) noexcept;
    bool operator ==(const AnnotatedMessage2 &other) const;
    bool operator !=(const AnnotatedMessage2 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage3 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage3(QObject *parent = nullptr);
    ~AnnotatedMessage3() override;
    AnnotatedMessage3(const AnnotatedMessage3 &other);
    AnnotatedMessage3 &operator =(const AnnotatedMessage3 &other);
    AnnotatedMessage3(AnnotatedMessage3 &&other) noexcept;
    AnnotatedMessage3 &operator =(AnnotatedMessage3 &&other) noexcept;
    bool operator ==(const AnnotatedMessage3 &other) const;
    bool operator !=(const AnnotatedMessage3 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage4 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage4(QObject *parent = nullptr);
    ~AnnotatedMessage4() override;
    AnnotatedMessage4(const AnnotatedMessage4 &other);
    AnnotatedMessage4 &operator =(const AnnotatedMessage4 &other);
    AnnotatedMessage4(AnnotatedMessage4 &&other) noexcept;
    AnnotatedMessage4 &operator =(AnnotatedMessage4 &&other) noexcept;
    bool operator ==(const AnnotatedMessage4 &other) const;
    bool operator !=(const AnnotatedMessage4 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage5 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage5(QObject *parent = nullptr);
    ~AnnotatedMessage5() override;
    AnnotatedMessage5(const AnnotatedMessage5 &other);
    AnnotatedMessage5 &operator =(const AnnotatedMessage5 &other);
    AnnotatedMessage5(AnnotatedMessage5 &&other) noexcept;
    AnnotatedMessage5 &operator =(AnnotatedMessage5 &&other) noexcept;
    bool operator ==(const AnnotatedMessage5 &other) const;
    bool operator !=(const AnnotatedMessage5 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage6 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage6(QObject *parent = nullptr);
    ~AnnotatedMessage6() override;
    AnnotatedMessage6(const AnnotatedMessage6 &other);
    AnnotatedMessage6 &operator =(const AnnotatedMessage6 &other);
    AnnotatedMessage6(AnnotatedMessage6 &&other) noexcept;
    AnnotatedMessage6 &operator =(AnnotatedMessage6 &&other) noexcept;
    bool operator ==(const AnnotatedMessage6 &other) const;
    bool operator !=(const AnnotatedMessage6 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage7 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage7(QObject *parent = nullptr);
    ~AnnotatedMessage7() override;
    AnnotatedMessage7(const AnnotatedMessage7 &other);
    AnnotatedMessage7 &operator =(const AnnotatedMessage7 &other);
    AnnotatedMessage7(AnnotatedMessage7 &&other) noexcept;
    AnnotatedMessage7 &operator =(AnnotatedMessage7 &&other) noexcept;
    bool operator ==(const AnnotatedMessage7 &other) const;
    bool operator !=(const AnnotatedMessage7 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage8 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage8(QObject *parent = nullptr);
    ~AnnotatedMessage8() override;
    AnnotatedMessage8(const AnnotatedMessage8 &other);
    AnnotatedMessage8 &operator =(const AnnotatedMessage8 &other);
    AnnotatedMessage8(AnnotatedMessage8 &&other) noexcept;
    AnnotatedMessage8 &operator =(AnnotatedMessage8 &&other) noexcept;
    bool operator ==(const AnnotatedMessage8 &other) const;
    bool operator !=(const AnnotatedMessage8 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage9 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage9(QObject *parent = nullptr);
    ~AnnotatedMessage9() override;
    AnnotatedMessage9(const AnnotatedMessage9 &other);
    AnnotatedMessage9 &operator =(const AnnotatedMessage9 &other);
    AnnotatedMessage9(AnnotatedMessage9 &&other) noexcept;
    AnnotatedMessage9 &operator =(AnnotatedMessage9 &&other) noexcept;
    bool operator ==(const AnnotatedMessage9 &other) const;
    bool operator !=(const AnnotatedMessage9 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage10 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage10(QObject *parent = nullptr);
    ~AnnotatedMessage10() override;
    AnnotatedMessage10(const AnnotatedMessage10 &other);
    AnnotatedMessage10 &operator =(const AnnotatedMessage10 &other);
    AnnotatedMessage10(AnnotatedMessage10 &&other) noexcept;
    AnnotatedMessage10 &operator =(AnnotatedMessage10 &&other) noexcept;
    bool operator ==(const AnnotatedMessage10 &other) const;
    bool operator !=(const AnnotatedMessage10 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage11 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage11(QObject *parent = nullptr);
    ~AnnotatedMessage11() override;
    AnnotatedMessage11(const AnnotatedMessage11 &other);
    AnnotatedMessage11 &operator =(const AnnotatedMessage11 &other);
    AnnotatedMessage11(AnnotatedMessage11 &&other) noexcept;
    AnnotatedMessage11 &operator =(AnnotatedMessage11 &&other) noexcept;
    bool operator ==(const AnnotatedMessage11 &other) const;
    bool operator !=(const AnnotatedMessage11 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage12 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage12(QObject *parent = nullptr);
    ~AnnotatedMessage12() override;
    AnnotatedMessage12(const AnnotatedMessage12 &other);
    AnnotatedMessage12 &operator =(const AnnotatedMessage12 &other);
    AnnotatedMessage12(AnnotatedMessage12 &&other) noexcept;
    AnnotatedMessage12 &operator =(AnnotatedMessage12 &&other) noexcept;
    bool operator ==(const AnnotatedMessage12 &other) const;
    bool operator !=(const AnnotatedMessage12 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage13 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage13(QObject *parent = nullptr);
    ~AnnotatedMessage13() override;
    AnnotatedMessage13(const AnnotatedMessage13 &other);
    AnnotatedMessage13 &operator =(const AnnotatedMessage13 &other);
    AnnotatedMessage13(AnnotatedMessage13 &&other) noexcept;
    AnnotatedMessage13 &operator =(AnnotatedMessage13 &&other) noexcept;
    bool operator ==(const AnnotatedMessage13 &other) const;
    bool operator !=(const AnnotatedMessage13 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage14 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage14(QObject *parent = nullptr);
    ~AnnotatedMessage14() override;
    AnnotatedMessage14(const AnnotatedMessage14 &other);
    AnnotatedMessage14 &operator =(const AnnotatedMessage14 &other);
    AnnotatedMessage14(AnnotatedMessage14 &&other) noexcept;
    AnnotatedMessage14 &operator =(AnnotatedMessage14 &&other) noexcept;
    bool operator ==(const AnnotatedMessage14 &other) const;
    bool operator !=(const AnnotatedMessage14 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage15 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage15(QObject *parent = nullptr);
    ~AnnotatedMessage15() override;
    AnnotatedMessage15(const AnnotatedMessage15 &other);
    AnnotatedMessage15 &operator =(const AnnotatedMessage15 &other);
    AnnotatedMessage15(AnnotatedMessage15 &&other) noexcept;
    AnnotatedMessage15 &operator =(AnnotatedMessage15 &&other) noexcept;
    bool operator ==(const AnnotatedMessage15 &other) const;
    bool operator !=(const AnnotatedMessage15 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage16 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage16(QObject *parent = nullptr);
    ~AnnotatedMessage16() override;
    AnnotatedMessage16(const AnnotatedMessage16 &other);
    AnnotatedMessage16 &operator =(const AnnotatedMessage16 &other);
    AnnotatedMessage16(AnnotatedMessage16 &&other) noexcept;
    AnnotatedMessage16 &operator =(AnnotatedMessage16 &&other) noexcept;
    bool operator ==(const AnnotatedMessage16 &other) const;
    bool operator !=(const AnnotatedMessage16 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage17 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage17(QObject *parent = nullptr);
    ~AnnotatedMessage17() override;
    AnnotatedMessage17(const AnnotatedMessage17 &other);
    AnnotatedMessage17 &operator =(const AnnotatedMessage17 &other);
    AnnotatedMessage17(AnnotatedMessage17 &&other) noexcept;
    AnnotatedMessage17 &operator =(AnnotatedMessage17 &&other) noexcept;
    bool operator ==(const AnnotatedMessage17 &other) const;
    bool operator !=(const AnnotatedMessage17 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};


class  AnnotatedMessage18 : public QObject
{
    Q_OBJECT
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField NOTIFY testFieldChanged SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage18(QObject *parent = nullptr);
    ~AnnotatedMessage18() override;
    AnnotatedMessage18(const AnnotatedMessage18 &other);
    AnnotatedMessage18 &operator =(const AnnotatedMessage18 &other);
    AnnotatedMessage18(AnnotatedMessage18 &&other) noexcept;
    AnnotatedMessage18 &operator =(AnnotatedMessage18 &&other) noexcept;
    bool operator ==(const AnnotatedMessage18 &other) const;
    bool operator !=(const AnnotatedMessage18 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField) {
            m_testField = testField;
            testFieldChanged();
        }
    }

    static void registerTypes();

Q_SIGNALS:
    void testFieldChanged();

private:
    QtProtobuf::sint32 m_testField;
};

} // namespace qtprotobufnamespace::tests

Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage1)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage2)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage3)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage4)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage5)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage6)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage7)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage8)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage9)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage10)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage11)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage12)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage13)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage14)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage15)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage16)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage17)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage18)
#endif // Q_PROTOBUF_annotation_H
