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


#include "QtCore/QtCore.qpb.h"

#include <QtProtobuf/qprotobufregistration.h>

#include <cmath>

QT_BEGIN_NAMESPACE
namespace QtProtobufPrivate::QtCore {

class QUrl_QtProtobufData : public QSharedData
{
public:
    QUrl_QtProtobufData()
        : QSharedData()
    {
    }

    QUrl_QtProtobufData(const QUrl_QtProtobufData &other)
        : QSharedData(other),
          m_url(other.m_url)
    {
    }

    QString m_url;
};

QUrl::~QUrl() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 5> qt_protobuf_QUrl_uint_data;
    const char qt_protobuf_QUrl_char_data[17];
} qt_protobuf_QUrl_metadata {
    // data
    {
        0, /* = version */
        1, /* = num fields */
        2, /* = field number offset */
        3, /* = property index offset */
        4, /* = field flags offset */
        11, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        12, /* = url */
        16, /* = end-of-string-marker */
        // Field numbers:
        1, /* = url */
        // Property indices:
        0, /* = url */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = url */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QUrl\0" /* = full message name */
    /* field char_data: */
    "url\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QUrl::staticPropertyOrdering = {
    &qt_protobuf_QUrl_metadata.data
};

void QUrl::registerTypes()
{
    qRegisterMetaType<QUrl>();
    qRegisterMetaType<QList<QUrl>>();
}

QUrl::QUrl()
    : QProtobufMessage(&QUrl::staticMetaObject, &QUrl::staticPropertyOrdering),
      dptr(new QUrl_QtProtobufData)
{
}

QUrl::QUrl(const QUrl &other)
    = default;
QUrl &QUrl::operator =(const QUrl &other)
{
    QUrl temp(other);
    swap(temp);
    return *this;
}
QUrl::QUrl(QUrl &&other) noexcept
    = default;
QUrl::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QUrl &lhs, const QUrl &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_url == rhs.dptr->m_url;
}

const QString &QUrl::url() const &
{
    return dptr->m_url;
}

void QUrl::setUrl(const QString &url)
{
    if (dptr->m_url != url) {
        dptr.detach();
        dptr->m_url = url;
    }
}

void QUrl::setUrl(QString &&url)
{
    if (dptr->m_url != url) {
        dptr.detach();
        dptr->m_url = std::move(url);
    }
}


class QChar_QtProtobufData : public QSharedData
{
public:
    QChar_QtProtobufData()
        : QSharedData(),
          m_utf16CodePoint(0)
    {
    }

    QChar_QtProtobufData(const QChar_QtProtobufData &other)
        : QSharedData(other),
          m_utf16CodePoint(other.m_utf16CodePoint)
    {
    }

    QtProtobuf::uint32 m_utf16CodePoint;
};

QChar::~QChar() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 5> qt_protobuf_QChar_uint_data;
    const char qt_protobuf_QChar_char_data[29];
} qt_protobuf_QChar_metadata {
    // data
    {
        0, /* = version */
        1, /* = num fields */
        2, /* = field number offset */
        3, /* = property index offset */
        4, /* = field flags offset */
        12, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        13, /* = utf16CodePoint */
        28, /* = end-of-string-marker */
        // Field numbers:
        1, /* = utf16CodePoint */
        // Property indices:
        0, /* = utf16CodePoint */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = utf16CodePoint */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QChar\0" /* = full message name */
    /* field char_data: */
    "utf16CodePoint\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QChar::staticPropertyOrdering = {
    &qt_protobuf_QChar_metadata.data
};

void QChar::registerTypes()
{
    qRegisterMetaType<QChar>();
    qRegisterMetaType<QList<QChar>>();
}

QChar::QChar()
    : QProtobufMessage(&QChar::staticMetaObject, &QChar::staticPropertyOrdering),
      dptr(new QChar_QtProtobufData)
{
}

QChar::QChar(const QChar &other)
    = default;
QChar &QChar::operator =(const QChar &other)
{
    QChar temp(other);
    swap(temp);
    return *this;
}
QChar::QChar(QChar &&other) noexcept
    = default;
QChar::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QChar &lhs, const QChar &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_utf16CodePoint == rhs.dptr->m_utf16CodePoint;
}

QtProtobuf::uint32 QChar::utf16CodePoint() const
{
    return dptr->m_utf16CodePoint;
}

void QChar::setUtf16CodePoint(QtProtobuf::uint32 utf16CodePoint)
{
    if (dptr->m_utf16CodePoint != utf16CodePoint) {
        dptr.detach();
        dptr->m_utf16CodePoint = utf16CodePoint;
    }
}


class QUuid_QtProtobufData : public QSharedData
{
public:
    QUuid_QtProtobufData()
        : QSharedData()
    {
    }

    QUuid_QtProtobufData(const QUuid_QtProtobufData &other)
        : QSharedData(other),
          m_rfc4122Uuid(other.m_rfc4122Uuid)
    {
    }

    QByteArray m_rfc4122Uuid;
};

QUuid::~QUuid() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 5> qt_protobuf_QUuid_uint_data;
    const char qt_protobuf_QUuid_char_data[26];
} qt_protobuf_QUuid_metadata {
    // data
    {
        0, /* = version */
        1, /* = num fields */
        2, /* = field number offset */
        3, /* = property index offset */
        4, /* = field flags offset */
        12, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        13, /* = rfc4122Uuid */
        25, /* = end-of-string-marker */
        // Field numbers:
        1, /* = rfc4122Uuid */
        // Property indices:
        0, /* = rfc4122Uuid */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = rfc4122Uuid */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QUuid\0" /* = full message name */
    /* field char_data: */
    "rfc4122Uuid\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QUuid::staticPropertyOrdering = {
    &qt_protobuf_QUuid_metadata.data
};

void QUuid::registerTypes()
{
    qRegisterMetaType<QUuid>();
    qRegisterMetaType<QList<QUuid>>();
}

QUuid::QUuid()
    : QProtobufMessage(&QUuid::staticMetaObject, &QUuid::staticPropertyOrdering),
      dptr(new QUuid_QtProtobufData)
{
}

QUuid::QUuid(const QUuid &other)
    = default;
QUuid &QUuid::operator =(const QUuid &other)
{
    QUuid temp(other);
    swap(temp);
    return *this;
}
QUuid::QUuid(QUuid &&other) noexcept
    = default;
QUuid::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QUuid &lhs, const QUuid &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_rfc4122Uuid == rhs.dptr->m_rfc4122Uuid;
}

const QByteArray &QUuid::rfc4122Uuid() const &
{
    return dptr->m_rfc4122Uuid;
}

void QUuid::setRfc4122Uuid(const QByteArray &rfc4122Uuid)
{
    if (dptr->m_rfc4122Uuid != rfc4122Uuid) {
        dptr.detach();
        dptr->m_rfc4122Uuid = rfc4122Uuid;
    }
}

void QUuid::setRfc4122Uuid(QByteArray &&rfc4122Uuid)
{
    if (dptr->m_rfc4122Uuid != rfc4122Uuid) {
        dptr.detach();
        dptr->m_rfc4122Uuid = std::move(rfc4122Uuid);
    }
}


class QTimeZone_QtProtobufData : public QSharedData
{
public:
    QTimeZone_QtProtobufData()
        : QSharedData()
    {
    }

    QTimeZone_QtProtobufData(const QTimeZone_QtProtobufData &other)
        : QSharedData(other),
          m_timeZone(other.m_timeZone)
    {
    }

    QtProtobufPrivate::QProtobufOneof m_timeZone;
};

QTimeZone::~QTimeZone() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 13> qt_protobuf_QTimeZone_uint_data;
    const char qt_protobuf_QTimeZone_char_data[48];
} qt_protobuf_QTimeZone_metadata {
    // data
    {
        0, /* = version */
        3, /* = num fields */
        4, /* = field number offset */
        7, /* = property index offset */
        10, /* = field flags offset */
        16, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        17, /* = offsetSeconds */
        31, /* = ianaId */
        38, /* = timeSpec */
        47, /* = end-of-string-marker */
        // Field numbers:
        1, /* = offsetSeconds */
        2, /* = ianaId */
        3, /* = timeSpec */
        // Property indices:
        0, /* = offsetSeconds */
        2, /* = ianaId */
        4, /* = timeSpec */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::Oneof | QtProtobufPrivate::FieldFlag::ExplicitPresence), /* = offsetSeconds */
        uint(QtProtobufPrivate::FieldFlag::Oneof | QtProtobufPrivate::FieldFlag::ExplicitPresence), /* = ianaId */
        uint(QtProtobufPrivate::FieldFlag::Oneof | QtProtobufPrivate::FieldFlag::ExplicitPresence | QtProtobufPrivate::FieldFlag::Enum), /* = timeSpec */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QTimeZone\0" /* = full message name */
    /* field char_data: */
    "offsetSeconds\0ianaId\0timeSpec\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QTimeZone::staticPropertyOrdering = {
    &qt_protobuf_QTimeZone_metadata.data
};

void QTimeZone::registerTypes()
{
    qRegisterMetaType<QTimeZone>();
    qRegisterMetaType<QList<QTimeZone>>();
    qRegisterProtobufEnumType<QTimeZone_QtProtobufNested::TimeSpec>();
    qRegisterMetaType<TimeSpec>();
    qRegisterMetaType<QList<TimeSpec>>();
}

QTimeZone::QTimeZone()
    : QProtobufMessage(&QTimeZone::staticMetaObject, &QTimeZone::staticPropertyOrdering),
      dptr(new QTimeZone_QtProtobufData)
{
}

QTimeZone::QTimeZone(const QTimeZone &other)
    = default;
QTimeZone &QTimeZone::operator =(const QTimeZone &other)
{
    QTimeZone temp(other);
    swap(temp);
    return *this;
}
QTimeZone::QTimeZone(QTimeZone &&other) noexcept
    = default;
QTimeZone::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QTimeZone &lhs, const QTimeZone &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_timeZone == rhs.dptr->m_timeZone;
}

QtProtobuf::int32 QTimeZone::offsetSeconds_p() const
{
    return dptr->m_timeZone.holdsField(1) ?
        dptr->m_timeZone.value<QtProtobuf::int32>() : QtProtobuf::int32(0);
}

bool QTimeZone::hasOffsetSeconds() const
{
    return dptr->m_timeZone.holdsField(1);
}
QtProtobuf::int32 QTimeZone::offsetSeconds() const
{
    Q_ASSERT(dptr->m_timeZone.holdsField(1));
    return dptr->m_timeZone.value<QtProtobuf::int32>();
}

QByteArray QTimeZone::ianaId_p() const
{
    return dptr->m_timeZone.holdsField(2) ?
        dptr->m_timeZone.value<QByteArray>() : QByteArray();
}

bool QTimeZone::hasIanaId() const
{
    return dptr->m_timeZone.holdsField(2);
}
QByteArray QTimeZone::ianaId() const
{
    Q_ASSERT(dptr->m_timeZone.holdsField(2));
    return dptr->m_timeZone.value<QByteArray>();
}

QTimeZone_QtProtobufNested::TimeSpec QTimeZone::timeSpec_p() const
{
    return dptr->m_timeZone.holdsField(3) ?
        dptr->m_timeZone.value<QTimeZone_QtProtobufNested::TimeSpec>() : QTimeZone_QtProtobufNested::TimeSpec(QTimeZone_QtProtobufNested::TimeSpec::LocalTime);
}

bool QTimeZone::hasTimeSpec() const
{
    return dptr->m_timeZone.holdsField(3);
}
QTimeZone_QtProtobufNested::TimeSpec QTimeZone::timeSpec() const
{
    Q_ASSERT(dptr->m_timeZone.holdsField(3));
    return dptr->m_timeZone.value<QTimeZone_QtProtobufNested::TimeSpec>();
}

void QTimeZone::setOffsetSeconds(QtProtobuf::int32 offsetSeconds)
{
    if (!dptr->m_timeZone.isEqual(offsetSeconds, 1)) {
        dptr.detach();
        dptr->m_timeZone.setValue(offsetSeconds, 1);
    }
}

void QTimeZone::setOffsetSeconds_p(QtProtobuf::int32 offsetSeconds)
{
    if (!dptr->m_timeZone.isEqual(offsetSeconds, 1)) {
        dptr.detach();
        dptr->m_timeZone.setValue(offsetSeconds, 1);
    }
}

void QTimeZone::setIanaId(const QByteArray &ianaId)
{
    if (!dptr->m_timeZone.isEqual(ianaId, 2)) {
        dptr.detach();
        dptr->m_timeZone.setValue(ianaId, 2);
    }
}

void QTimeZone::setIanaId(QByteArray &&ianaId)
{
    if (!dptr->m_timeZone.isEqual(ianaId, 2)) {
        dptr.detach();
        dptr->m_timeZone.setValue(std::move(ianaId), 2);
    }
}

void QTimeZone::setIanaId_p(QByteArray ianaId)
{
    if (!dptr->m_timeZone.isEqual(ianaId, 2)) {
        dptr.detach();
        dptr->m_timeZone.setValue(ianaId, 2);
    }
}

void QTimeZone::setTimeSpec(QTimeZone_QtProtobufNested::TimeSpec timeSpec)
{
    if (!dptr->m_timeZone.isEqual(timeSpec, 3)) {
        dptr.detach();
        dptr->m_timeZone.setValue(timeSpec, 3);
    }
}

void QTimeZone::setTimeSpec_p(QTimeZone_QtProtobufNested::TimeSpec timeSpec)
{
    if (!dptr->m_timeZone.isEqual(timeSpec, 3)) {
        dptr.detach();
        dptr->m_timeZone.setValue(timeSpec, 3);
    }
}

QTimeZone::TimeZoneFields QTimeZone::timeZoneField() const
{
    return static_cast<TimeZoneFields>(dptr->m_timeZone.fieldNumber());
}
void QTimeZone::clearTimeZone()
{
    if (dptr->m_timeZone.fieldNumber() != QtProtobuf::InvalidFieldNumber) {
        dptr.detach();
        dptr->m_timeZone = QtProtobufPrivate::QProtobufOneof();
    }
}

class QTime_QtProtobufData : public QSharedData
{
public:
    QTime_QtProtobufData()
        : QSharedData(),
          m_millisecondsSinceMidnight(0)
    {
    }

    QTime_QtProtobufData(const QTime_QtProtobufData &other)
        : QSharedData(other),
          m_millisecondsSinceMidnight(other.m_millisecondsSinceMidnight)
    {
    }

    QtProtobuf::int32 m_millisecondsSinceMidnight;
};

QTime::~QTime() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 5> qt_protobuf_QTime_uint_data;
    const char qt_protobuf_QTime_char_data[40];
} qt_protobuf_QTime_metadata {
    // data
    {
        0, /* = version */
        1, /* = num fields */
        2, /* = field number offset */
        3, /* = property index offset */
        4, /* = field flags offset */
        12, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        13, /* = millisecondsSinceMidnight */
        39, /* = end-of-string-marker */
        // Field numbers:
        1, /* = millisecondsSinceMidnight */
        // Property indices:
        0, /* = millisecondsSinceMidnight */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = millisecondsSinceMidnight */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QTime\0" /* = full message name */
    /* field char_data: */
    "millisecondsSinceMidnight\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QTime::staticPropertyOrdering = {
    &qt_protobuf_QTime_metadata.data
};

void QTime::registerTypes()
{
    qRegisterMetaType<QTime>();
    qRegisterMetaType<QList<QTime>>();
}

QTime::QTime()
    : QProtobufMessage(&QTime::staticMetaObject, &QTime::staticPropertyOrdering),
      dptr(new QTime_QtProtobufData)
{
}

QTime::QTime(const QTime &other)
    = default;
QTime &QTime::operator =(const QTime &other)
{
    QTime temp(other);
    swap(temp);
    return *this;
}
QTime::QTime(QTime &&other) noexcept
    = default;
QTime::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QTime &lhs, const QTime &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_millisecondsSinceMidnight == rhs.dptr->m_millisecondsSinceMidnight;
}

QtProtobuf::int32 QTime::millisecondsSinceMidnight() const
{
    return dptr->m_millisecondsSinceMidnight;
}

void QTime::setMillisecondsSinceMidnight(QtProtobuf::int32 millisecondsSinceMidnight)
{
    if (dptr->m_millisecondsSinceMidnight != millisecondsSinceMidnight) {
        dptr.detach();
        dptr->m_millisecondsSinceMidnight = millisecondsSinceMidnight;
    }
}


class QDate_QtProtobufData : public QSharedData
{
public:
    QDate_QtProtobufData()
        : QSharedData(),
          m_julianDay(0)
    {
    }

    QDate_QtProtobufData(const QDate_QtProtobufData &other)
        : QSharedData(other),
          m_julianDay(other.m_julianDay)
    {
    }

    QtProtobuf::int64 m_julianDay;
};

QDate::~QDate() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 5> qt_protobuf_QDate_uint_data;
    const char qt_protobuf_QDate_char_data[24];
} qt_protobuf_QDate_metadata {
    // data
    {
        0, /* = version */
        1, /* = num fields */
        2, /* = field number offset */
        3, /* = property index offset */
        4, /* = field flags offset */
        12, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        13, /* = julianDay */
        23, /* = end-of-string-marker */
        // Field numbers:
        1, /* = julianDay */
        // Property indices:
        0, /* = julianDay */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = julianDay */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QDate\0" /* = full message name */
    /* field char_data: */
    "julianDay\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QDate::staticPropertyOrdering = {
    &qt_protobuf_QDate_metadata.data
};

void QDate::registerTypes()
{
    qRegisterMetaType<QDate>();
    qRegisterMetaType<QList<QDate>>();
}

QDate::QDate()
    : QProtobufMessage(&QDate::staticMetaObject, &QDate::staticPropertyOrdering),
      dptr(new QDate_QtProtobufData)
{
}

QDate::QDate(const QDate &other)
    = default;
QDate &QDate::operator =(const QDate &other)
{
    QDate temp(other);
    swap(temp);
    return *this;
}
QDate::QDate(QDate &&other) noexcept
    = default;
QDate::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QDate &lhs, const QDate &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_julianDay == rhs.dptr->m_julianDay;
}

QtProtobuf::int64 QDate::julianDay() const
{
    return dptr->m_julianDay;
}

void QDate::setJulianDay(QtProtobuf::int64 julianDay)
{
    if (dptr->m_julianDay != julianDay) {
        dptr.detach();
        dptr->m_julianDay = julianDay;
    }
}


class QDateTime_QtProtobufData : public QSharedData
{
public:
    QDateTime_QtProtobufData()
        : QSharedData(),
          m_utcMsecsSinceUnixEpoch(0),
          m_timeZone(nullptr)
    {
    }

    QDateTime_QtProtobufData(const QDateTime_QtProtobufData &other)
        : QSharedData(other),
          m_utcMsecsSinceUnixEpoch(other.m_utcMsecsSinceUnixEpoch),
          m_timeZone(other.m_timeZone
                                               ? new QTimeZone(*other.m_timeZone)
                                               : nullptr)
    {
    }

    QtProtobuf::int64 m_utcMsecsSinceUnixEpoch;
    QtProtobufPrivate::QProtobufLazyMessagePointer<QTimeZone> m_timeZone;
};

QDateTime::~QDateTime() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 9> qt_protobuf_QDateTime_uint_data;
    const char qt_protobuf_QDateTime_char_data[50];
} qt_protobuf_QDateTime_metadata {
    // data
    {
        0, /* = version */
        2, /* = num fields */
        3, /* = field number offset */
        5, /* = property index offset */
        7, /* = field flags offset */
        16, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        17, /* = utcMsecsSinceUnixEpoch */
        40, /* = timeZone */
        49, /* = end-of-string-marker */
        // Field numbers:
        1, /* = utcMsecsSinceUnixEpoch */
        2, /* = timeZone */
        // Property indices:
        0, /* = utcMsecsSinceUnixEpoch */
        1, /* = timeZone */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = utcMsecsSinceUnixEpoch */
        uint(QtProtobufPrivate::FieldFlag::ExplicitPresence | QtProtobufPrivate::FieldFlag::Message), /* = timeZone */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QDateTime\0" /* = full message name */
    /* field char_data: */
    "utcMsecsSinceUnixEpoch\0timeZone\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QDateTime::staticPropertyOrdering = {
    &qt_protobuf_QDateTime_metadata.data
};

void QDateTime::registerTypes()
{
    qRegisterMetaType<QDateTime>();
    qRegisterMetaType<QList<QDateTime>>();
}

QDateTime::QDateTime()
    : QProtobufMessage(&QDateTime::staticMetaObject, &QDateTime::staticPropertyOrdering),
      dptr(new QDateTime_QtProtobufData)
{
}

QDateTime::QDateTime(const QDateTime &other)
    = default;
QDateTime &QDateTime::operator =(const QDateTime &other)
{
    QDateTime temp(other);
    swap(temp);
    return *this;
}
QDateTime::QDateTime(QDateTime &&other) noexcept
    = default;
QDateTime::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QDateTime &lhs, const QDateTime &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_utcMsecsSinceUnixEpoch == rhs.dptr->m_utcMsecsSinceUnixEpoch
        && (lhs.dptr->m_timeZone == rhs.dptr->m_timeZone
            || *lhs.dptr->m_timeZone == *rhs.dptr->m_timeZone);
}

QtProtobuf::int64 QDateTime::utcMsecsSinceUnixEpoch() const
{
    return dptr->m_utcMsecsSinceUnixEpoch;
}

QTimeZone *QDateTime::timeZone_p()
{
    if (!dptr->m_timeZone)
        dptr.detach();
    return dptr->m_timeZone.get();
}

bool QDateTime::hasTimeZone() const
{
    return dptr->m_timeZone.operator bool();
}

const QTimeZone &QDateTime::timeZone() const &
{
    return *dptr->m_timeZone;
}

QTimeZone &QDateTime::mutTimeZone() &
{
    dptr.detach();
    return *dptr->m_timeZone;
}

void QDateTime::clearTimeZone()
{
    if (dptr->m_timeZone) {
        dptr.detach();
        dptr->m_timeZone.reset();
    }
}

void QDateTime::setUtcMsecsSinceUnixEpoch(QtProtobuf::int64 utcMsecsSinceUnixEpoch)
{
    if (dptr->m_utcMsecsSinceUnixEpoch != utcMsecsSinceUnixEpoch) {
        dptr.detach();
        dptr->m_utcMsecsSinceUnixEpoch = utcMsecsSinceUnixEpoch;
    }
}

void QDateTime::setTimeZone_p(QTimeZone *timeZone)
{
    if (dptr->m_timeZone.get() != timeZone) {
        dptr.detach();
        dptr->m_timeZone.reset(timeZone);
    }
}

void QDateTime::setTimeZone(const QTimeZone &timeZone)
{
    if (*dptr->m_timeZone != timeZone) {
        dptr.detach();
        *dptr->m_timeZone = timeZone;
    }
}

void QDateTime::setTimeZone(QTimeZone &&timeZone)
{
    if (*dptr->m_timeZone != timeZone) {
        dptr.detach();
        *dptr->m_timeZone = std::move(timeZone);
    }
}


class QSize_QtProtobufData : public QSharedData
{
public:
    QSize_QtProtobufData()
        : QSharedData(),
          m_width(0),
          m_height(0)
    {
    }

    QSize_QtProtobufData(const QSize_QtProtobufData &other)
        : QSharedData(other),
          m_width(other.m_width),
          m_height(other.m_height)
    {
    }

    QtProtobuf::int32 m_width;
    QtProtobuf::int32 m_height;
};

QSize::~QSize() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 9> qt_protobuf_QSize_uint_data;
    const char qt_protobuf_QSize_char_data[27];
} qt_protobuf_QSize_metadata {
    // data
    {
        0, /* = version */
        2, /* = num fields */
        3, /* = field number offset */
        5, /* = property index offset */
        7, /* = field flags offset */
        12, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        13, /* = width */
        19, /* = height */
        26, /* = end-of-string-marker */
        // Field numbers:
        1, /* = width */
        2, /* = height */
        // Property indices:
        0, /* = width */
        1, /* = height */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = width */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = height */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QSize\0" /* = full message name */
    /* field char_data: */
    "width\0height\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QSize::staticPropertyOrdering = {
    &qt_protobuf_QSize_metadata.data
};

void QSize::registerTypes()
{
    qRegisterMetaType<QSize>();
    qRegisterMetaType<QList<QSize>>();
}

QSize::QSize()
    : QProtobufMessage(&QSize::staticMetaObject, &QSize::staticPropertyOrdering),
      dptr(new QSize_QtProtobufData)
{
}

QSize::QSize(const QSize &other)
    = default;
QSize &QSize::operator =(const QSize &other)
{
    QSize temp(other);
    swap(temp);
    return *this;
}
QSize::QSize(QSize &&other) noexcept
    = default;
QSize::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QSize &lhs, const QSize &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_width == rhs.dptr->m_width
        && lhs.dptr->m_height == rhs.dptr->m_height;
}

QtProtobuf::int32 QSize::width() const
{
    return dptr->m_width;
}

QtProtobuf::int32 QSize::height() const
{
    return dptr->m_height;
}

void QSize::setWidth(QtProtobuf::int32 width)
{
    if (dptr->m_width != width) {
        dptr.detach();
        dptr->m_width = width;
    }
}

void QSize::setHeight(QtProtobuf::int32 height)
{
    if (dptr->m_height != height) {
        dptr.detach();
        dptr->m_height = height;
    }
}


class QSizeF_QtProtobufData : public QSharedData
{
public:
    QSizeF_QtProtobufData()
        : QSharedData(),
          m_width(0.0),
          m_height(0.0)
    {
    }

    QSizeF_QtProtobufData(const QSizeF_QtProtobufData &other)
        : QSharedData(other),
          m_width(other.m_width),
          m_height(other.m_height)
    {
    }

    double m_width;
    double m_height;
};

QSizeF::~QSizeF() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 9> qt_protobuf_QSizeF_uint_data;
    const char qt_protobuf_QSizeF_char_data[28];
} qt_protobuf_QSizeF_metadata {
    // data
    {
        0, /* = version */
        2, /* = num fields */
        3, /* = field number offset */
        5, /* = property index offset */
        7, /* = field flags offset */
        13, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        14, /* = width */
        20, /* = height */
        27, /* = end-of-string-marker */
        // Field numbers:
        1, /* = width */
        2, /* = height */
        // Property indices:
        0, /* = width */
        1, /* = height */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = width */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = height */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QSizeF\0" /* = full message name */
    /* field char_data: */
    "width\0height\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QSizeF::staticPropertyOrdering = {
    &qt_protobuf_QSizeF_metadata.data
};

void QSizeF::registerTypes()
{
    qRegisterMetaType<QSizeF>();
    qRegisterMetaType<QList<QSizeF>>();
}

QSizeF::QSizeF()
    : QProtobufMessage(&QSizeF::staticMetaObject, &QSizeF::staticPropertyOrdering),
      dptr(new QSizeF_QtProtobufData)
{
}

QSizeF::QSizeF(const QSizeF &other)
    = default;
QSizeF &QSizeF::operator =(const QSizeF &other)
{
    QSizeF temp(other);
    swap(temp);
    return *this;
}
QSizeF::QSizeF(QSizeF &&other) noexcept
    = default;
QSizeF::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QSizeF &lhs, const QSizeF &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_width == rhs.dptr->m_width
        && lhs.dptr->m_height == rhs.dptr->m_height;
}

double QSizeF::width() const
{
    return dptr->m_width;
}

double QSizeF::height() const
{
    return dptr->m_height;
}

void QSizeF::setWidth(double width)
{
    if (dptr->m_width != width ||
        std::signbit(dptr->m_width) != std::signbit(width)) {
        dptr.detach();
        dptr->m_width = width;
    }
}

void QSizeF::setHeight(double height)
{
    if (dptr->m_height != height ||
        std::signbit(dptr->m_height) != std::signbit(height)) {
        dptr.detach();
        dptr->m_height = height;
    }
}


class QPoint_QtProtobufData : public QSharedData
{
public:
    QPoint_QtProtobufData()
        : QSharedData(),
          m_x(0),
          m_y(0)
    {
    }

    QPoint_QtProtobufData(const QPoint_QtProtobufData &other)
        : QSharedData(other),
          m_x(other.m_x),
          m_y(other.m_y)
    {
    }

    QtProtobuf::sint32 m_x;
    QtProtobuf::sint32 m_y;
};

QPoint::~QPoint() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 9> qt_protobuf_QPoint_uint_data;
    const char qt_protobuf_QPoint_char_data[19];
} qt_protobuf_QPoint_metadata {
    // data
    {
        0, /* = version */
        2, /* = num fields */
        3, /* = field number offset */
        5, /* = property index offset */
        7, /* = field flags offset */
        13, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        14, /* = x */
        16, /* = y */
        18, /* = end-of-string-marker */
        // Field numbers:
        1, /* = x */
        2, /* = y */
        // Property indices:
        0, /* = x */
        1, /* = y */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = x */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = y */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QPoint\0" /* = full message name */
    /* field char_data: */
    "x\0y\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QPoint::staticPropertyOrdering = {
    &qt_protobuf_QPoint_metadata.data
};

void QPoint::registerTypes()
{
    qRegisterMetaType<QPoint>();
    qRegisterMetaType<QList<QPoint>>();
}

QPoint::QPoint()
    : QProtobufMessage(&QPoint::staticMetaObject, &QPoint::staticPropertyOrdering),
      dptr(new QPoint_QtProtobufData)
{
}

QPoint::QPoint(const QPoint &other)
    = default;
QPoint &QPoint::operator =(const QPoint &other)
{
    QPoint temp(other);
    swap(temp);
    return *this;
}
QPoint::QPoint(QPoint &&other) noexcept
    = default;
QPoint::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QPoint &lhs, const QPoint &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_x == rhs.dptr->m_x
        && lhs.dptr->m_y == rhs.dptr->m_y;
}

QtProtobuf::sint32 QPoint::x() const
{
    return dptr->m_x;
}

QtProtobuf::sint32 QPoint::y() const
{
    return dptr->m_y;
}

void QPoint::setX(QtProtobuf::sint32 x)
{
    if (dptr->m_x != x) {
        dptr.detach();
        dptr->m_x = x;
    }
}

void QPoint::setY(QtProtobuf::sint32 y)
{
    if (dptr->m_y != y) {
        dptr.detach();
        dptr->m_y = y;
    }
}


class QPointF_QtProtobufData : public QSharedData
{
public:
    QPointF_QtProtobufData()
        : QSharedData(),
          m_x(0.0),
          m_y(0.0)
    {
    }

    QPointF_QtProtobufData(const QPointF_QtProtobufData &other)
        : QSharedData(other),
          m_x(other.m_x),
          m_y(other.m_y)
    {
    }

    double m_x;
    double m_y;
};

QPointF::~QPointF() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 9> qt_protobuf_QPointF_uint_data;
    const char qt_protobuf_QPointF_char_data[20];
} qt_protobuf_QPointF_metadata {
    // data
    {
        0, /* = version */
        2, /* = num fields */
        3, /* = field number offset */
        5, /* = property index offset */
        7, /* = field flags offset */
        14, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        15, /* = x */
        17, /* = y */
        19, /* = end-of-string-marker */
        // Field numbers:
        1, /* = x */
        2, /* = y */
        // Property indices:
        0, /* = x */
        1, /* = y */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = x */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = y */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QPointF\0" /* = full message name */
    /* field char_data: */
    "x\0y\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QPointF::staticPropertyOrdering = {
    &qt_protobuf_QPointF_metadata.data
};

void QPointF::registerTypes()
{
    qRegisterMetaType<QPointF>();
    qRegisterMetaType<QList<QPointF>>();
}

QPointF::QPointF()
    : QProtobufMessage(&QPointF::staticMetaObject, &QPointF::staticPropertyOrdering),
      dptr(new QPointF_QtProtobufData)
{
}

QPointF::QPointF(const QPointF &other)
    = default;
QPointF &QPointF::operator =(const QPointF &other)
{
    QPointF temp(other);
    swap(temp);
    return *this;
}
QPointF::QPointF(QPointF &&other) noexcept
    = default;
QPointF::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QPointF &lhs, const QPointF &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_x == rhs.dptr->m_x
        && lhs.dptr->m_y == rhs.dptr->m_y;
}

double QPointF::x() const
{
    return dptr->m_x;
}

double QPointF::y() const
{
    return dptr->m_y;
}

void QPointF::setX(double x)
{
    if (dptr->m_x != x ||
        std::signbit(dptr->m_x) != std::signbit(x)) {
        dptr.detach();
        dptr->m_x = x;
    }
}

void QPointF::setY(double y)
{
    if (dptr->m_y != y ||
        std::signbit(dptr->m_y) != std::signbit(y)) {
        dptr.detach();
        dptr->m_y = y;
    }
}


class QRect_QtProtobufData : public QSharedData
{
public:
    QRect_QtProtobufData()
        : QSharedData(),
          m_x(0),
          m_y(0),
          m_width(0),
          m_height(0)
    {
    }

    QRect_QtProtobufData(const QRect_QtProtobufData &other)
        : QSharedData(other),
          m_x(other.m_x),
          m_y(other.m_y),
          m_width(other.m_width),
          m_height(other.m_height)
    {
    }

    QtProtobuf::sint32 m_x;
    QtProtobuf::sint32 m_y;
    QtProtobuf::int32 m_width;
    QtProtobuf::int32 m_height;
};

QRect::~QRect() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 17> qt_protobuf_QRect_uint_data;
    const char qt_protobuf_QRect_char_data[31];
} qt_protobuf_QRect_metadata {
    // data
    {
        0, /* = version */
        4, /* = num fields */
        5, /* = field number offset */
        9, /* = property index offset */
        13, /* = field flags offset */
        12, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        13, /* = x */
        15, /* = y */
        17, /* = width */
        23, /* = height */
        30, /* = end-of-string-marker */
        // Field numbers:
        1, /* = x */
        2, /* = y */
        3, /* = width */
        4, /* = height */
        // Property indices:
        0, /* = x */
        1, /* = y */
        2, /* = width */
        3, /* = height */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = x */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = y */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = width */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = height */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QRect\0" /* = full message name */
    /* field char_data: */
    "x\0y\0width\0height\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QRect::staticPropertyOrdering = {
    &qt_protobuf_QRect_metadata.data
};

void QRect::registerTypes()
{
    qRegisterMetaType<QRect>();
    qRegisterMetaType<QList<QRect>>();
}

QRect::QRect()
    : QProtobufMessage(&QRect::staticMetaObject, &QRect::staticPropertyOrdering),
      dptr(new QRect_QtProtobufData)
{
}

QRect::QRect(const QRect &other)
    = default;
QRect &QRect::operator =(const QRect &other)
{
    QRect temp(other);
    swap(temp);
    return *this;
}
QRect::QRect(QRect &&other) noexcept
    = default;
QRect::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QRect &lhs, const QRect &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_x == rhs.dptr->m_x
        && lhs.dptr->m_y == rhs.dptr->m_y
        && lhs.dptr->m_width == rhs.dptr->m_width
        && lhs.dptr->m_height == rhs.dptr->m_height;
}

QtProtobuf::sint32 QRect::x() const
{
    return dptr->m_x;
}

QtProtobuf::sint32 QRect::y() const
{
    return dptr->m_y;
}

QtProtobuf::int32 QRect::width() const
{
    return dptr->m_width;
}

QtProtobuf::int32 QRect::height() const
{
    return dptr->m_height;
}

void QRect::setX(QtProtobuf::sint32 x)
{
    if (dptr->m_x != x) {
        dptr.detach();
        dptr->m_x = x;
    }
}

void QRect::setY(QtProtobuf::sint32 y)
{
    if (dptr->m_y != y) {
        dptr.detach();
        dptr->m_y = y;
    }
}

void QRect::setWidth(QtProtobuf::int32 width)
{
    if (dptr->m_width != width) {
        dptr.detach();
        dptr->m_width = width;
    }
}

void QRect::setHeight(QtProtobuf::int32 height)
{
    if (dptr->m_height != height) {
        dptr.detach();
        dptr->m_height = height;
    }
}


class QRectF_QtProtobufData : public QSharedData
{
public:
    QRectF_QtProtobufData()
        : QSharedData(),
          m_x(0.0),
          m_y(0.0),
          m_width(0.0),
          m_height(0.0)
    {
    }

    QRectF_QtProtobufData(const QRectF_QtProtobufData &other)
        : QSharedData(other),
          m_x(other.m_x),
          m_y(other.m_y),
          m_width(other.m_width),
          m_height(other.m_height)
    {
    }

    double m_x;
    double m_y;
    double m_width;
    double m_height;
};

QRectF::~QRectF() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 17> qt_protobuf_QRectF_uint_data;
    const char qt_protobuf_QRectF_char_data[32];
} qt_protobuf_QRectF_metadata {
    // data
    {
        0, /* = version */
        4, /* = num fields */
        5, /* = field number offset */
        9, /* = property index offset */
        13, /* = field flags offset */
        13, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        14, /* = x */
        16, /* = y */
        18, /* = width */
        24, /* = height */
        31, /* = end-of-string-marker */
        // Field numbers:
        1, /* = x */
        2, /* = y */
        3, /* = width */
        4, /* = height */
        // Property indices:
        0, /* = x */
        1, /* = y */
        2, /* = width */
        3, /* = height */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = x */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = y */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = width */
        uint(QtProtobufPrivate::FieldFlag::NoFlags), /* = height */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QRectF\0" /* = full message name */
    /* field char_data: */
    "x\0y\0width\0height\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QRectF::staticPropertyOrdering = {
    &qt_protobuf_QRectF_metadata.data
};

void QRectF::registerTypes()
{
    qRegisterMetaType<QRectF>();
    qRegisterMetaType<QList<QRectF>>();
}

QRectF::QRectF()
    : QProtobufMessage(&QRectF::staticMetaObject, &QRectF::staticPropertyOrdering),
      dptr(new QRectF_QtProtobufData)
{
}

QRectF::QRectF(const QRectF &other)
    = default;
QRectF &QRectF::operator =(const QRectF &other)
{
    QRectF temp(other);
    swap(temp);
    return *this;
}
QRectF::QRectF(QRectF &&other) noexcept
    = default;
QRectF::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QRectF &lhs, const QRectF &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_x == rhs.dptr->m_x
        && lhs.dptr->m_y == rhs.dptr->m_y
        && lhs.dptr->m_width == rhs.dptr->m_width
        && lhs.dptr->m_height == rhs.dptr->m_height;
}

double QRectF::x() const
{
    return dptr->m_x;
}

double QRectF::y() const
{
    return dptr->m_y;
}

double QRectF::width() const
{
    return dptr->m_width;
}

double QRectF::height() const
{
    return dptr->m_height;
}

void QRectF::setX(double x)
{
    if (dptr->m_x != x ||
        std::signbit(dptr->m_x) != std::signbit(x)) {
        dptr.detach();
        dptr->m_x = x;
    }
}

void QRectF::setY(double y)
{
    if (dptr->m_y != y ||
        std::signbit(dptr->m_y) != std::signbit(y)) {
        dptr.detach();
        dptr->m_y = y;
    }
}

void QRectF::setWidth(double width)
{
    if (dptr->m_width != width ||
        std::signbit(dptr->m_width) != std::signbit(width)) {
        dptr.detach();
        dptr->m_width = width;
    }
}

void QRectF::setHeight(double height)
{
    if (dptr->m_height != height ||
        std::signbit(dptr->m_height) != std::signbit(height)) {
        dptr.detach();
        dptr->m_height = height;
    }
}


class QVersionNumber_QtProtobufData : public QSharedData
{
public:
    QVersionNumber_QtProtobufData()
        : QSharedData()
    {
    }

    QVersionNumber_QtProtobufData(const QVersionNumber_QtProtobufData &other)
        : QSharedData(other),
          m_segments(other.m_segments)
    {
    }

    QtProtobuf::int32List m_segments;
};

QVersionNumber::~QVersionNumber() = default;

static constexpr struct {
    QtProtobufPrivate::QProtobufPropertyOrdering::Data data;
    const std::array<uint, 5> qt_protobuf_QVersionNumber_uint_data;
    const char qt_protobuf_QVersionNumber_char_data[32];
} qt_protobuf_QVersionNumber_metadata {
    // data
    {
        0, /* = version */
        1, /* = num fields */
        2, /* = field number offset */
        3, /* = property index offset */
        4, /* = field flags offset */
        21, /* = message full name length */
    },
    // uint_data
    {
        // JSON name offsets:
        22, /* = segments */
        31, /* = end-of-string-marker */
        // Field numbers:
        1, /* = segments */
        // Property indices:
        0, /* = segments */
        // Field flags:
        uint(QtProtobufPrivate::FieldFlag::Repeated), /* = segments */
    },
    // char_data
    /* metadata char_data: */
    "QtCore.QVersionNumber\0" /* = full message name */
    /* field char_data: */
    "segments\0"
};

const QtProtobufPrivate::QProtobufPropertyOrdering QVersionNumber::staticPropertyOrdering = {
    &qt_protobuf_QVersionNumber_metadata.data
};

void QVersionNumber::registerTypes()
{
    qRegisterMetaType<QVersionNumber>();
    qRegisterMetaType<QList<QVersionNumber>>();
}

QVersionNumber::QVersionNumber()
    : QProtobufMessage(&QVersionNumber::staticMetaObject, &QVersionNumber::staticPropertyOrdering),
      dptr(new QVersionNumber_QtProtobufData)
{
}

QVersionNumber::QVersionNumber(const QVersionNumber &other)
    = default;
QVersionNumber &QVersionNumber::operator =(const QVersionNumber &other)
{
    QVersionNumber temp(other);
    swap(temp);
    return *this;
}
QVersionNumber::QVersionNumber(QVersionNumber &&other) noexcept
    = default;
QVersionNumber::operator QVariant() const
{
    return QVariant::fromValue(*this);
}
bool comparesEqual(const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
{
    return operator ==(static_cast<const QProtobufMessage&>(lhs),
                       static_cast<const QProtobufMessage&>(rhs))
        && lhs.dptr->m_segments == rhs.dptr->m_segments;
}

const QtProtobuf::int32List &QVersionNumber::segments() const &
{
    return dptr->m_segments;
}

void QVersionNumber::setSegments(const QtProtobuf::int32List &segments)
{
    if (dptr->m_segments != segments) {
        dptr.detach();
        dptr->m_segments = segments;
    }
}

void QVersionNumber::setSegments(QtProtobuf::int32List &&segments)
{
    if (dptr->m_segments != segments) {
        dptr.detach();
        dptr->m_segments = std::move(segments);
    }
}

} // namespace QtProtobufPrivate::QtCore
QT_END_NAMESPACE

#include "moc_QtCore.qpb.cpp"
