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

#ifndef QPROTOBUF_DURATION_H
#define QPROTOBUF_DURATION_H

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

#include <QtCore/qbytearray.h>
#include <QtCore/qstring.h>

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


namespace google::protobuf {
class Duration;
using DurationRepeated = QList<Duration>;
namespace Duration_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace Duration_QtProtobufNested


class Duration_QtProtobufData;
class Duration : public QProtobufMessage
{
    Q_PROTOBUF_OBJECT
    Q_PROPERTY(QtProtobuf::int64 seconds READ seconds WRITE setSeconds SCRIPTABLE false)
    Q_PROPERTY(QtProtobuf::int32 nanos READ nanos WRITE setNanos SCRIPTABLE true)

public:
    using QtProtobufFieldEnum = Duration_QtProtobufNested::QtProtobufFieldEnum;
    Duration();
    ~Duration();
    Duration(const Duration &other);
    Duration &operator =(const Duration &other);
    Duration(Duration &&other) noexcept;
    Duration &operator =(Duration &&other) noexcept;

    QtProtobuf::int64 seconds() const;

    QtProtobuf::int32 nanos() const;
    void setSeconds(const QtProtobuf::int64 &seconds);
    void setNanos(const QtProtobuf::int32 &nanos);
    static void registerTypes();

private:
    friend  bool comparesEqual(const Duration &lhs, const Duration &rhs) noexcept;
    friend bool operator==(const Duration &lhs, const Duration &rhs) noexcept
    {
        return comparesEqual(lhs, rhs);
    }
    friend bool operator!=(const Duration &lhs, const Duration &rhs) noexcept
    {
        return !comparesEqual(lhs, rhs);
    }
    QExplicitlySharedDataPointer<Duration_QtProtobufData> dptr;
};
namespace Duration_QtProtobufNested {
Q_NAMESPACE

enum class QtProtobufFieldEnum {
    SecondsProtoFieldNumber = 1,
    NanosProtoFieldNumber = 2,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace Duration_QtProtobufNested
} // namespace google::protobuf

Q_DECLARE_METATYPE(google::protobuf::Duration)
#endif // QPROTOBUF_DURATION_H
