// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: onnx/onnx-operators.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_onnx_2fonnx_2doperators_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_onnx_2fonnx_2doperators_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3009000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3009001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "onnx/onnx.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_onnx_2fonnx_2doperators_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_onnx_2fonnx_2doperators_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_onnx_2fonnx_2doperators_2eproto;
namespace onnx {
class FunctionProto;
class FunctionProtoDefaultTypeInternal;
extern FunctionProtoDefaultTypeInternal _FunctionProto_default_instance_;
class OperatorProto;
class OperatorProtoDefaultTypeInternal;
extern OperatorProtoDefaultTypeInternal _OperatorProto_default_instance_;
class OperatorSetProto;
class OperatorSetProtoDefaultTypeInternal;
extern OperatorSetProtoDefaultTypeInternal _OperatorSetProto_default_instance_;
}  // namespace onnx
PROTOBUF_NAMESPACE_OPEN
template<> ::onnx::FunctionProto* Arena::CreateMaybeMessage<::onnx::FunctionProto>(Arena*);
template<> ::onnx::OperatorProto* Arena::CreateMaybeMessage<::onnx::OperatorProto>(Arena*);
template<> ::onnx::OperatorSetProto* Arena::CreateMaybeMessage<::onnx::OperatorSetProto>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace onnx {

enum OperatorStatus : int {
  EXPERIMENTAL = 0,
  STABLE = 1
};
bool OperatorStatus_IsValid(int value);
constexpr OperatorStatus OperatorStatus_MIN = EXPERIMENTAL;
constexpr OperatorStatus OperatorStatus_MAX = STABLE;
constexpr int OperatorStatus_ARRAYSIZE = OperatorStatus_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OperatorStatus_descriptor();
template<typename T>
inline const std::string& OperatorStatus_Name(T enum_t_value) {
  static_assert(::std::is_same<T, OperatorStatus>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function OperatorStatus_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    OperatorStatus_descriptor(), enum_t_value);
}
inline bool OperatorStatus_Parse(
    const std::string& name, OperatorStatus* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<OperatorStatus>(
    OperatorStatus_descriptor(), name, value);
}
// ===================================================================

class FunctionProto :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:onnx.FunctionProto) */ {
 public:
  FunctionProto();
  virtual ~FunctionProto();

  FunctionProto(const FunctionProto& from);
  FunctionProto(FunctionProto&& from) noexcept
    : FunctionProto() {
    *this = ::std::move(from);
  }

  inline FunctionProto& operator=(const FunctionProto& from) {
    CopyFrom(from);
    return *this;
  }
  inline FunctionProto& operator=(FunctionProto&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const FunctionProto& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const FunctionProto* internal_default_instance() {
    return reinterpret_cast<const FunctionProto*>(
               &_FunctionProto_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(FunctionProto& a, FunctionProto& b) {
    a.Swap(&b);
  }
  inline void Swap(FunctionProto* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline FunctionProto* New() const final {
    return CreateMaybeMessage<FunctionProto>(nullptr);
  }

  FunctionProto* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<FunctionProto>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const FunctionProto& from);
  void MergeFrom(const FunctionProto& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FunctionProto* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "onnx.FunctionProto";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_onnx_2fonnx_2doperators_2eproto);
    return ::descriptor_table_onnx_2fonnx_2doperators_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kInputFieldNumber = 4,
    kOutputFieldNumber = 5,
    kAttributeFieldNumber = 6,
    kNodeFieldNumber = 7,
    kNameFieldNumber = 1,
    kDocStringFieldNumber = 8,
    kSinceVersionFieldNumber = 2,
    kStatusFieldNumber = 3,
  };
  // repeated string input = 4;
  int input_size() const;
  void clear_input();
  const std::string& input(int index) const;
  std::string* mutable_input(int index);
  void set_input(int index, const std::string& value);
  void set_input(int index, std::string&& value);
  void set_input(int index, const char* value);
  void set_input(int index, const char* value, size_t size);
  std::string* add_input();
  void add_input(const std::string& value);
  void add_input(std::string&& value);
  void add_input(const char* value);
  void add_input(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& input() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_input();

  // repeated string output = 5;
  int output_size() const;
  void clear_output();
  const std::string& output(int index) const;
  std::string* mutable_output(int index);
  void set_output(int index, const std::string& value);
  void set_output(int index, std::string&& value);
  void set_output(int index, const char* value);
  void set_output(int index, const char* value, size_t size);
  std::string* add_output();
  void add_output(const std::string& value);
  void add_output(std::string&& value);
  void add_output(const char* value);
  void add_output(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& output() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_output();

  // repeated string attribute = 6;
  int attribute_size() const;
  void clear_attribute();
  const std::string& attribute(int index) const;
  std::string* mutable_attribute(int index);
  void set_attribute(int index, const std::string& value);
  void set_attribute(int index, std::string&& value);
  void set_attribute(int index, const char* value);
  void set_attribute(int index, const char* value, size_t size);
  std::string* add_attribute();
  void add_attribute(const std::string& value);
  void add_attribute(std::string&& value);
  void add_attribute(const char* value);
  void add_attribute(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& attribute() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_attribute();

  // repeated .onnx.NodeProto node = 7;
  int node_size() const;
  void clear_node();
  ::onnx::NodeProto* mutable_node(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::NodeProto >*
      mutable_node();
  const ::onnx::NodeProto& node(int index) const;
  ::onnx::NodeProto* add_node();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::NodeProto >&
      node() const;

  // optional string name = 1;
  bool has_name() const;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);

  // optional string doc_string = 8;
  bool has_doc_string() const;
  void clear_doc_string();
  const std::string& doc_string() const;
  void set_doc_string(const std::string& value);
  void set_doc_string(std::string&& value);
  void set_doc_string(const char* value);
  void set_doc_string(const char* value, size_t size);
  std::string* mutable_doc_string();
  std::string* release_doc_string();
  void set_allocated_doc_string(std::string* doc_string);

  // optional int64 since_version = 2;
  bool has_since_version() const;
  void clear_since_version();
  ::PROTOBUF_NAMESPACE_ID::int64 since_version() const;
  void set_since_version(::PROTOBUF_NAMESPACE_ID::int64 value);

  // optional .onnx.OperatorStatus status = 3;
  bool has_status() const;
  void clear_status();
  ::onnx::OperatorStatus status() const;
  void set_status(::onnx::OperatorStatus value);

  // @@protoc_insertion_point(class_scope:onnx.FunctionProto)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> input_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> output_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> attribute_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::NodeProto > node_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr doc_string_;
  ::PROTOBUF_NAMESPACE_ID::int64 since_version_;
  int status_;
  friend struct ::TableStruct_onnx_2fonnx_2doperators_2eproto;
};
// -------------------------------------------------------------------

class OperatorProto :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:onnx.OperatorProto) */ {
 public:
  OperatorProto();
  virtual ~OperatorProto();

  OperatorProto(const OperatorProto& from);
  OperatorProto(OperatorProto&& from) noexcept
    : OperatorProto() {
    *this = ::std::move(from);
  }

  inline OperatorProto& operator=(const OperatorProto& from) {
    CopyFrom(from);
    return *this;
  }
  inline OperatorProto& operator=(OperatorProto&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const OperatorProto& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OperatorProto* internal_default_instance() {
    return reinterpret_cast<const OperatorProto*>(
               &_OperatorProto_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(OperatorProto& a, OperatorProto& b) {
    a.Swap(&b);
  }
  inline void Swap(OperatorProto* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OperatorProto* New() const final {
    return CreateMaybeMessage<OperatorProto>(nullptr);
  }

  OperatorProto* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OperatorProto>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OperatorProto& from);
  void MergeFrom(const OperatorProto& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OperatorProto* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "onnx.OperatorProto";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_onnx_2fonnx_2doperators_2eproto);
    return ::descriptor_table_onnx_2fonnx_2doperators_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOpTypeFieldNumber = 1,
    kDocStringFieldNumber = 10,
    kSinceVersionFieldNumber = 2,
    kStatusFieldNumber = 3,
  };
  // optional string op_type = 1;
  bool has_op_type() const;
  void clear_op_type();
  const std::string& op_type() const;
  void set_op_type(const std::string& value);
  void set_op_type(std::string&& value);
  void set_op_type(const char* value);
  void set_op_type(const char* value, size_t size);
  std::string* mutable_op_type();
  std::string* release_op_type();
  void set_allocated_op_type(std::string* op_type);

  // optional string doc_string = 10;
  bool has_doc_string() const;
  void clear_doc_string();
  const std::string& doc_string() const;
  void set_doc_string(const std::string& value);
  void set_doc_string(std::string&& value);
  void set_doc_string(const char* value);
  void set_doc_string(const char* value, size_t size);
  std::string* mutable_doc_string();
  std::string* release_doc_string();
  void set_allocated_doc_string(std::string* doc_string);

  // optional int64 since_version = 2;
  bool has_since_version() const;
  void clear_since_version();
  ::PROTOBUF_NAMESPACE_ID::int64 since_version() const;
  void set_since_version(::PROTOBUF_NAMESPACE_ID::int64 value);

  // optional .onnx.OperatorStatus status = 3;
  bool has_status() const;
  void clear_status();
  ::onnx::OperatorStatus status() const;
  void set_status(::onnx::OperatorStatus value);

  // @@protoc_insertion_point(class_scope:onnx.OperatorProto)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr op_type_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr doc_string_;
  ::PROTOBUF_NAMESPACE_ID::int64 since_version_;
  int status_;
  friend struct ::TableStruct_onnx_2fonnx_2doperators_2eproto;
};
// -------------------------------------------------------------------

class OperatorSetProto :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:onnx.OperatorSetProto) */ {
 public:
  OperatorSetProto();
  virtual ~OperatorSetProto();

  OperatorSetProto(const OperatorSetProto& from);
  OperatorSetProto(OperatorSetProto&& from) noexcept
    : OperatorSetProto() {
    *this = ::std::move(from);
  }

  inline OperatorSetProto& operator=(const OperatorSetProto& from) {
    CopyFrom(from);
    return *this;
  }
  inline OperatorSetProto& operator=(OperatorSetProto&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const OperatorSetProto& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OperatorSetProto* internal_default_instance() {
    return reinterpret_cast<const OperatorSetProto*>(
               &_OperatorSetProto_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(OperatorSetProto& a, OperatorSetProto& b) {
    a.Swap(&b);
  }
  inline void Swap(OperatorSetProto* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline OperatorSetProto* New() const final {
    return CreateMaybeMessage<OperatorSetProto>(nullptr);
  }

  OperatorSetProto* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<OperatorSetProto>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const OperatorSetProto& from);
  void MergeFrom(const OperatorSetProto& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OperatorSetProto* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "onnx.OperatorSetProto";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_onnx_2fonnx_2doperators_2eproto);
    return ::descriptor_table_onnx_2fonnx_2doperators_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kOperatorFieldNumber = 8,
    kFunctionsFieldNumber = 9,
    kMagicFieldNumber = 1,
    kIrVersionPrereleaseFieldNumber = 3,
    kDomainFieldNumber = 4,
    kDocStringFieldNumber = 6,
    kIrBuildMetadataFieldNumber = 7,
    kIrVersionFieldNumber = 2,
    kOpsetVersionFieldNumber = 5,
  };
  // repeated .onnx.OperatorProto operator = 8;
  int operator__size() const;
  void clear_operator_();
  ::onnx::OperatorProto* mutable_operator_(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::OperatorProto >*
      mutable_operator_();
  const ::onnx::OperatorProto& operator_(int index) const;
  ::onnx::OperatorProto* add_operator_();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::OperatorProto >&
      operator_() const;

  // repeated .onnx.FunctionProto functions = 9;
  int functions_size() const;
  void clear_functions();
  ::onnx::FunctionProto* mutable_functions(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::FunctionProto >*
      mutable_functions();
  const ::onnx::FunctionProto& functions(int index) const;
  ::onnx::FunctionProto* add_functions();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::FunctionProto >&
      functions() const;

  // optional string magic = 1;
  bool has_magic() const;
  void clear_magic();
  const std::string& magic() const;
  void set_magic(const std::string& value);
  void set_magic(std::string&& value);
  void set_magic(const char* value);
  void set_magic(const char* value, size_t size);
  std::string* mutable_magic();
  std::string* release_magic();
  void set_allocated_magic(std::string* magic);

  // optional string ir_version_prerelease = 3;
  bool has_ir_version_prerelease() const;
  void clear_ir_version_prerelease();
  const std::string& ir_version_prerelease() const;
  void set_ir_version_prerelease(const std::string& value);
  void set_ir_version_prerelease(std::string&& value);
  void set_ir_version_prerelease(const char* value);
  void set_ir_version_prerelease(const char* value, size_t size);
  std::string* mutable_ir_version_prerelease();
  std::string* release_ir_version_prerelease();
  void set_allocated_ir_version_prerelease(std::string* ir_version_prerelease);

  // optional string domain = 4;
  bool has_domain() const;
  void clear_domain();
  const std::string& domain() const;
  void set_domain(const std::string& value);
  void set_domain(std::string&& value);
  void set_domain(const char* value);
  void set_domain(const char* value, size_t size);
  std::string* mutable_domain();
  std::string* release_domain();
  void set_allocated_domain(std::string* domain);

  // optional string doc_string = 6;
  bool has_doc_string() const;
  void clear_doc_string();
  const std::string& doc_string() const;
  void set_doc_string(const std::string& value);
  void set_doc_string(std::string&& value);
  void set_doc_string(const char* value);
  void set_doc_string(const char* value, size_t size);
  std::string* mutable_doc_string();
  std::string* release_doc_string();
  void set_allocated_doc_string(std::string* doc_string);

  // optional string ir_build_metadata = 7;
  bool has_ir_build_metadata() const;
  void clear_ir_build_metadata();
  const std::string& ir_build_metadata() const;
  void set_ir_build_metadata(const std::string& value);
  void set_ir_build_metadata(std::string&& value);
  void set_ir_build_metadata(const char* value);
  void set_ir_build_metadata(const char* value, size_t size);
  std::string* mutable_ir_build_metadata();
  std::string* release_ir_build_metadata();
  void set_allocated_ir_build_metadata(std::string* ir_build_metadata);

  // optional int64 ir_version = 2;
  bool has_ir_version() const;
  void clear_ir_version();
  ::PROTOBUF_NAMESPACE_ID::int64 ir_version() const;
  void set_ir_version(::PROTOBUF_NAMESPACE_ID::int64 value);

  // optional int64 opset_version = 5;
  bool has_opset_version() const;
  void clear_opset_version();
  ::PROTOBUF_NAMESPACE_ID::int64 opset_version() const;
  void set_opset_version(::PROTOBUF_NAMESPACE_ID::int64 value);

  // @@protoc_insertion_point(class_scope:onnx.OperatorSetProto)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::OperatorProto > operator__;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::FunctionProto > functions_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr magic_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ir_version_prerelease_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr domain_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr doc_string_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ir_build_metadata_;
  ::PROTOBUF_NAMESPACE_ID::int64 ir_version_;
  ::PROTOBUF_NAMESPACE_ID::int64 opset_version_;
  friend struct ::TableStruct_onnx_2fonnx_2doperators_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// FunctionProto

// optional string name = 1;
inline bool FunctionProto::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FunctionProto::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& FunctionProto::name() const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.name)
  return name_.GetNoArena();
}
inline void FunctionProto::set_name(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.name)
}
inline void FunctionProto::set_name(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.FunctionProto.name)
}
inline void FunctionProto::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.FunctionProto.name)
}
inline void FunctionProto::set_name(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.FunctionProto.name)
}
inline std::string* FunctionProto::mutable_name() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:onnx.FunctionProto.name)
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* FunctionProto::release_name() {
  // @@protoc_insertion_point(field_release:onnx.FunctionProto.name)
  if (!has_name()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return name_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void FunctionProto::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:onnx.FunctionProto.name)
}

// optional int64 since_version = 2;
inline bool FunctionProto::has_since_version() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void FunctionProto::clear_since_version() {
  since_version_ = PROTOBUF_LONGLONG(0);
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 FunctionProto::since_version() const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.since_version)
  return since_version_;
}
inline void FunctionProto::set_since_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _has_bits_[0] |= 0x00000004u;
  since_version_ = value;
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.since_version)
}

// optional .onnx.OperatorStatus status = 3;
inline bool FunctionProto::has_status() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void FunctionProto::clear_status() {
  status_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::onnx::OperatorStatus FunctionProto::status() const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.status)
  return static_cast< ::onnx::OperatorStatus >(status_);
}
inline void FunctionProto::set_status(::onnx::OperatorStatus value) {
  assert(::onnx::OperatorStatus_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  status_ = value;
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.status)
}

// repeated string input = 4;
inline int FunctionProto::input_size() const {
  return input_.size();
}
inline void FunctionProto::clear_input() {
  input_.Clear();
}
inline const std::string& FunctionProto::input(int index) const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.input)
  return input_.Get(index);
}
inline std::string* FunctionProto::mutable_input(int index) {
  // @@protoc_insertion_point(field_mutable:onnx.FunctionProto.input)
  return input_.Mutable(index);
}
inline void FunctionProto::set_input(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.input)
  input_.Mutable(index)->assign(value);
}
inline void FunctionProto::set_input(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.input)
  input_.Mutable(index)->assign(std::move(value));
}
inline void FunctionProto::set_input(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  input_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:onnx.FunctionProto.input)
}
inline void FunctionProto::set_input(int index, const char* value, size_t size) {
  input_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:onnx.FunctionProto.input)
}
inline std::string* FunctionProto::add_input() {
  // @@protoc_insertion_point(field_add_mutable:onnx.FunctionProto.input)
  return input_.Add();
}
inline void FunctionProto::add_input(const std::string& value) {
  input_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.input)
}
inline void FunctionProto::add_input(std::string&& value) {
  input_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.input)
}
inline void FunctionProto::add_input(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  input_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:onnx.FunctionProto.input)
}
inline void FunctionProto::add_input(const char* value, size_t size) {
  input_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:onnx.FunctionProto.input)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FunctionProto::input() const {
  // @@protoc_insertion_point(field_list:onnx.FunctionProto.input)
  return input_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FunctionProto::mutable_input() {
  // @@protoc_insertion_point(field_mutable_list:onnx.FunctionProto.input)
  return &input_;
}

// repeated string output = 5;
inline int FunctionProto::output_size() const {
  return output_.size();
}
inline void FunctionProto::clear_output() {
  output_.Clear();
}
inline const std::string& FunctionProto::output(int index) const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.output)
  return output_.Get(index);
}
inline std::string* FunctionProto::mutable_output(int index) {
  // @@protoc_insertion_point(field_mutable:onnx.FunctionProto.output)
  return output_.Mutable(index);
}
inline void FunctionProto::set_output(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.output)
  output_.Mutable(index)->assign(value);
}
inline void FunctionProto::set_output(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.output)
  output_.Mutable(index)->assign(std::move(value));
}
inline void FunctionProto::set_output(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  output_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:onnx.FunctionProto.output)
}
inline void FunctionProto::set_output(int index, const char* value, size_t size) {
  output_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:onnx.FunctionProto.output)
}
inline std::string* FunctionProto::add_output() {
  // @@protoc_insertion_point(field_add_mutable:onnx.FunctionProto.output)
  return output_.Add();
}
inline void FunctionProto::add_output(const std::string& value) {
  output_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.output)
}
inline void FunctionProto::add_output(std::string&& value) {
  output_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.output)
}
inline void FunctionProto::add_output(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  output_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:onnx.FunctionProto.output)
}
inline void FunctionProto::add_output(const char* value, size_t size) {
  output_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:onnx.FunctionProto.output)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FunctionProto::output() const {
  // @@protoc_insertion_point(field_list:onnx.FunctionProto.output)
  return output_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FunctionProto::mutable_output() {
  // @@protoc_insertion_point(field_mutable_list:onnx.FunctionProto.output)
  return &output_;
}

// repeated string attribute = 6;
inline int FunctionProto::attribute_size() const {
  return attribute_.size();
}
inline void FunctionProto::clear_attribute() {
  attribute_.Clear();
}
inline const std::string& FunctionProto::attribute(int index) const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.attribute)
  return attribute_.Get(index);
}
inline std::string* FunctionProto::mutable_attribute(int index) {
  // @@protoc_insertion_point(field_mutable:onnx.FunctionProto.attribute)
  return attribute_.Mutable(index);
}
inline void FunctionProto::set_attribute(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.attribute)
  attribute_.Mutable(index)->assign(value);
}
inline void FunctionProto::set_attribute(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.attribute)
  attribute_.Mutable(index)->assign(std::move(value));
}
inline void FunctionProto::set_attribute(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  attribute_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:onnx.FunctionProto.attribute)
}
inline void FunctionProto::set_attribute(int index, const char* value, size_t size) {
  attribute_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:onnx.FunctionProto.attribute)
}
inline std::string* FunctionProto::add_attribute() {
  // @@protoc_insertion_point(field_add_mutable:onnx.FunctionProto.attribute)
  return attribute_.Add();
}
inline void FunctionProto::add_attribute(const std::string& value) {
  attribute_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.attribute)
}
inline void FunctionProto::add_attribute(std::string&& value) {
  attribute_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.attribute)
}
inline void FunctionProto::add_attribute(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  attribute_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:onnx.FunctionProto.attribute)
}
inline void FunctionProto::add_attribute(const char* value, size_t size) {
  attribute_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:onnx.FunctionProto.attribute)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FunctionProto::attribute() const {
  // @@protoc_insertion_point(field_list:onnx.FunctionProto.attribute)
  return attribute_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FunctionProto::mutable_attribute() {
  // @@protoc_insertion_point(field_mutable_list:onnx.FunctionProto.attribute)
  return &attribute_;
}

// repeated .onnx.NodeProto node = 7;
inline int FunctionProto::node_size() const {
  return node_.size();
}
inline ::onnx::NodeProto* FunctionProto::mutable_node(int index) {
  // @@protoc_insertion_point(field_mutable:onnx.FunctionProto.node)
  return node_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::NodeProto >*
FunctionProto::mutable_node() {
  // @@protoc_insertion_point(field_mutable_list:onnx.FunctionProto.node)
  return &node_;
}
inline const ::onnx::NodeProto& FunctionProto::node(int index) const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.node)
  return node_.Get(index);
}
inline ::onnx::NodeProto* FunctionProto::add_node() {
  // @@protoc_insertion_point(field_add:onnx.FunctionProto.node)
  return node_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::NodeProto >&
FunctionProto::node() const {
  // @@protoc_insertion_point(field_list:onnx.FunctionProto.node)
  return node_;
}

// optional string doc_string = 8;
inline bool FunctionProto::has_doc_string() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FunctionProto::clear_doc_string() {
  doc_string_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& FunctionProto::doc_string() const {
  // @@protoc_insertion_point(field_get:onnx.FunctionProto.doc_string)
  return doc_string_.GetNoArena();
}
inline void FunctionProto::set_doc_string(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.FunctionProto.doc_string)
}
inline void FunctionProto::set_doc_string(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.FunctionProto.doc_string)
}
inline void FunctionProto::set_doc_string(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.FunctionProto.doc_string)
}
inline void FunctionProto::set_doc_string(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.FunctionProto.doc_string)
}
inline std::string* FunctionProto::mutable_doc_string() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:onnx.FunctionProto.doc_string)
  return doc_string_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* FunctionProto::release_doc_string() {
  // @@protoc_insertion_point(field_release:onnx.FunctionProto.doc_string)
  if (!has_doc_string()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return doc_string_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void FunctionProto::set_allocated_doc_string(std::string* doc_string) {
  if (doc_string != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  doc_string_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), doc_string);
  // @@protoc_insertion_point(field_set_allocated:onnx.FunctionProto.doc_string)
}

// -------------------------------------------------------------------

// OperatorProto

// optional string op_type = 1;
inline bool OperatorProto::has_op_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OperatorProto::clear_op_type() {
  op_type_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& OperatorProto::op_type() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorProto.op_type)
  return op_type_.GetNoArena();
}
inline void OperatorProto::set_op_type(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  op_type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorProto.op_type)
}
inline void OperatorProto::set_op_type(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  op_type_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorProto.op_type)
}
inline void OperatorProto::set_op_type(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  op_type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorProto.op_type)
}
inline void OperatorProto::set_op_type(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  op_type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorProto.op_type)
}
inline std::string* OperatorProto::mutable_op_type() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorProto.op_type)
  return op_type_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorProto::release_op_type() {
  // @@protoc_insertion_point(field_release:onnx.OperatorProto.op_type)
  if (!has_op_type()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return op_type_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorProto::set_allocated_op_type(std::string* op_type) {
  if (op_type != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  op_type_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), op_type);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorProto.op_type)
}

// optional int64 since_version = 2;
inline bool OperatorProto::has_since_version() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void OperatorProto::clear_since_version() {
  since_version_ = PROTOBUF_LONGLONG(0);
  _has_bits_[0] &= ~0x00000004u;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 OperatorProto::since_version() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorProto.since_version)
  return since_version_;
}
inline void OperatorProto::set_since_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _has_bits_[0] |= 0x00000004u;
  since_version_ = value;
  // @@protoc_insertion_point(field_set:onnx.OperatorProto.since_version)
}

// optional .onnx.OperatorStatus status = 3;
inline bool OperatorProto::has_status() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void OperatorProto::clear_status() {
  status_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::onnx::OperatorStatus OperatorProto::status() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorProto.status)
  return static_cast< ::onnx::OperatorStatus >(status_);
}
inline void OperatorProto::set_status(::onnx::OperatorStatus value) {
  assert(::onnx::OperatorStatus_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  status_ = value;
  // @@protoc_insertion_point(field_set:onnx.OperatorProto.status)
}

// optional string doc_string = 10;
inline bool OperatorProto::has_doc_string() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void OperatorProto::clear_doc_string() {
  doc_string_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& OperatorProto::doc_string() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorProto.doc_string)
  return doc_string_.GetNoArena();
}
inline void OperatorProto::set_doc_string(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorProto.doc_string)
}
inline void OperatorProto::set_doc_string(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorProto.doc_string)
}
inline void OperatorProto::set_doc_string(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorProto.doc_string)
}
inline void OperatorProto::set_doc_string(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorProto.doc_string)
}
inline std::string* OperatorProto::mutable_doc_string() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorProto.doc_string)
  return doc_string_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorProto::release_doc_string() {
  // @@protoc_insertion_point(field_release:onnx.OperatorProto.doc_string)
  if (!has_doc_string()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return doc_string_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorProto::set_allocated_doc_string(std::string* doc_string) {
  if (doc_string != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  doc_string_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), doc_string);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorProto.doc_string)
}

// -------------------------------------------------------------------

// OperatorSetProto

// optional string magic = 1;
inline bool OperatorSetProto::has_magic() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OperatorSetProto::clear_magic() {
  magic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& OperatorSetProto::magic() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.magic)
  return magic_.GetNoArena();
}
inline void OperatorSetProto::set_magic(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  magic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.magic)
}
inline void OperatorSetProto::set_magic(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  magic_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorSetProto.magic)
}
inline void OperatorSetProto::set_magic(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  magic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorSetProto.magic)
}
inline void OperatorSetProto::set_magic(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000001u;
  magic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorSetProto.magic)
}
inline std::string* OperatorSetProto::mutable_magic() {
  _has_bits_[0] |= 0x00000001u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.magic)
  return magic_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorSetProto::release_magic() {
  // @@protoc_insertion_point(field_release:onnx.OperatorSetProto.magic)
  if (!has_magic()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return magic_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorSetProto::set_allocated_magic(std::string* magic) {
  if (magic != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  magic_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), magic);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorSetProto.magic)
}

// optional int64 ir_version = 2;
inline bool OperatorSetProto::has_ir_version() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void OperatorSetProto::clear_ir_version() {
  ir_version_ = PROTOBUF_LONGLONG(0);
  _has_bits_[0] &= ~0x00000020u;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 OperatorSetProto::ir_version() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.ir_version)
  return ir_version_;
}
inline void OperatorSetProto::set_ir_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _has_bits_[0] |= 0x00000020u;
  ir_version_ = value;
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.ir_version)
}

// optional string ir_version_prerelease = 3;
inline bool OperatorSetProto::has_ir_version_prerelease() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void OperatorSetProto::clear_ir_version_prerelease() {
  ir_version_prerelease_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& OperatorSetProto::ir_version_prerelease() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.ir_version_prerelease)
  return ir_version_prerelease_.GetNoArena();
}
inline void OperatorSetProto::set_ir_version_prerelease(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  ir_version_prerelease_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.ir_version_prerelease)
}
inline void OperatorSetProto::set_ir_version_prerelease(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  ir_version_prerelease_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorSetProto.ir_version_prerelease)
}
inline void OperatorSetProto::set_ir_version_prerelease(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  ir_version_prerelease_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorSetProto.ir_version_prerelease)
}
inline void OperatorSetProto::set_ir_version_prerelease(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000002u;
  ir_version_prerelease_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorSetProto.ir_version_prerelease)
}
inline std::string* OperatorSetProto::mutable_ir_version_prerelease() {
  _has_bits_[0] |= 0x00000002u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.ir_version_prerelease)
  return ir_version_prerelease_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorSetProto::release_ir_version_prerelease() {
  // @@protoc_insertion_point(field_release:onnx.OperatorSetProto.ir_version_prerelease)
  if (!has_ir_version_prerelease()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return ir_version_prerelease_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorSetProto::set_allocated_ir_version_prerelease(std::string* ir_version_prerelease) {
  if (ir_version_prerelease != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  ir_version_prerelease_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ir_version_prerelease);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorSetProto.ir_version_prerelease)
}

// optional string ir_build_metadata = 7;
inline bool OperatorSetProto::has_ir_build_metadata() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void OperatorSetProto::clear_ir_build_metadata() {
  ir_build_metadata_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000010u;
}
inline const std::string& OperatorSetProto::ir_build_metadata() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.ir_build_metadata)
  return ir_build_metadata_.GetNoArena();
}
inline void OperatorSetProto::set_ir_build_metadata(const std::string& value) {
  _has_bits_[0] |= 0x00000010u;
  ir_build_metadata_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.ir_build_metadata)
}
inline void OperatorSetProto::set_ir_build_metadata(std::string&& value) {
  _has_bits_[0] |= 0x00000010u;
  ir_build_metadata_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorSetProto.ir_build_metadata)
}
inline void OperatorSetProto::set_ir_build_metadata(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000010u;
  ir_build_metadata_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorSetProto.ir_build_metadata)
}
inline void OperatorSetProto::set_ir_build_metadata(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000010u;
  ir_build_metadata_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorSetProto.ir_build_metadata)
}
inline std::string* OperatorSetProto::mutable_ir_build_metadata() {
  _has_bits_[0] |= 0x00000010u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.ir_build_metadata)
  return ir_build_metadata_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorSetProto::release_ir_build_metadata() {
  // @@protoc_insertion_point(field_release:onnx.OperatorSetProto.ir_build_metadata)
  if (!has_ir_build_metadata()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000010u;
  return ir_build_metadata_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorSetProto::set_allocated_ir_build_metadata(std::string* ir_build_metadata) {
  if (ir_build_metadata != nullptr) {
    _has_bits_[0] |= 0x00000010u;
  } else {
    _has_bits_[0] &= ~0x00000010u;
  }
  ir_build_metadata_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ir_build_metadata);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorSetProto.ir_build_metadata)
}

// optional string domain = 4;
inline bool OperatorSetProto::has_domain() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void OperatorSetProto::clear_domain() {
  domain_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000004u;
}
inline const std::string& OperatorSetProto::domain() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.domain)
  return domain_.GetNoArena();
}
inline void OperatorSetProto::set_domain(const std::string& value) {
  _has_bits_[0] |= 0x00000004u;
  domain_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.domain)
}
inline void OperatorSetProto::set_domain(std::string&& value) {
  _has_bits_[0] |= 0x00000004u;
  domain_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorSetProto.domain)
}
inline void OperatorSetProto::set_domain(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000004u;
  domain_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorSetProto.domain)
}
inline void OperatorSetProto::set_domain(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000004u;
  domain_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorSetProto.domain)
}
inline std::string* OperatorSetProto::mutable_domain() {
  _has_bits_[0] |= 0x00000004u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.domain)
  return domain_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorSetProto::release_domain() {
  // @@protoc_insertion_point(field_release:onnx.OperatorSetProto.domain)
  if (!has_domain()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000004u;
  return domain_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorSetProto::set_allocated_domain(std::string* domain) {
  if (domain != nullptr) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  domain_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), domain);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorSetProto.domain)
}

// optional int64 opset_version = 5;
inline bool OperatorSetProto::has_opset_version() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void OperatorSetProto::clear_opset_version() {
  opset_version_ = PROTOBUF_LONGLONG(0);
  _has_bits_[0] &= ~0x00000040u;
}
inline ::PROTOBUF_NAMESPACE_ID::int64 OperatorSetProto::opset_version() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.opset_version)
  return opset_version_;
}
inline void OperatorSetProto::set_opset_version(::PROTOBUF_NAMESPACE_ID::int64 value) {
  _has_bits_[0] |= 0x00000040u;
  opset_version_ = value;
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.opset_version)
}

// optional string doc_string = 6;
inline bool OperatorSetProto::has_doc_string() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void OperatorSetProto::clear_doc_string() {
  doc_string_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _has_bits_[0] &= ~0x00000008u;
}
inline const std::string& OperatorSetProto::doc_string() const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.doc_string)
  return doc_string_.GetNoArena();
}
inline void OperatorSetProto::set_doc_string(const std::string& value) {
  _has_bits_[0] |= 0x00000008u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:onnx.OperatorSetProto.doc_string)
}
inline void OperatorSetProto::set_doc_string(std::string&& value) {
  _has_bits_[0] |= 0x00000008u;
  doc_string_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:onnx.OperatorSetProto.doc_string)
}
inline void OperatorSetProto::set_doc_string(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000008u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:onnx.OperatorSetProto.doc_string)
}
inline void OperatorSetProto::set_doc_string(const char* value, size_t size) {
  _has_bits_[0] |= 0x00000008u;
  doc_string_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:onnx.OperatorSetProto.doc_string)
}
inline std::string* OperatorSetProto::mutable_doc_string() {
  _has_bits_[0] |= 0x00000008u;
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.doc_string)
  return doc_string_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* OperatorSetProto::release_doc_string() {
  // @@protoc_insertion_point(field_release:onnx.OperatorSetProto.doc_string)
  if (!has_doc_string()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000008u;
  return doc_string_.ReleaseNonDefaultNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void OperatorSetProto::set_allocated_doc_string(std::string* doc_string) {
  if (doc_string != nullptr) {
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  doc_string_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), doc_string);
  // @@protoc_insertion_point(field_set_allocated:onnx.OperatorSetProto.doc_string)
}

// repeated .onnx.OperatorProto operator = 8;
inline int OperatorSetProto::operator__size() const {
  return operator__.size();
}
inline void OperatorSetProto::clear_operator_() {
  operator__.Clear();
}
inline ::onnx::OperatorProto* OperatorSetProto::mutable_operator_(int index) {
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.operator)
  return operator__.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::OperatorProto >*
OperatorSetProto::mutable_operator_() {
  // @@protoc_insertion_point(field_mutable_list:onnx.OperatorSetProto.operator)
  return &operator__;
}
inline const ::onnx::OperatorProto& OperatorSetProto::operator_(int index) const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.operator)
  return operator__.Get(index);
}
inline ::onnx::OperatorProto* OperatorSetProto::add_operator_() {
  // @@protoc_insertion_point(field_add:onnx.OperatorSetProto.operator)
  return operator__.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::OperatorProto >&
OperatorSetProto::operator_() const {
  // @@protoc_insertion_point(field_list:onnx.OperatorSetProto.operator)
  return operator__;
}

// repeated .onnx.FunctionProto functions = 9;
inline int OperatorSetProto::functions_size() const {
  return functions_.size();
}
inline void OperatorSetProto::clear_functions() {
  functions_.Clear();
}
inline ::onnx::FunctionProto* OperatorSetProto::mutable_functions(int index) {
  // @@protoc_insertion_point(field_mutable:onnx.OperatorSetProto.functions)
  return functions_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::FunctionProto >*
OperatorSetProto::mutable_functions() {
  // @@protoc_insertion_point(field_mutable_list:onnx.OperatorSetProto.functions)
  return &functions_;
}
inline const ::onnx::FunctionProto& OperatorSetProto::functions(int index) const {
  // @@protoc_insertion_point(field_get:onnx.OperatorSetProto.functions)
  return functions_.Get(index);
}
inline ::onnx::FunctionProto* OperatorSetProto::add_functions() {
  // @@protoc_insertion_point(field_add:onnx.OperatorSetProto.functions)
  return functions_.Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::onnx::FunctionProto >&
OperatorSetProto::functions() const {
  // @@protoc_insertion_point(field_list:onnx.OperatorSetProto.functions)
  return functions_;
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace onnx

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::onnx::OperatorStatus> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::onnx::OperatorStatus>() {
  return ::onnx::OperatorStatus_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_onnx_2fonnx_2doperators_2eproto
