// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/compiler/mlir/lite/quantization/quantization_info.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3015000
#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 3015008 < 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/metadata_lite.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/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[6]
    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_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
::PROTOBUF_NAMESPACE_ID::Metadata descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(int index);
namespace mlir {
namespace quant {
class QuantizationInfo;
struct QuantizationInfoDefaultTypeInternal;
extern QuantizationInfoDefaultTypeInternal _QuantizationInfo_default_instance_;
class QuantizationInfo_AffineParams;
struct QuantizationInfo_AffineParamsDefaultTypeInternal;
extern QuantizationInfo_AffineParamsDefaultTypeInternal _QuantizationInfo_AffineParams_default_instance_;
class QuantizationInfo_Metadata;
struct QuantizationInfo_MetadataDefaultTypeInternal;
extern QuantizationInfo_MetadataDefaultTypeInternal _QuantizationInfo_Metadata_default_instance_;
class QuantizationInfo_MinMax;
struct QuantizationInfo_MinMaxDefaultTypeInternal;
extern QuantizationInfo_MinMaxDefaultTypeInternal _QuantizationInfo_MinMax_default_instance_;
class QuantizationInfo_PerAxisParams;
struct QuantizationInfo_PerAxisParamsDefaultTypeInternal;
extern QuantizationInfo_PerAxisParamsDefaultTypeInternal _QuantizationInfo_PerAxisParams_default_instance_;
class QuantizationInfo_QuantParams;
struct QuantizationInfo_QuantParamsDefaultTypeInternal;
extern QuantizationInfo_QuantParamsDefaultTypeInternal _QuantizationInfo_QuantParams_default_instance_;
}  // namespace quant
}  // namespace mlir
PROTOBUF_NAMESPACE_OPEN
template<> ::mlir::quant::QuantizationInfo* Arena::CreateMaybeMessage<::mlir::quant::QuantizationInfo>(Arena*);
template<> ::mlir::quant::QuantizationInfo_AffineParams* Arena::CreateMaybeMessage<::mlir::quant::QuantizationInfo_AffineParams>(Arena*);
template<> ::mlir::quant::QuantizationInfo_Metadata* Arena::CreateMaybeMessage<::mlir::quant::QuantizationInfo_Metadata>(Arena*);
template<> ::mlir::quant::QuantizationInfo_MinMax* Arena::CreateMaybeMessage<::mlir::quant::QuantizationInfo_MinMax>(Arena*);
template<> ::mlir::quant::QuantizationInfo_PerAxisParams* Arena::CreateMaybeMessage<::mlir::quant::QuantizationInfo_PerAxisParams>(Arena*);
template<> ::mlir::quant::QuantizationInfo_QuantParams* Arena::CreateMaybeMessage<::mlir::quant::QuantizationInfo_QuantParams>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace mlir {
namespace quant {

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

class QuantizationInfo_MinMax PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mlir.quant.QuantizationInfo.MinMax) */ {
 public:
  inline QuantizationInfo_MinMax() : QuantizationInfo_MinMax(nullptr) {}
  virtual ~QuantizationInfo_MinMax();
  explicit constexpr QuantizationInfo_MinMax(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  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 QuantizationInfo_MinMax& default_instance() {
    return *internal_default_instance();
  }
  static inline const QuantizationInfo_MinMax* internal_default_instance() {
    return reinterpret_cast<const QuantizationInfo_MinMax*>(
               &_QuantizationInfo_MinMax_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(QuantizationInfo_MinMax& a, QuantizationInfo_MinMax& b) {
    a.Swap(&b);
  }
  inline void Swap(QuantizationInfo_MinMax* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QuantizationInfo_MinMax* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(QuantizationInfo_MinMax* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "mlir.quant.QuantizationInfo.MinMax";
  }
  protected:
  explicit QuantizationInfo_MinMax(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kMinFieldNumber = 1,
    kMaxFieldNumber = 2,
  };
  // float min = 1;
  void clear_min();
  float min() const;
  void set_min(float value);
  private:
  float _internal_min() const;
  void _internal_set_min(float value);
  public:

  // float max = 2;
  void clear_max();
  float max() const;
  void set_max(float value);
  private:
  float _internal_max() const;
  void _internal_set_max(float value);
  public:

  // @@protoc_insertion_point(class_scope:mlir.quant.QuantizationInfo.MinMax)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float min_;
  float max_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
};
// -------------------------------------------------------------------

class QuantizationInfo_AffineParams PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mlir.quant.QuantizationInfo.AffineParams) */ {
 public:
  inline QuantizationInfo_AffineParams() : QuantizationInfo_AffineParams(nullptr) {}
  virtual ~QuantizationInfo_AffineParams();
  explicit constexpr QuantizationInfo_AffineParams(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  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 QuantizationInfo_AffineParams& default_instance() {
    return *internal_default_instance();
  }
  static inline const QuantizationInfo_AffineParams* internal_default_instance() {
    return reinterpret_cast<const QuantizationInfo_AffineParams*>(
               &_QuantizationInfo_AffineParams_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(QuantizationInfo_AffineParams& a, QuantizationInfo_AffineParams& b) {
    a.Swap(&b);
  }
  inline void Swap(QuantizationInfo_AffineParams* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QuantizationInfo_AffineParams* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(QuantizationInfo_AffineParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "mlir.quant.QuantizationInfo.AffineParams";
  }
  protected:
  explicit QuantizationInfo_AffineParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kScaleFieldNumber = 1,
    kZeroPointFieldNumber = 2,
  };
  // float scale = 1;
  void clear_scale();
  float scale() const;
  void set_scale(float value);
  private:
  float _internal_scale() const;
  void _internal_set_scale(float value);
  public:

  // int32 zero_point = 2;
  void clear_zero_point();
  ::PROTOBUF_NAMESPACE_ID::int32 zero_point() const;
  void set_zero_point(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_zero_point() const;
  void _internal_set_zero_point(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:mlir.quant.QuantizationInfo.AffineParams)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float scale_;
  ::PROTOBUF_NAMESPACE_ID::int32 zero_point_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
};
// -------------------------------------------------------------------

class QuantizationInfo_PerAxisParams PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mlir.quant.QuantizationInfo.PerAxisParams) */ {
 public:
  inline QuantizationInfo_PerAxisParams() : QuantizationInfo_PerAxisParams(nullptr) {}
  virtual ~QuantizationInfo_PerAxisParams();
  explicit constexpr QuantizationInfo_PerAxisParams(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  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 QuantizationInfo_PerAxisParams& default_instance() {
    return *internal_default_instance();
  }
  enum ParamsOneofCase {
    kMinMax = 1,
    kAffineParams = 2,
    PARAMS_ONEOF_NOT_SET = 0,
  };

  static inline const QuantizationInfo_PerAxisParams* internal_default_instance() {
    return reinterpret_cast<const QuantizationInfo_PerAxisParams*>(
               &_QuantizationInfo_PerAxisParams_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(QuantizationInfo_PerAxisParams& a, QuantizationInfo_PerAxisParams& b) {
    a.Swap(&b);
  }
  inline void Swap(QuantizationInfo_PerAxisParams* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QuantizationInfo_PerAxisParams* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(QuantizationInfo_PerAxisParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "mlir.quant.QuantizationInfo.PerAxisParams";
  }
  protected:
  explicit QuantizationInfo_PerAxisParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kMinMaxFieldNumber = 1,
    kAffineParamsFieldNumber = 2,
  };
  // .mlir.quant.QuantizationInfo.MinMax min_max = 1;
  bool has_min_max() const;
  private:
  bool _internal_has_min_max() const;
  public:
  void clear_min_max();
  const ::mlir::quant::QuantizationInfo_MinMax& min_max() const;
  ::mlir::quant::QuantizationInfo_MinMax* release_min_max();
  ::mlir::quant::QuantizationInfo_MinMax* mutable_min_max();
  void set_allocated_min_max(::mlir::quant::QuantizationInfo_MinMax* min_max);
  private:
  const ::mlir::quant::QuantizationInfo_MinMax& _internal_min_max() const;
  ::mlir::quant::QuantizationInfo_MinMax* _internal_mutable_min_max();
  public:
  void unsafe_arena_set_allocated_min_max(
      ::mlir::quant::QuantizationInfo_MinMax* min_max);
  ::mlir::quant::QuantizationInfo_MinMax* unsafe_arena_release_min_max();

  // .mlir.quant.QuantizationInfo.AffineParams affine_params = 2;
  bool has_affine_params() const;
  private:
  bool _internal_has_affine_params() const;
  public:
  void clear_affine_params();
  const ::mlir::quant::QuantizationInfo_AffineParams& affine_params() const;
  ::mlir::quant::QuantizationInfo_AffineParams* release_affine_params();
  ::mlir::quant::QuantizationInfo_AffineParams* mutable_affine_params();
  void set_allocated_affine_params(::mlir::quant::QuantizationInfo_AffineParams* affine_params);
  private:
  const ::mlir::quant::QuantizationInfo_AffineParams& _internal_affine_params() const;
  ::mlir::quant::QuantizationInfo_AffineParams* _internal_mutable_affine_params();
  public:
  void unsafe_arena_set_allocated_affine_params(
      ::mlir::quant::QuantizationInfo_AffineParams* affine_params);
  ::mlir::quant::QuantizationInfo_AffineParams* unsafe_arena_release_affine_params();

  void clear_params_oneof();
  ParamsOneofCase params_oneof_case() const;
  // @@protoc_insertion_point(class_scope:mlir.quant.QuantizationInfo.PerAxisParams)
 private:
  class _Internal;
  void set_has_min_max();
  void set_has_affine_params();

  inline bool has_params_oneof() const;
  inline void clear_has_params_oneof();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union ParamsOneofUnion {
    constexpr ParamsOneofUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    ::mlir::quant::QuantizationInfo_MinMax* min_max_;
    ::mlir::quant::QuantizationInfo_AffineParams* affine_params_;
  } params_oneof_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
};
// -------------------------------------------------------------------

class QuantizationInfo_Metadata PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mlir.quant.QuantizationInfo.Metadata) */ {
 public:
  inline QuantizationInfo_Metadata() : QuantizationInfo_Metadata(nullptr) {}
  virtual ~QuantizationInfo_Metadata();
  explicit constexpr QuantizationInfo_Metadata(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  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 QuantizationInfo_Metadata& default_instance() {
    return *internal_default_instance();
  }
  static inline const QuantizationInfo_Metadata* internal_default_instance() {
    return reinterpret_cast<const QuantizationInfo_Metadata*>(
               &_QuantizationInfo_Metadata_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(QuantizationInfo_Metadata& a, QuantizationInfo_Metadata& b) {
    a.Swap(&b);
  }
  inline void Swap(QuantizationInfo_Metadata* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QuantizationInfo_Metadata* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(QuantizationInfo_Metadata* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "mlir.quant.QuantizationInfo.Metadata";
  }
  protected:
  explicit QuantizationInfo_Metadata(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kNumBitsFieldNumber = 1,
    kQuantizeAxisFieldNumber = 2,
    kRangeMinFieldNumber = 3,
    kRangeMaxFieldNumber = 4,
  };
  // int32 num_bits = 1;
  void clear_num_bits();
  ::PROTOBUF_NAMESPACE_ID::int32 num_bits() const;
  void set_num_bits(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_bits() const;
  void _internal_set_num_bits(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 quantize_axis = 2;
  void clear_quantize_axis();
  ::PROTOBUF_NAMESPACE_ID::int32 quantize_axis() const;
  void set_quantize_axis(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_quantize_axis() const;
  void _internal_set_quantize_axis(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 range_min = 3;
  void clear_range_min();
  ::PROTOBUF_NAMESPACE_ID::int32 range_min() const;
  void set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_range_min() const;
  void _internal_set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // int32 range_max = 4;
  void clear_range_max();
  ::PROTOBUF_NAMESPACE_ID::int32 range_max() const;
  void set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_range_max() const;
  void _internal_set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:mlir.quant.QuantizationInfo.Metadata)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int32 num_bits_;
  ::PROTOBUF_NAMESPACE_ID::int32 quantize_axis_;
  ::PROTOBUF_NAMESPACE_ID::int32 range_min_;
  ::PROTOBUF_NAMESPACE_ID::int32 range_max_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
};
// -------------------------------------------------------------------

class QuantizationInfo_QuantParams PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mlir.quant.QuantizationInfo.QuantParams) */ {
 public:
  inline QuantizationInfo_QuantParams() : QuantizationInfo_QuantParams(nullptr) {}
  virtual ~QuantizationInfo_QuantParams();
  explicit constexpr QuantizationInfo_QuantParams(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  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 QuantizationInfo_QuantParams& default_instance() {
    return *internal_default_instance();
  }
  enum NameOneofCase {
    kName = 1,
    kNameRegex = 2,
    NAME_ONEOF_NOT_SET = 0,
  };

  static inline const QuantizationInfo_QuantParams* internal_default_instance() {
    return reinterpret_cast<const QuantizationInfo_QuantParams*>(
               &_QuantizationInfo_QuantParams_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(QuantizationInfo_QuantParams& a, QuantizationInfo_QuantParams& b) {
    a.Swap(&b);
  }
  inline void Swap(QuantizationInfo_QuantParams* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QuantizationInfo_QuantParams* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(QuantizationInfo_QuantParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "mlir.quant.QuantizationInfo.QuantParams";
  }
  protected:
  explicit QuantizationInfo_QuantParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kParamsFieldNumber = 3,
    kMetaFieldNumber = 5,
    kNameFieldNumber = 1,
    kNameRegexFieldNumber = 2,
  };
  // repeated .mlir.quant.QuantizationInfo.PerAxisParams params = 3;
  int params_size() const;
  private:
  int _internal_params_size() const;
  public:
  void clear_params();
  ::mlir::quant::QuantizationInfo_PerAxisParams* mutable_params(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_PerAxisParams >*
      mutable_params();
  private:
  const ::mlir::quant::QuantizationInfo_PerAxisParams& _internal_params(int index) const;
  ::mlir::quant::QuantizationInfo_PerAxisParams* _internal_add_params();
  public:
  const ::mlir::quant::QuantizationInfo_PerAxisParams& params(int index) const;
  ::mlir::quant::QuantizationInfo_PerAxisParams* add_params();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_PerAxisParams >&
      params() const;

  // .mlir.quant.QuantizationInfo.Metadata meta = 5;
  bool has_meta() const;
  private:
  bool _internal_has_meta() const;
  public:
  void clear_meta();
  const ::mlir::quant::QuantizationInfo_Metadata& meta() const;
  ::mlir::quant::QuantizationInfo_Metadata* release_meta();
  ::mlir::quant::QuantizationInfo_Metadata* mutable_meta();
  void set_allocated_meta(::mlir::quant::QuantizationInfo_Metadata* meta);
  private:
  const ::mlir::quant::QuantizationInfo_Metadata& _internal_meta() const;
  ::mlir::quant::QuantizationInfo_Metadata* _internal_mutable_meta();
  public:
  void unsafe_arena_set_allocated_meta(
      ::mlir::quant::QuantizationInfo_Metadata* meta);
  ::mlir::quant::QuantizationInfo_Metadata* unsafe_arena_release_meta();

  // string name = 1;
  bool has_name() const;
  private:
  bool _internal_has_name() const;
  public:
  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);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string name_regex = 2;
  bool has_name_regex() const;
  private:
  bool _internal_has_name_regex() const;
  public:
  void clear_name_regex();
  const std::string& name_regex() const;
  void set_name_regex(const std::string& value);
  void set_name_regex(std::string&& value);
  void set_name_regex(const char* value);
  void set_name_regex(const char* value, size_t size);
  std::string* mutable_name_regex();
  std::string* release_name_regex();
  void set_allocated_name_regex(std::string* name_regex);
  private:
  const std::string& _internal_name_regex() const;
  void _internal_set_name_regex(const std::string& value);
  std::string* _internal_mutable_name_regex();
  public:

  void clear_name_oneof();
  NameOneofCase name_oneof_case() const;
  // @@protoc_insertion_point(class_scope:mlir.quant.QuantizationInfo.QuantParams)
 private:
  class _Internal;
  void set_has_name();
  void set_has_name_regex();

  inline bool has_name_oneof() const;
  inline void clear_has_name_oneof();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_PerAxisParams > params_;
  ::mlir::quant::QuantizationInfo_Metadata* meta_;
  union NameOneofUnion {
    constexpr NameOneofUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_regex_;
  } name_oneof_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
};
// -------------------------------------------------------------------

class QuantizationInfo PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mlir.quant.QuantizationInfo) */ {
 public:
  inline QuantizationInfo() : QuantizationInfo(nullptr) {}
  virtual ~QuantizationInfo();
  explicit constexpr QuantizationInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  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 QuantizationInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const QuantizationInfo* internal_default_instance() {
    return reinterpret_cast<const QuantizationInfo*>(
               &_QuantizationInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(QuantizationInfo& a, QuantizationInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(QuantizationInfo* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(QuantizationInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(QuantizationInfo* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "mlir.quant.QuantizationInfo";
  }
  protected:
  explicit QuantizationInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

  typedef QuantizationInfo_MinMax MinMax;
  typedef QuantizationInfo_AffineParams AffineParams;
  typedef QuantizationInfo_PerAxisParams PerAxisParams;
  typedef QuantizationInfo_Metadata Metadata;
  typedef QuantizationInfo_QuantParams QuantParams;

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

  enum : int {
    kEntriesFieldNumber = 1,
  };
  // repeated .mlir.quant.QuantizationInfo.QuantParams entries = 1;
  int entries_size() const;
  private:
  int _internal_entries_size() const;
  public:
  void clear_entries();
  ::mlir::quant::QuantizationInfo_QuantParams* mutable_entries(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_QuantParams >*
      mutable_entries();
  private:
  const ::mlir::quant::QuantizationInfo_QuantParams& _internal_entries(int index) const;
  ::mlir::quant::QuantizationInfo_QuantParams* _internal_add_entries();
  public:
  const ::mlir::quant::QuantizationInfo_QuantParams& entries(int index) const;
  ::mlir::quant::QuantizationInfo_QuantParams* add_entries();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_QuantParams >&
      entries() const;

  // @@protoc_insertion_point(class_scope:mlir.quant.QuantizationInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_QuantParams > entries_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_tensorflow_2fcompiler_2fmlir_2flite_2fquantization_2fquantization_5finfo_2eproto;
};
// ===================================================================


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

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

// float min = 1;
inline void QuantizationInfo_MinMax::clear_min() {
  min_ = 0;
}
inline float QuantizationInfo_MinMax::_internal_min() const {
  return min_;
}
inline float QuantizationInfo_MinMax::min() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.MinMax.min)
  return _internal_min();
}
inline void QuantizationInfo_MinMax::_internal_set_min(float value) {
  
  min_ = value;
}
inline void QuantizationInfo_MinMax::set_min(float value) {
  _internal_set_min(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.MinMax.min)
}

// float max = 2;
inline void QuantizationInfo_MinMax::clear_max() {
  max_ = 0;
}
inline float QuantizationInfo_MinMax::_internal_max() const {
  return max_;
}
inline float QuantizationInfo_MinMax::max() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.MinMax.max)
  return _internal_max();
}
inline void QuantizationInfo_MinMax::_internal_set_max(float value) {
  
  max_ = value;
}
inline void QuantizationInfo_MinMax::set_max(float value) {
  _internal_set_max(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.MinMax.max)
}

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

// QuantizationInfo_AffineParams

// float scale = 1;
inline void QuantizationInfo_AffineParams::clear_scale() {
  scale_ = 0;
}
inline float QuantizationInfo_AffineParams::_internal_scale() const {
  return scale_;
}
inline float QuantizationInfo_AffineParams::scale() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.AffineParams.scale)
  return _internal_scale();
}
inline void QuantizationInfo_AffineParams::_internal_set_scale(float value) {
  
  scale_ = value;
}
inline void QuantizationInfo_AffineParams::set_scale(float value) {
  _internal_set_scale(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.AffineParams.scale)
}

// int32 zero_point = 2;
inline void QuantizationInfo_AffineParams::clear_zero_point() {
  zero_point_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_AffineParams::_internal_zero_point() const {
  return zero_point_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_AffineParams::zero_point() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.AffineParams.zero_point)
  return _internal_zero_point();
}
inline void QuantizationInfo_AffineParams::_internal_set_zero_point(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  zero_point_ = value;
}
inline void QuantizationInfo_AffineParams::set_zero_point(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_zero_point(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.AffineParams.zero_point)
}

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

// QuantizationInfo_PerAxisParams

// .mlir.quant.QuantizationInfo.MinMax min_max = 1;
inline bool QuantizationInfo_PerAxisParams::_internal_has_min_max() const {
  return params_oneof_case() == kMinMax;
}
inline bool QuantizationInfo_PerAxisParams::has_min_max() const {
  return _internal_has_min_max();
}
inline void QuantizationInfo_PerAxisParams::set_has_min_max() {
  _oneof_case_[0] = kMinMax;
}
inline void QuantizationInfo_PerAxisParams::clear_min_max() {
  if (_internal_has_min_max()) {
    if (GetArena() == nullptr) {
      delete params_oneof_.min_max_;
    }
    clear_has_params_oneof();
  }
}
inline ::mlir::quant::QuantizationInfo_MinMax* QuantizationInfo_PerAxisParams::release_min_max() {
  // @@protoc_insertion_point(field_release:mlir.quant.QuantizationInfo.PerAxisParams.min_max)
  if (_internal_has_min_max()) {
    clear_has_params_oneof();
      ::mlir::quant::QuantizationInfo_MinMax* temp = params_oneof_.min_max_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    params_oneof_.min_max_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::mlir::quant::QuantizationInfo_MinMax& QuantizationInfo_PerAxisParams::_internal_min_max() const {
  return _internal_has_min_max()
      ? *params_oneof_.min_max_
      : reinterpret_cast< ::mlir::quant::QuantizationInfo_MinMax&>(::mlir::quant::_QuantizationInfo_MinMax_default_instance_);
}
inline const ::mlir::quant::QuantizationInfo_MinMax& QuantizationInfo_PerAxisParams::min_max() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.PerAxisParams.min_max)
  return _internal_min_max();
}
inline ::mlir::quant::QuantizationInfo_MinMax* QuantizationInfo_PerAxisParams::unsafe_arena_release_min_max() {
  // @@protoc_insertion_point(field_unsafe_arena_release:mlir.quant.QuantizationInfo.PerAxisParams.min_max)
  if (_internal_has_min_max()) {
    clear_has_params_oneof();
    ::mlir::quant::QuantizationInfo_MinMax* temp = params_oneof_.min_max_;
    params_oneof_.min_max_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void QuantizationInfo_PerAxisParams::unsafe_arena_set_allocated_min_max(::mlir::quant::QuantizationInfo_MinMax* min_max) {
  clear_params_oneof();
  if (min_max) {
    set_has_min_max();
    params_oneof_.min_max_ = min_max;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mlir.quant.QuantizationInfo.PerAxisParams.min_max)
}
inline ::mlir::quant::QuantizationInfo_MinMax* QuantizationInfo_PerAxisParams::_internal_mutable_min_max() {
  if (!_internal_has_min_max()) {
    clear_params_oneof();
    set_has_min_max();
    params_oneof_.min_max_ = CreateMaybeMessage< ::mlir::quant::QuantizationInfo_MinMax >(GetArena());
  }
  return params_oneof_.min_max_;
}
inline ::mlir::quant::QuantizationInfo_MinMax* QuantizationInfo_PerAxisParams::mutable_min_max() {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.PerAxisParams.min_max)
  return _internal_mutable_min_max();
}

// .mlir.quant.QuantizationInfo.AffineParams affine_params = 2;
inline bool QuantizationInfo_PerAxisParams::_internal_has_affine_params() const {
  return params_oneof_case() == kAffineParams;
}
inline bool QuantizationInfo_PerAxisParams::has_affine_params() const {
  return _internal_has_affine_params();
}
inline void QuantizationInfo_PerAxisParams::set_has_affine_params() {
  _oneof_case_[0] = kAffineParams;
}
inline void QuantizationInfo_PerAxisParams::clear_affine_params() {
  if (_internal_has_affine_params()) {
    if (GetArena() == nullptr) {
      delete params_oneof_.affine_params_;
    }
    clear_has_params_oneof();
  }
}
inline ::mlir::quant::QuantizationInfo_AffineParams* QuantizationInfo_PerAxisParams::release_affine_params() {
  // @@protoc_insertion_point(field_release:mlir.quant.QuantizationInfo.PerAxisParams.affine_params)
  if (_internal_has_affine_params()) {
    clear_has_params_oneof();
      ::mlir::quant::QuantizationInfo_AffineParams* temp = params_oneof_.affine_params_;
    if (GetArena() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    params_oneof_.affine_params_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::mlir::quant::QuantizationInfo_AffineParams& QuantizationInfo_PerAxisParams::_internal_affine_params() const {
  return _internal_has_affine_params()
      ? *params_oneof_.affine_params_
      : reinterpret_cast< ::mlir::quant::QuantizationInfo_AffineParams&>(::mlir::quant::_QuantizationInfo_AffineParams_default_instance_);
}
inline const ::mlir::quant::QuantizationInfo_AffineParams& QuantizationInfo_PerAxisParams::affine_params() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.PerAxisParams.affine_params)
  return _internal_affine_params();
}
inline ::mlir::quant::QuantizationInfo_AffineParams* QuantizationInfo_PerAxisParams::unsafe_arena_release_affine_params() {
  // @@protoc_insertion_point(field_unsafe_arena_release:mlir.quant.QuantizationInfo.PerAxisParams.affine_params)
  if (_internal_has_affine_params()) {
    clear_has_params_oneof();
    ::mlir::quant::QuantizationInfo_AffineParams* temp = params_oneof_.affine_params_;
    params_oneof_.affine_params_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void QuantizationInfo_PerAxisParams::unsafe_arena_set_allocated_affine_params(::mlir::quant::QuantizationInfo_AffineParams* affine_params) {
  clear_params_oneof();
  if (affine_params) {
    set_has_affine_params();
    params_oneof_.affine_params_ = affine_params;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mlir.quant.QuantizationInfo.PerAxisParams.affine_params)
}
inline ::mlir::quant::QuantizationInfo_AffineParams* QuantizationInfo_PerAxisParams::_internal_mutable_affine_params() {
  if (!_internal_has_affine_params()) {
    clear_params_oneof();
    set_has_affine_params();
    params_oneof_.affine_params_ = CreateMaybeMessage< ::mlir::quant::QuantizationInfo_AffineParams >(GetArena());
  }
  return params_oneof_.affine_params_;
}
inline ::mlir::quant::QuantizationInfo_AffineParams* QuantizationInfo_PerAxisParams::mutable_affine_params() {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.PerAxisParams.affine_params)
  return _internal_mutable_affine_params();
}

inline bool QuantizationInfo_PerAxisParams::has_params_oneof() const {
  return params_oneof_case() != PARAMS_ONEOF_NOT_SET;
}
inline void QuantizationInfo_PerAxisParams::clear_has_params_oneof() {
  _oneof_case_[0] = PARAMS_ONEOF_NOT_SET;
}
inline QuantizationInfo_PerAxisParams::ParamsOneofCase QuantizationInfo_PerAxisParams::params_oneof_case() const {
  return QuantizationInfo_PerAxisParams::ParamsOneofCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// QuantizationInfo_Metadata

// int32 num_bits = 1;
inline void QuantizationInfo_Metadata::clear_num_bits() {
  num_bits_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::_internal_num_bits() const {
  return num_bits_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::num_bits() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.Metadata.num_bits)
  return _internal_num_bits();
}
inline void QuantizationInfo_Metadata::_internal_set_num_bits(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  num_bits_ = value;
}
inline void QuantizationInfo_Metadata::set_num_bits(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_num_bits(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.Metadata.num_bits)
}

// int32 quantize_axis = 2;
inline void QuantizationInfo_Metadata::clear_quantize_axis() {
  quantize_axis_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::_internal_quantize_axis() const {
  return quantize_axis_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::quantize_axis() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.Metadata.quantize_axis)
  return _internal_quantize_axis();
}
inline void QuantizationInfo_Metadata::_internal_set_quantize_axis(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  quantize_axis_ = value;
}
inline void QuantizationInfo_Metadata::set_quantize_axis(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_quantize_axis(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.Metadata.quantize_axis)
}

// int32 range_min = 3;
inline void QuantizationInfo_Metadata::clear_range_min() {
  range_min_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::_internal_range_min() const {
  return range_min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::range_min() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.Metadata.range_min)
  return _internal_range_min();
}
inline void QuantizationInfo_Metadata::_internal_set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  range_min_ = value;
}
inline void QuantizationInfo_Metadata::set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_range_min(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.Metadata.range_min)
}

// int32 range_max = 4;
inline void QuantizationInfo_Metadata::clear_range_max() {
  range_max_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::_internal_range_max() const {
  return range_max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 QuantizationInfo_Metadata::range_max() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.Metadata.range_max)
  return _internal_range_max();
}
inline void QuantizationInfo_Metadata::_internal_set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  range_max_ = value;
}
inline void QuantizationInfo_Metadata::set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_range_max(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.Metadata.range_max)
}

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

// QuantizationInfo_QuantParams

// string name = 1;
inline bool QuantizationInfo_QuantParams::_internal_has_name() const {
  return name_oneof_case() == kName;
}
inline bool QuantizationInfo_QuantParams::has_name() const {
  return _internal_has_name();
}
inline void QuantizationInfo_QuantParams::set_has_name() {
  _oneof_case_[0] = kName;
}
inline void QuantizationInfo_QuantParams::clear_name() {
  if (_internal_has_name()) {
    name_oneof_.name_.Destroy(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
    clear_has_name_oneof();
  }
}
inline const std::string& QuantizationInfo_QuantParams::name() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.QuantParams.name)
  return _internal_name();
}
inline void QuantizationInfo_QuantParams::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.QuantParams.name)
}
inline std::string* QuantizationInfo_QuantParams::mutable_name() {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.QuantParams.name)
  return _internal_mutable_name();
}
inline const std::string& QuantizationInfo_QuantParams::_internal_name() const {
  if (_internal_has_name()) {
    return name_oneof_.name_.Get();
  }
  return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void QuantizationInfo_QuantParams::_internal_set_name(const std::string& value) {
  if (!_internal_has_name()) {
    clear_name_oneof();
    set_has_name();
    name_oneof_.name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
}
inline void QuantizationInfo_QuantParams::set_name(std::string&& value) {
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.QuantParams.name)
  if (!_internal_has_name()) {
    clear_name_oneof();
    set_has_name();
    name_oneof_.name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_.Set(
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:mlir.quant.QuantizationInfo.QuantParams.name)
}
inline void QuantizationInfo_QuantParams::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_name()) {
    clear_name_oneof();
    set_has_name();
    name_oneof_.name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{},
      ::std::string(value), GetArena());
  // @@protoc_insertion_point(field_set_char:mlir.quant.QuantizationInfo.QuantParams.name)
}
inline void QuantizationInfo_QuantParams::set_name(const char* value,
                             size_t size) {
  if (!_internal_has_name()) {
    clear_name_oneof();
    set_has_name();
    name_oneof_.name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_.Set(
      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArena());
  // @@protoc_insertion_point(field_set_pointer:mlir.quant.QuantizationInfo.QuantParams.name)
}
inline std::string* QuantizationInfo_QuantParams::_internal_mutable_name() {
  if (!_internal_has_name()) {
    clear_name_oneof();
    set_has_name();
    name_oneof_.name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return name_oneof_.name_.Mutable(
      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
}
inline std::string* QuantizationInfo_QuantParams::release_name() {
  // @@protoc_insertion_point(field_release:mlir.quant.QuantizationInfo.QuantParams.name)
  if (_internal_has_name()) {
    clear_has_name_oneof();
    return name_oneof_.name_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void QuantizationInfo_QuantParams::set_allocated_name(std::string* name) {
  if (has_name_oneof()) {
    clear_name_oneof();
  }
  if (name != nullptr) {
    set_has_name();
    name_oneof_.name_.UnsafeSetDefault(name);
    ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena();
    if (arena != nullptr) {
      arena->Own(name);
    }
  }
  // @@protoc_insertion_point(field_set_allocated:mlir.quant.QuantizationInfo.QuantParams.name)
}

// string name_regex = 2;
inline bool QuantizationInfo_QuantParams::_internal_has_name_regex() const {
  return name_oneof_case() == kNameRegex;
}
inline bool QuantizationInfo_QuantParams::has_name_regex() const {
  return _internal_has_name_regex();
}
inline void QuantizationInfo_QuantParams::set_has_name_regex() {
  _oneof_case_[0] = kNameRegex;
}
inline void QuantizationInfo_QuantParams::clear_name_regex() {
  if (_internal_has_name_regex()) {
    name_oneof_.name_regex_.Destroy(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
    clear_has_name_oneof();
  }
}
inline const std::string& QuantizationInfo_QuantParams::name_regex() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.QuantParams.name_regex)
  return _internal_name_regex();
}
inline void QuantizationInfo_QuantParams::set_name_regex(const std::string& value) {
  _internal_set_name_regex(value);
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.QuantParams.name_regex)
}
inline std::string* QuantizationInfo_QuantParams::mutable_name_regex() {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.QuantParams.name_regex)
  return _internal_mutable_name_regex();
}
inline const std::string& QuantizationInfo_QuantParams::_internal_name_regex() const {
  if (_internal_has_name_regex()) {
    return name_oneof_.name_regex_.Get();
  }
  return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void QuantizationInfo_QuantParams::_internal_set_name_regex(const std::string& value) {
  if (!_internal_has_name_regex()) {
    clear_name_oneof();
    set_has_name_regex();
    name_oneof_.name_regex_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_regex_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
}
inline void QuantizationInfo_QuantParams::set_name_regex(std::string&& value) {
  // @@protoc_insertion_point(field_set:mlir.quant.QuantizationInfo.QuantParams.name_regex)
  if (!_internal_has_name_regex()) {
    clear_name_oneof();
    set_has_name_regex();
    name_oneof_.name_regex_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_regex_.Set(
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:mlir.quant.QuantizationInfo.QuantParams.name_regex)
}
inline void QuantizationInfo_QuantParams::set_name_regex(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_name_regex()) {
    clear_name_oneof();
    set_has_name_regex();
    name_oneof_.name_regex_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_regex_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{},
      ::std::string(value), GetArena());
  // @@protoc_insertion_point(field_set_char:mlir.quant.QuantizationInfo.QuantParams.name_regex)
}
inline void QuantizationInfo_QuantParams::set_name_regex(const char* value,
                             size_t size) {
  if (!_internal_has_name_regex()) {
    clear_name_oneof();
    set_has_name_regex();
    name_oneof_.name_regex_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  name_oneof_.name_regex_.Set(
      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArena());
  // @@protoc_insertion_point(field_set_pointer:mlir.quant.QuantizationInfo.QuantParams.name_regex)
}
inline std::string* QuantizationInfo_QuantParams::_internal_mutable_name_regex() {
  if (!_internal_has_name_regex()) {
    clear_name_oneof();
    set_has_name_regex();
    name_oneof_.name_regex_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return name_oneof_.name_regex_.Mutable(
      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
}
inline std::string* QuantizationInfo_QuantParams::release_name_regex() {
  // @@protoc_insertion_point(field_release:mlir.quant.QuantizationInfo.QuantParams.name_regex)
  if (_internal_has_name_regex()) {
    clear_has_name_oneof();
    return name_oneof_.name_regex_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  } else {
    return nullptr;
  }
}
inline void QuantizationInfo_QuantParams::set_allocated_name_regex(std::string* name_regex) {
  if (has_name_oneof()) {
    clear_name_oneof();
  }
  if (name_regex != nullptr) {
    set_has_name_regex();
    name_oneof_.name_regex_.UnsafeSetDefault(name_regex);
    ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena();
    if (arena != nullptr) {
      arena->Own(name_regex);
    }
  }
  // @@protoc_insertion_point(field_set_allocated:mlir.quant.QuantizationInfo.QuantParams.name_regex)
}

// repeated .mlir.quant.QuantizationInfo.PerAxisParams params = 3;
inline int QuantizationInfo_QuantParams::_internal_params_size() const {
  return params_.size();
}
inline int QuantizationInfo_QuantParams::params_size() const {
  return _internal_params_size();
}
inline void QuantizationInfo_QuantParams::clear_params() {
  params_.Clear();
}
inline ::mlir::quant::QuantizationInfo_PerAxisParams* QuantizationInfo_QuantParams::mutable_params(int index) {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.QuantParams.params)
  return params_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_PerAxisParams >*
QuantizationInfo_QuantParams::mutable_params() {
  // @@protoc_insertion_point(field_mutable_list:mlir.quant.QuantizationInfo.QuantParams.params)
  return &params_;
}
inline const ::mlir::quant::QuantizationInfo_PerAxisParams& QuantizationInfo_QuantParams::_internal_params(int index) const {
  return params_.Get(index);
}
inline const ::mlir::quant::QuantizationInfo_PerAxisParams& QuantizationInfo_QuantParams::params(int index) const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.QuantParams.params)
  return _internal_params(index);
}
inline ::mlir::quant::QuantizationInfo_PerAxisParams* QuantizationInfo_QuantParams::_internal_add_params() {
  return params_.Add();
}
inline ::mlir::quant::QuantizationInfo_PerAxisParams* QuantizationInfo_QuantParams::add_params() {
  // @@protoc_insertion_point(field_add:mlir.quant.QuantizationInfo.QuantParams.params)
  return _internal_add_params();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_PerAxisParams >&
QuantizationInfo_QuantParams::params() const {
  // @@protoc_insertion_point(field_list:mlir.quant.QuantizationInfo.QuantParams.params)
  return params_;
}

// .mlir.quant.QuantizationInfo.Metadata meta = 5;
inline bool QuantizationInfo_QuantParams::_internal_has_meta() const {
  return this != internal_default_instance() && meta_ != nullptr;
}
inline bool QuantizationInfo_QuantParams::has_meta() const {
  return _internal_has_meta();
}
inline void QuantizationInfo_QuantParams::clear_meta() {
  if (GetArena() == nullptr && meta_ != nullptr) {
    delete meta_;
  }
  meta_ = nullptr;
}
inline const ::mlir::quant::QuantizationInfo_Metadata& QuantizationInfo_QuantParams::_internal_meta() const {
  const ::mlir::quant::QuantizationInfo_Metadata* p = meta_;
  return p != nullptr ? *p : reinterpret_cast<const ::mlir::quant::QuantizationInfo_Metadata&>(
      ::mlir::quant::_QuantizationInfo_Metadata_default_instance_);
}
inline const ::mlir::quant::QuantizationInfo_Metadata& QuantizationInfo_QuantParams::meta() const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.QuantParams.meta)
  return _internal_meta();
}
inline void QuantizationInfo_QuantParams::unsafe_arena_set_allocated_meta(
    ::mlir::quant::QuantizationInfo_Metadata* meta) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(meta_);
  }
  meta_ = meta;
  if (meta) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mlir.quant.QuantizationInfo.QuantParams.meta)
}
inline ::mlir::quant::QuantizationInfo_Metadata* QuantizationInfo_QuantParams::release_meta() {
  
  ::mlir::quant::QuantizationInfo_Metadata* temp = meta_;
  meta_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::mlir::quant::QuantizationInfo_Metadata* QuantizationInfo_QuantParams::unsafe_arena_release_meta() {
  // @@protoc_insertion_point(field_release:mlir.quant.QuantizationInfo.QuantParams.meta)
  
  ::mlir::quant::QuantizationInfo_Metadata* temp = meta_;
  meta_ = nullptr;
  return temp;
}
inline ::mlir::quant::QuantizationInfo_Metadata* QuantizationInfo_QuantParams::_internal_mutable_meta() {
  
  if (meta_ == nullptr) {
    auto* p = CreateMaybeMessage<::mlir::quant::QuantizationInfo_Metadata>(GetArena());
    meta_ = p;
  }
  return meta_;
}
inline ::mlir::quant::QuantizationInfo_Metadata* QuantizationInfo_QuantParams::mutable_meta() {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.QuantParams.meta)
  return _internal_mutable_meta();
}
inline void QuantizationInfo_QuantParams::set_allocated_meta(::mlir::quant::QuantizationInfo_Metadata* meta) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete meta_;
  }
  if (meta) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(meta);
    if (message_arena != submessage_arena) {
      meta = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, meta, submessage_arena);
    }
    
  } else {
    
  }
  meta_ = meta;
  // @@protoc_insertion_point(field_set_allocated:mlir.quant.QuantizationInfo.QuantParams.meta)
}

inline bool QuantizationInfo_QuantParams::has_name_oneof() const {
  return name_oneof_case() != NAME_ONEOF_NOT_SET;
}
inline void QuantizationInfo_QuantParams::clear_has_name_oneof() {
  _oneof_case_[0] = NAME_ONEOF_NOT_SET;
}
inline QuantizationInfo_QuantParams::NameOneofCase QuantizationInfo_QuantParams::name_oneof_case() const {
  return QuantizationInfo_QuantParams::NameOneofCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// QuantizationInfo

// repeated .mlir.quant.QuantizationInfo.QuantParams entries = 1;
inline int QuantizationInfo::_internal_entries_size() const {
  return entries_.size();
}
inline int QuantizationInfo::entries_size() const {
  return _internal_entries_size();
}
inline void QuantizationInfo::clear_entries() {
  entries_.Clear();
}
inline ::mlir::quant::QuantizationInfo_QuantParams* QuantizationInfo::mutable_entries(int index) {
  // @@protoc_insertion_point(field_mutable:mlir.quant.QuantizationInfo.entries)
  return entries_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_QuantParams >*
QuantizationInfo::mutable_entries() {
  // @@protoc_insertion_point(field_mutable_list:mlir.quant.QuantizationInfo.entries)
  return &entries_;
}
inline const ::mlir::quant::QuantizationInfo_QuantParams& QuantizationInfo::_internal_entries(int index) const {
  return entries_.Get(index);
}
inline const ::mlir::quant::QuantizationInfo_QuantParams& QuantizationInfo::entries(int index) const {
  // @@protoc_insertion_point(field_get:mlir.quant.QuantizationInfo.entries)
  return _internal_entries(index);
}
inline ::mlir::quant::QuantizationInfo_QuantParams* QuantizationInfo::_internal_add_entries() {
  return entries_.Add();
}
inline ::mlir::quant::QuantizationInfo_QuantParams* QuantizationInfo::add_entries() {
  // @@protoc_insertion_point(field_add:mlir.quant.QuantizationInfo.entries)
  return _internal_add_entries();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mlir::quant::QuantizationInfo_QuantParams >&
QuantizationInfo::entries() const {
  // @@protoc_insertion_point(field_list:mlir.quant.QuantizationInfo.entries)
  return entries_;
}

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace quant
}  // namespace mlir

// @@protoc_insertion_point(global_scope)

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