// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: VisionFeaturePrint.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_VisionFeaturePrint_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_VisionFeaturePrint_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3019000
#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 3019000 < 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/message_lite.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_util.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_VisionFeaturePrint_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_VisionFeaturePrint_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[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 uint32_t offsets[];
};
namespace CoreML {
namespace Specification {
namespace CoreMLModels {
class VisionFeaturePrint;
struct VisionFeaturePrintDefaultTypeInternal;
extern VisionFeaturePrintDefaultTypeInternal _VisionFeaturePrint_default_instance_;
class VisionFeaturePrint_Objects;
struct VisionFeaturePrint_ObjectsDefaultTypeInternal;
extern VisionFeaturePrint_ObjectsDefaultTypeInternal _VisionFeaturePrint_Objects_default_instance_;
class VisionFeaturePrint_Scene;
struct VisionFeaturePrint_SceneDefaultTypeInternal;
extern VisionFeaturePrint_SceneDefaultTypeInternal _VisionFeaturePrint_Scene_default_instance_;
}  // namespace CoreMLModels
}  // namespace Specification
}  // namespace CoreML
PROTOBUF_NAMESPACE_OPEN
template<> ::CoreML::Specification::CoreMLModels::VisionFeaturePrint* Arena::CreateMaybeMessage<::CoreML::Specification::CoreMLModels::VisionFeaturePrint>(Arena*);
template<> ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* Arena::CreateMaybeMessage<::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects>(Arena*);
template<> ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* Arena::CreateMaybeMessage<::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace CoreML {
namespace Specification {
namespace CoreMLModels {

enum VisionFeaturePrint_Scene_SceneVersion : int {
  VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_INVALID = 0,
  VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_1 = 1,
  VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_2 = 2,
  VisionFeaturePrint_Scene_SceneVersion_VisionFeaturePrint_Scene_SceneVersion_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  VisionFeaturePrint_Scene_SceneVersion_VisionFeaturePrint_Scene_SceneVersion_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool VisionFeaturePrint_Scene_SceneVersion_IsValid(int value);
constexpr VisionFeaturePrint_Scene_SceneVersion VisionFeaturePrint_Scene_SceneVersion_SceneVersion_MIN = VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_INVALID;
constexpr VisionFeaturePrint_Scene_SceneVersion VisionFeaturePrint_Scene_SceneVersion_SceneVersion_MAX = VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_2;
constexpr int VisionFeaturePrint_Scene_SceneVersion_SceneVersion_ARRAYSIZE = VisionFeaturePrint_Scene_SceneVersion_SceneVersion_MAX + 1;

const std::string& VisionFeaturePrint_Scene_SceneVersion_Name(VisionFeaturePrint_Scene_SceneVersion value);
template<typename T>
inline const std::string& VisionFeaturePrint_Scene_SceneVersion_Name(T enum_t_value) {
  static_assert(::std::is_same<T, VisionFeaturePrint_Scene_SceneVersion>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function VisionFeaturePrint_Scene_SceneVersion_Name.");
  return VisionFeaturePrint_Scene_SceneVersion_Name(static_cast<VisionFeaturePrint_Scene_SceneVersion>(enum_t_value));
}
bool VisionFeaturePrint_Scene_SceneVersion_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, VisionFeaturePrint_Scene_SceneVersion* value);
enum VisionFeaturePrint_Objects_ObjectsVersion : int {
  VisionFeaturePrint_Objects_ObjectsVersion_OBJECTS_VERSION_INVALID = 0,
  VisionFeaturePrint_Objects_ObjectsVersion_OBJECTS_VERSION_1 = 1,
  VisionFeaturePrint_Objects_ObjectsVersion_VisionFeaturePrint_Objects_ObjectsVersion_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  VisionFeaturePrint_Objects_ObjectsVersion_VisionFeaturePrint_Objects_ObjectsVersion_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool VisionFeaturePrint_Objects_ObjectsVersion_IsValid(int value);
constexpr VisionFeaturePrint_Objects_ObjectsVersion VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_MIN = VisionFeaturePrint_Objects_ObjectsVersion_OBJECTS_VERSION_INVALID;
constexpr VisionFeaturePrint_Objects_ObjectsVersion VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_MAX = VisionFeaturePrint_Objects_ObjectsVersion_OBJECTS_VERSION_1;
constexpr int VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_ARRAYSIZE = VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_MAX + 1;

const std::string& VisionFeaturePrint_Objects_ObjectsVersion_Name(VisionFeaturePrint_Objects_ObjectsVersion value);
template<typename T>
inline const std::string& VisionFeaturePrint_Objects_ObjectsVersion_Name(T enum_t_value) {
  static_assert(::std::is_same<T, VisionFeaturePrint_Objects_ObjectsVersion>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function VisionFeaturePrint_Objects_ObjectsVersion_Name.");
  return VisionFeaturePrint_Objects_ObjectsVersion_Name(static_cast<VisionFeaturePrint_Objects_ObjectsVersion>(enum_t_value));
}
bool VisionFeaturePrint_Objects_ObjectsVersion_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, VisionFeaturePrint_Objects_ObjectsVersion* value);
// ===================================================================

class VisionFeaturePrint_Scene final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene) */ {
 public:
  inline VisionFeaturePrint_Scene() : VisionFeaturePrint_Scene(nullptr) {}
  ~VisionFeaturePrint_Scene() override;
  explicit constexpr VisionFeaturePrint_Scene(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

  inline VisionFeaturePrint_Scene& operator=(const VisionFeaturePrint_Scene& from) {
    CopyFrom(from);
    return *this;
  }
  inline VisionFeaturePrint_Scene& operator=(VisionFeaturePrint_Scene&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const VisionFeaturePrint_Scene& default_instance() {
    return *internal_default_instance();
  }
  static inline const VisionFeaturePrint_Scene* internal_default_instance() {
    return reinterpret_cast<const VisionFeaturePrint_Scene*>(
               &_VisionFeaturePrint_Scene_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(VisionFeaturePrint_Scene& a, VisionFeaturePrint_Scene& b) {
    a.Swap(&b);
  }
  inline void Swap(VisionFeaturePrint_Scene* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VisionFeaturePrint_Scene* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  VisionFeaturePrint_Scene* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<VisionFeaturePrint_Scene>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const VisionFeaturePrint_Scene& from);
  void MergeFrom(const VisionFeaturePrint_Scene& 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;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(VisionFeaturePrint_Scene* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene";
  }
  protected:
  explicit VisionFeaturePrint_Scene(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef VisionFeaturePrint_Scene_SceneVersion SceneVersion;
  static constexpr SceneVersion SCENE_VERSION_INVALID =
    VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_INVALID;
  static constexpr SceneVersion SCENE_VERSION_1 =
    VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_1;
  static constexpr SceneVersion SCENE_VERSION_2 =
    VisionFeaturePrint_Scene_SceneVersion_SCENE_VERSION_2;
  static inline bool SceneVersion_IsValid(int value) {
    return VisionFeaturePrint_Scene_SceneVersion_IsValid(value);
  }
  static constexpr SceneVersion SceneVersion_MIN =
    VisionFeaturePrint_Scene_SceneVersion_SceneVersion_MIN;
  static constexpr SceneVersion SceneVersion_MAX =
    VisionFeaturePrint_Scene_SceneVersion_SceneVersion_MAX;
  static constexpr int SceneVersion_ARRAYSIZE =
    VisionFeaturePrint_Scene_SceneVersion_SceneVersion_ARRAYSIZE;
  template<typename T>
  static inline const std::string& SceneVersion_Name(T enum_t_value) {
    static_assert(::std::is_same<T, SceneVersion>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function SceneVersion_Name.");
    return VisionFeaturePrint_Scene_SceneVersion_Name(enum_t_value);
  }
  static inline bool SceneVersion_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      SceneVersion* value) {
    return VisionFeaturePrint_Scene_SceneVersion_Parse(name, value);
  }

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

  enum : int {
    kVersionFieldNumber = 1,
  };
  // .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene.SceneVersion version = 1;
  void clear_version();
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion version() const;
  void set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion value);
  private:
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion _internal_version() const;
  void _internal_set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion value);
  public:

  // @@protoc_insertion_point(class_scope:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  int version_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_VisionFeaturePrint_2eproto;
};
// -------------------------------------------------------------------

class VisionFeaturePrint_Objects final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects) */ {
 public:
  inline VisionFeaturePrint_Objects() : VisionFeaturePrint_Objects(nullptr) {}
  ~VisionFeaturePrint_Objects() override;
  explicit constexpr VisionFeaturePrint_Objects(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

  inline VisionFeaturePrint_Objects& operator=(const VisionFeaturePrint_Objects& from) {
    CopyFrom(from);
    return *this;
  }
  inline VisionFeaturePrint_Objects& operator=(VisionFeaturePrint_Objects&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const VisionFeaturePrint_Objects& default_instance() {
    return *internal_default_instance();
  }
  static inline const VisionFeaturePrint_Objects* internal_default_instance() {
    return reinterpret_cast<const VisionFeaturePrint_Objects*>(
               &_VisionFeaturePrint_Objects_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(VisionFeaturePrint_Objects& a, VisionFeaturePrint_Objects& b) {
    a.Swap(&b);
  }
  inline void Swap(VisionFeaturePrint_Objects* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VisionFeaturePrint_Objects* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  VisionFeaturePrint_Objects* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<VisionFeaturePrint_Objects>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const VisionFeaturePrint_Objects& from);
  void MergeFrom(const VisionFeaturePrint_Objects& 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;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(VisionFeaturePrint_Objects* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects";
  }
  protected:
  explicit VisionFeaturePrint_Objects(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef VisionFeaturePrint_Objects_ObjectsVersion ObjectsVersion;
  static constexpr ObjectsVersion OBJECTS_VERSION_INVALID =
    VisionFeaturePrint_Objects_ObjectsVersion_OBJECTS_VERSION_INVALID;
  static constexpr ObjectsVersion OBJECTS_VERSION_1 =
    VisionFeaturePrint_Objects_ObjectsVersion_OBJECTS_VERSION_1;
  static inline bool ObjectsVersion_IsValid(int value) {
    return VisionFeaturePrint_Objects_ObjectsVersion_IsValid(value);
  }
  static constexpr ObjectsVersion ObjectsVersion_MIN =
    VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_MIN;
  static constexpr ObjectsVersion ObjectsVersion_MAX =
    VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_MAX;
  static constexpr int ObjectsVersion_ARRAYSIZE =
    VisionFeaturePrint_Objects_ObjectsVersion_ObjectsVersion_ARRAYSIZE;
  template<typename T>
  static inline const std::string& ObjectsVersion_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ObjectsVersion>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ObjectsVersion_Name.");
    return VisionFeaturePrint_Objects_ObjectsVersion_Name(enum_t_value);
  }
  static inline bool ObjectsVersion_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      ObjectsVersion* value) {
    return VisionFeaturePrint_Objects_ObjectsVersion_Parse(name, value);
  }

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

  enum : int {
    kOutputFieldNumber = 100,
    kVersionFieldNumber = 1,
  };
  // repeated string output = 100;
  int output_size() const;
  private:
  int _internal_output_size() const;
  public:
  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();
  private:
  const std::string& _internal_output(int index) const;
  std::string* _internal_add_output();
  public:

  // .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.ObjectsVersion version = 1;
  void clear_version();
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion version() const;
  void set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion value);
  private:
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion _internal_version() const;
  void _internal_set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion value);
  public:

  // @@protoc_insertion_point(class_scope:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> output_;
  int version_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_VisionFeaturePrint_2eproto;
};
// -------------------------------------------------------------------

class VisionFeaturePrint final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:CoreML.Specification.CoreMLModels.VisionFeaturePrint) */ {
 public:
  inline VisionFeaturePrint() : VisionFeaturePrint(nullptr) {}
  ~VisionFeaturePrint() override;
  explicit constexpr VisionFeaturePrint(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

  inline VisionFeaturePrint& operator=(const VisionFeaturePrint& from) {
    CopyFrom(from);
    return *this;
  }
  inline VisionFeaturePrint& operator=(VisionFeaturePrint&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const VisionFeaturePrint& default_instance() {
    return *internal_default_instance();
  }
  enum VisionFeaturePrintTypeCase {
    kScene = 20,
    kObjects = 21,
    VISIONFEATUREPRINTTYPE_NOT_SET = 0,
  };

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

  friend void swap(VisionFeaturePrint& a, VisionFeaturePrint& b) {
    a.Swap(&b);
  }
  inline void Swap(VisionFeaturePrint* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VisionFeaturePrint* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  VisionFeaturePrint* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<VisionFeaturePrint>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const VisionFeaturePrint& from);
  void MergeFrom(const VisionFeaturePrint& 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;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(VisionFeaturePrint* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "CoreML.Specification.CoreMLModels.VisionFeaturePrint";
  }
  protected:
  explicit VisionFeaturePrint(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef VisionFeaturePrint_Scene Scene;
  typedef VisionFeaturePrint_Objects Objects;

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

  enum : int {
    kSceneFieldNumber = 20,
    kObjectsFieldNumber = 21,
  };
  // .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene scene = 20;
  bool has_scene() const;
  private:
  bool _internal_has_scene() const;
  public:
  void clear_scene();
  const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene& scene() const;
  PROTOBUF_NODISCARD ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* release_scene();
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* mutable_scene();
  void set_allocated_scene(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* scene);
  private:
  const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene& _internal_scene() const;
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* _internal_mutable_scene();
  public:
  void unsafe_arena_set_allocated_scene(
      ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* scene);
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* unsafe_arena_release_scene();

  // .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects objects = 21;
  bool has_objects() const;
  private:
  bool _internal_has_objects() const;
  public:
  void clear_objects();
  const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects& objects() const;
  PROTOBUF_NODISCARD ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* release_objects();
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* mutable_objects();
  void set_allocated_objects(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* objects);
  private:
  const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects& _internal_objects() const;
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* _internal_mutable_objects();
  public:
  void unsafe_arena_set_allocated_objects(
      ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* objects);
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* unsafe_arena_release_objects();

  void clear_VisionFeaturePrintType();
  VisionFeaturePrintTypeCase VisionFeaturePrintType_case() const;
  // @@protoc_insertion_point(class_scope:CoreML.Specification.CoreMLModels.VisionFeaturePrint)
 private:
  class _Internal;
  void set_has_scene();
  void set_has_objects();

  inline bool has_VisionFeaturePrintType() const;
  inline void clear_has_VisionFeaturePrintType();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  union VisionFeaturePrintTypeUnion {
    constexpr VisionFeaturePrintTypeUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* scene_;
    ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* objects_;
  } VisionFeaturePrintType_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  uint32_t _oneof_case_[1];

  friend struct ::TableStruct_VisionFeaturePrint_2eproto;
};
// ===================================================================


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

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

// .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene.SceneVersion version = 1;
inline void VisionFeaturePrint_Scene::clear_version() {
  version_ = 0;
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion VisionFeaturePrint_Scene::_internal_version() const {
  return static_cast< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion >(version_);
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion VisionFeaturePrint_Scene::version() const {
  // @@protoc_insertion_point(field_get:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene.version)
  return _internal_version();
}
inline void VisionFeaturePrint_Scene::_internal_set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion value) {
  
  version_ = value;
}
inline void VisionFeaturePrint_Scene::set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion value) {
  _internal_set_version(value);
  // @@protoc_insertion_point(field_set:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene.version)
}

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

// VisionFeaturePrint_Objects

// .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.ObjectsVersion version = 1;
inline void VisionFeaturePrint_Objects::clear_version() {
  version_ = 0;
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion VisionFeaturePrint_Objects::_internal_version() const {
  return static_cast< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion >(version_);
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion VisionFeaturePrint_Objects::version() const {
  // @@protoc_insertion_point(field_get:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.version)
  return _internal_version();
}
inline void VisionFeaturePrint_Objects::_internal_set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion value) {
  
  version_ = value;
}
inline void VisionFeaturePrint_Objects::set_version(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion value) {
  _internal_set_version(value);
  // @@protoc_insertion_point(field_set:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.version)
}

// repeated string output = 100;
inline int VisionFeaturePrint_Objects::_internal_output_size() const {
  return output_.size();
}
inline int VisionFeaturePrint_Objects::output_size() const {
  return _internal_output_size();
}
inline void VisionFeaturePrint_Objects::clear_output() {
  output_.Clear();
}
inline std::string* VisionFeaturePrint_Objects::add_output() {
  std::string* _s = _internal_add_output();
  // @@protoc_insertion_point(field_add_mutable:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
  return _s;
}
inline const std::string& VisionFeaturePrint_Objects::_internal_output(int index) const {
  return output_.Get(index);
}
inline const std::string& VisionFeaturePrint_Objects::output(int index) const {
  // @@protoc_insertion_point(field_get:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
  return _internal_output(index);
}
inline std::string* VisionFeaturePrint_Objects::mutable_output(int index) {
  // @@protoc_insertion_point(field_mutable:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
  return output_.Mutable(index);
}
inline void VisionFeaturePrint_Objects::set_output(int index, const std::string& value) {
  output_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline void VisionFeaturePrint_Objects::set_output(int index, std::string&& value) {
  output_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline void VisionFeaturePrint_Objects::set_output(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  output_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline void VisionFeaturePrint_Objects::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:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline std::string* VisionFeaturePrint_Objects::_internal_add_output() {
  return output_.Add();
}
inline void VisionFeaturePrint_Objects::add_output(const std::string& value) {
  output_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline void VisionFeaturePrint_Objects::add_output(std::string&& value) {
  output_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline void VisionFeaturePrint_Objects::add_output(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  output_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline void VisionFeaturePrint_Objects::add_output(const char* value, size_t size) {
  output_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
VisionFeaturePrint_Objects::output() const {
  // @@protoc_insertion_point(field_list:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
  return output_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
VisionFeaturePrint_Objects::mutable_output() {
  // @@protoc_insertion_point(field_mutable_list:CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects.output)
  return &output_;
}

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

// VisionFeaturePrint

// .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Scene scene = 20;
inline bool VisionFeaturePrint::_internal_has_scene() const {
  return VisionFeaturePrintType_case() == kScene;
}
inline bool VisionFeaturePrint::has_scene() const {
  return _internal_has_scene();
}
inline void VisionFeaturePrint::set_has_scene() {
  _oneof_case_[0] = kScene;
}
inline void VisionFeaturePrint::clear_scene() {
  if (_internal_has_scene()) {
    if (GetArenaForAllocation() == nullptr) {
      delete VisionFeaturePrintType_.scene_;
    }
    clear_has_VisionFeaturePrintType();
  }
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* VisionFeaturePrint::release_scene() {
  // @@protoc_insertion_point(field_release:CoreML.Specification.CoreMLModels.VisionFeaturePrint.scene)
  if (_internal_has_scene()) {
    clear_has_VisionFeaturePrintType();
      ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* temp = VisionFeaturePrintType_.scene_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    VisionFeaturePrintType_.scene_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene& VisionFeaturePrint::_internal_scene() const {
  return _internal_has_scene()
      ? *VisionFeaturePrintType_.scene_
      : reinterpret_cast< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene&>(::CoreML::Specification::CoreMLModels::_VisionFeaturePrint_Scene_default_instance_);
}
inline const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene& VisionFeaturePrint::scene() const {
  // @@protoc_insertion_point(field_get:CoreML.Specification.CoreMLModels.VisionFeaturePrint.scene)
  return _internal_scene();
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* VisionFeaturePrint::unsafe_arena_release_scene() {
  // @@protoc_insertion_point(field_unsafe_arena_release:CoreML.Specification.CoreMLModels.VisionFeaturePrint.scene)
  if (_internal_has_scene()) {
    clear_has_VisionFeaturePrintType();
    ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* temp = VisionFeaturePrintType_.scene_;
    VisionFeaturePrintType_.scene_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void VisionFeaturePrint::unsafe_arena_set_allocated_scene(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* scene) {
  clear_VisionFeaturePrintType();
  if (scene) {
    set_has_scene();
    VisionFeaturePrintType_.scene_ = scene;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CoreML.Specification.CoreMLModels.VisionFeaturePrint.scene)
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* VisionFeaturePrint::_internal_mutable_scene() {
  if (!_internal_has_scene()) {
    clear_VisionFeaturePrintType();
    set_has_scene();
    VisionFeaturePrintType_.scene_ = CreateMaybeMessage< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene >(GetArenaForAllocation());
  }
  return VisionFeaturePrintType_.scene_;
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* VisionFeaturePrint::mutable_scene() {
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene* _msg = _internal_mutable_scene();
  // @@protoc_insertion_point(field_mutable:CoreML.Specification.CoreMLModels.VisionFeaturePrint.scene)
  return _msg;
}

// .CoreML.Specification.CoreMLModels.VisionFeaturePrint.Objects objects = 21;
inline bool VisionFeaturePrint::_internal_has_objects() const {
  return VisionFeaturePrintType_case() == kObjects;
}
inline bool VisionFeaturePrint::has_objects() const {
  return _internal_has_objects();
}
inline void VisionFeaturePrint::set_has_objects() {
  _oneof_case_[0] = kObjects;
}
inline void VisionFeaturePrint::clear_objects() {
  if (_internal_has_objects()) {
    if (GetArenaForAllocation() == nullptr) {
      delete VisionFeaturePrintType_.objects_;
    }
    clear_has_VisionFeaturePrintType();
  }
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* VisionFeaturePrint::release_objects() {
  // @@protoc_insertion_point(field_release:CoreML.Specification.CoreMLModels.VisionFeaturePrint.objects)
  if (_internal_has_objects()) {
    clear_has_VisionFeaturePrintType();
      ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* temp = VisionFeaturePrintType_.objects_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    VisionFeaturePrintType_.objects_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects& VisionFeaturePrint::_internal_objects() const {
  return _internal_has_objects()
      ? *VisionFeaturePrintType_.objects_
      : reinterpret_cast< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects&>(::CoreML::Specification::CoreMLModels::_VisionFeaturePrint_Objects_default_instance_);
}
inline const ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects& VisionFeaturePrint::objects() const {
  // @@protoc_insertion_point(field_get:CoreML.Specification.CoreMLModels.VisionFeaturePrint.objects)
  return _internal_objects();
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* VisionFeaturePrint::unsafe_arena_release_objects() {
  // @@protoc_insertion_point(field_unsafe_arena_release:CoreML.Specification.CoreMLModels.VisionFeaturePrint.objects)
  if (_internal_has_objects()) {
    clear_has_VisionFeaturePrintType();
    ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* temp = VisionFeaturePrintType_.objects_;
    VisionFeaturePrintType_.objects_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void VisionFeaturePrint::unsafe_arena_set_allocated_objects(::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* objects) {
  clear_VisionFeaturePrintType();
  if (objects) {
    set_has_objects();
    VisionFeaturePrintType_.objects_ = objects;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CoreML.Specification.CoreMLModels.VisionFeaturePrint.objects)
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* VisionFeaturePrint::_internal_mutable_objects() {
  if (!_internal_has_objects()) {
    clear_VisionFeaturePrintType();
    set_has_objects();
    VisionFeaturePrintType_.objects_ = CreateMaybeMessage< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects >(GetArenaForAllocation());
  }
  return VisionFeaturePrintType_.objects_;
}
inline ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* VisionFeaturePrint::mutable_objects() {
  ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects* _msg = _internal_mutable_objects();
  // @@protoc_insertion_point(field_mutable:CoreML.Specification.CoreMLModels.VisionFeaturePrint.objects)
  return _msg;
}

inline bool VisionFeaturePrint::has_VisionFeaturePrintType() const {
  return VisionFeaturePrintType_case() != VISIONFEATUREPRINTTYPE_NOT_SET;
}
inline void VisionFeaturePrint::clear_has_VisionFeaturePrintType() {
  _oneof_case_[0] = VISIONFEATUREPRINTTYPE_NOT_SET;
}
inline VisionFeaturePrint::VisionFeaturePrintTypeCase VisionFeaturePrint::VisionFeaturePrintType_case() const {
  return VisionFeaturePrint::VisionFeaturePrintTypeCase(_oneof_case_[0]);
}
#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace CoreMLModels
}  // namespace Specification
}  // namespace CoreML

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Scene_SceneVersion> : ::std::true_type {};
template <> struct is_proto_enum< ::CoreML::Specification::CoreMLModels::VisionFeaturePrint_Objects_ObjectsVersion> : ::std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

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