/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: FeatureTypes.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "FeatureTypes.pb-c.h"
void   core_ml__specification__int64_feature_type__init
                     (CoreML__Specification__Int64FeatureType         *message)
{
  static const CoreML__Specification__Int64FeatureType init_value = CORE_ML__SPECIFICATION__INT64_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__int64_feature_type__get_packed_size
                     (const CoreML__Specification__Int64FeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__int64_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__int64_feature_type__pack
                     (const CoreML__Specification__Int64FeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__int64_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__int64_feature_type__pack_to_buffer
                     (const CoreML__Specification__Int64FeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__int64_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__Int64FeatureType *
       core_ml__specification__int64_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__Int64FeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__int64_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__int64_feature_type__free_unpacked
                     (CoreML__Specification__Int64FeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__int64_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__double_feature_type__init
                     (CoreML__Specification__DoubleFeatureType         *message)
{
  static const CoreML__Specification__DoubleFeatureType init_value = CORE_ML__SPECIFICATION__DOUBLE_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__double_feature_type__get_packed_size
                     (const CoreML__Specification__DoubleFeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__double_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__double_feature_type__pack
                     (const CoreML__Specification__DoubleFeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__double_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__double_feature_type__pack_to_buffer
                     (const CoreML__Specification__DoubleFeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__double_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__DoubleFeatureType *
       core_ml__specification__double_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__DoubleFeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__double_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__double_feature_type__free_unpacked
                     (CoreML__Specification__DoubleFeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__double_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__string_feature_type__init
                     (CoreML__Specification__StringFeatureType         *message)
{
  static const CoreML__Specification__StringFeatureType init_value = CORE_ML__SPECIFICATION__STRING_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__string_feature_type__get_packed_size
                     (const CoreML__Specification__StringFeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__string_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__string_feature_type__pack
                     (const CoreML__Specification__StringFeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__string_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__string_feature_type__pack_to_buffer
                     (const CoreML__Specification__StringFeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__string_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__StringFeatureType *
       core_ml__specification__string_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__StringFeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__string_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__string_feature_type__free_unpacked
                     (CoreML__Specification__StringFeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__string_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__size_range__init
                     (CoreML__Specification__SizeRange         *message)
{
  static const CoreML__Specification__SizeRange init_value = CORE_ML__SPECIFICATION__SIZE_RANGE__INIT;
  *message = init_value;
}
size_t core_ml__specification__size_range__get_packed_size
                     (const CoreML__Specification__SizeRange *message)
{
  assert(message->base.descriptor == &core_ml__specification__size_range__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__size_range__pack
                     (const CoreML__Specification__SizeRange *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__size_range__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__size_range__pack_to_buffer
                     (const CoreML__Specification__SizeRange *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__size_range__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__SizeRange *
       core_ml__specification__size_range__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__SizeRange *)
     protobuf_c_message_unpack (&core_ml__specification__size_range__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__size_range__free_unpacked
                     (CoreML__Specification__SizeRange *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__size_range__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__image_feature_type__image_size__init
                     (CoreML__Specification__ImageFeatureType__ImageSize         *message)
{
  static const CoreML__Specification__ImageFeatureType__ImageSize init_value = CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__IMAGE_SIZE__INIT;
  *message = init_value;
}
void   core_ml__specification__image_feature_type__enumerated_image_sizes__init
                     (CoreML__Specification__ImageFeatureType__EnumeratedImageSizes         *message)
{
  static const CoreML__Specification__ImageFeatureType__EnumeratedImageSizes init_value = CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__ENUMERATED_IMAGE_SIZES__INIT;
  *message = init_value;
}
void   core_ml__specification__image_feature_type__image_size_range__init
                     (CoreML__Specification__ImageFeatureType__ImageSizeRange         *message)
{
  static const CoreML__Specification__ImageFeatureType__ImageSizeRange init_value = CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__IMAGE_SIZE_RANGE__INIT;
  *message = init_value;
}
void   core_ml__specification__image_feature_type__init
                     (CoreML__Specification__ImageFeatureType         *message)
{
  static const CoreML__Specification__ImageFeatureType init_value = CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__image_feature_type__get_packed_size
                     (const CoreML__Specification__ImageFeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__image_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__image_feature_type__pack
                     (const CoreML__Specification__ImageFeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__image_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__image_feature_type__pack_to_buffer
                     (const CoreML__Specification__ImageFeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__image_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__ImageFeatureType *
       core_ml__specification__image_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__ImageFeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__image_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__image_feature_type__free_unpacked
                     (CoreML__Specification__ImageFeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__image_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__array_feature_type__shape__init
                     (CoreML__Specification__ArrayFeatureType__Shape         *message)
{
  static const CoreML__Specification__ArrayFeatureType__Shape init_value = CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__SHAPE__INIT;
  *message = init_value;
}
void   core_ml__specification__array_feature_type__enumerated_shapes__init
                     (CoreML__Specification__ArrayFeatureType__EnumeratedShapes         *message)
{
  static const CoreML__Specification__ArrayFeatureType__EnumeratedShapes init_value = CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__ENUMERATED_SHAPES__INIT;
  *message = init_value;
}
void   core_ml__specification__array_feature_type__shape_range__init
                     (CoreML__Specification__ArrayFeatureType__ShapeRange         *message)
{
  static const CoreML__Specification__ArrayFeatureType__ShapeRange init_value = CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__SHAPE_RANGE__INIT;
  *message = init_value;
}
void   core_ml__specification__array_feature_type__init
                     (CoreML__Specification__ArrayFeatureType         *message)
{
  static const CoreML__Specification__ArrayFeatureType init_value = CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__array_feature_type__get_packed_size
                     (const CoreML__Specification__ArrayFeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__array_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__array_feature_type__pack
                     (const CoreML__Specification__ArrayFeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__array_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__array_feature_type__pack_to_buffer
                     (const CoreML__Specification__ArrayFeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__array_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__ArrayFeatureType *
       core_ml__specification__array_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__ArrayFeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__array_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__array_feature_type__free_unpacked
                     (CoreML__Specification__ArrayFeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__array_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__dictionary_feature_type__init
                     (CoreML__Specification__DictionaryFeatureType         *message)
{
  static const CoreML__Specification__DictionaryFeatureType init_value = CORE_ML__SPECIFICATION__DICTIONARY_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__dictionary_feature_type__get_packed_size
                     (const CoreML__Specification__DictionaryFeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__dictionary_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__dictionary_feature_type__pack
                     (const CoreML__Specification__DictionaryFeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__dictionary_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__dictionary_feature_type__pack_to_buffer
                     (const CoreML__Specification__DictionaryFeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__dictionary_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__DictionaryFeatureType *
       core_ml__specification__dictionary_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__DictionaryFeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__dictionary_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__dictionary_feature_type__free_unpacked
                     (CoreML__Specification__DictionaryFeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__dictionary_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__sequence_feature_type__init
                     (CoreML__Specification__SequenceFeatureType         *message)
{
  static const CoreML__Specification__SequenceFeatureType init_value = CORE_ML__SPECIFICATION__SEQUENCE_FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__sequence_feature_type__get_packed_size
                     (const CoreML__Specification__SequenceFeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__sequence_feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__sequence_feature_type__pack
                     (const CoreML__Specification__SequenceFeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__sequence_feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__sequence_feature_type__pack_to_buffer
                     (const CoreML__Specification__SequenceFeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__sequence_feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__SequenceFeatureType *
       core_ml__specification__sequence_feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__SequenceFeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__sequence_feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__sequence_feature_type__free_unpacked
                     (CoreML__Specification__SequenceFeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__sequence_feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   core_ml__specification__feature_type__init
                     (CoreML__Specification__FeatureType         *message)
{
  static const CoreML__Specification__FeatureType init_value = CORE_ML__SPECIFICATION__FEATURE_TYPE__INIT;
  *message = init_value;
}
size_t core_ml__specification__feature_type__get_packed_size
                     (const CoreML__Specification__FeatureType *message)
{
  assert(message->base.descriptor == &core_ml__specification__feature_type__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t core_ml__specification__feature_type__pack
                     (const CoreML__Specification__FeatureType *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &core_ml__specification__feature_type__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t core_ml__specification__feature_type__pack_to_buffer
                     (const CoreML__Specification__FeatureType *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &core_ml__specification__feature_type__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
CoreML__Specification__FeatureType *
       core_ml__specification__feature_type__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (CoreML__Specification__FeatureType *)
     protobuf_c_message_unpack (&core_ml__specification__feature_type__descriptor,
                                allocator, len, data);
}
void   core_ml__specification__feature_type__free_unpacked
                     (CoreML__Specification__FeatureType *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &core_ml__specification__feature_type__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
#define core_ml__specification__int64_feature_type__field_descriptors NULL
#define core_ml__specification__int64_feature_type__field_indices_by_name NULL
#define core_ml__specification__int64_feature_type__number_ranges NULL
const ProtobufCMessageDescriptor core_ml__specification__int64_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.Int64FeatureType",
  "Int64FeatureType",
  "CoreML__Specification__Int64FeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__Int64FeatureType),
  0,
  core_ml__specification__int64_feature_type__field_descriptors,
  core_ml__specification__int64_feature_type__field_indices_by_name,
  0,  core_ml__specification__int64_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__int64_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
#define core_ml__specification__double_feature_type__field_descriptors NULL
#define core_ml__specification__double_feature_type__field_indices_by_name NULL
#define core_ml__specification__double_feature_type__number_ranges NULL
const ProtobufCMessageDescriptor core_ml__specification__double_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.DoubleFeatureType",
  "DoubleFeatureType",
  "CoreML__Specification__DoubleFeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__DoubleFeatureType),
  0,
  core_ml__specification__double_feature_type__field_descriptors,
  core_ml__specification__double_feature_type__field_indices_by_name,
  0,  core_ml__specification__double_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__double_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
#define core_ml__specification__string_feature_type__field_descriptors NULL
#define core_ml__specification__string_feature_type__field_indices_by_name NULL
#define core_ml__specification__string_feature_type__number_ranges NULL
const ProtobufCMessageDescriptor core_ml__specification__string_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.StringFeatureType",
  "StringFeatureType",
  "CoreML__Specification__StringFeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__StringFeatureType),
  0,
  core_ml__specification__string_feature_type__field_descriptors,
  core_ml__specification__string_feature_type__field_indices_by_name,
  0,  core_ml__specification__string_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__string_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__size_range__field_descriptors[2] =
{
  {
    "lowerBound",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT64,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__SizeRange, lowerbound),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "upperBound",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__SizeRange, upperbound),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__size_range__field_indices_by_name[] = {
  0,   /* field[0] = lowerBound */
  1,   /* field[1] = upperBound */
};
static const ProtobufCIntRange core_ml__specification__size_range__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor core_ml__specification__size_range__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.SizeRange",
  "SizeRange",
  "CoreML__Specification__SizeRange",
  "CoreML.Specification",
  sizeof(CoreML__Specification__SizeRange),
  2,
  core_ml__specification__size_range__field_descriptors,
  core_ml__specification__size_range__field_indices_by_name,
  1,  core_ml__specification__size_range__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__size_range__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__image_feature_type__image_size__field_descriptors[2] =
{
  {
    "width",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT64,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType__ImageSize, width),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "height",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_UINT64,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType__ImageSize, height),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__image_feature_type__image_size__field_indices_by_name[] = {
  1,   /* field[1] = height */
  0,   /* field[0] = width */
};
static const ProtobufCIntRange core_ml__specification__image_feature_type__image_size__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor core_ml__specification__image_feature_type__image_size__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ImageFeatureType.ImageSize",
  "ImageSize",
  "CoreML__Specification__ImageFeatureType__ImageSize",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ImageFeatureType__ImageSize),
  2,
  core_ml__specification__image_feature_type__image_size__field_descriptors,
  core_ml__specification__image_feature_type__image_size__field_indices_by_name,
  1,  core_ml__specification__image_feature_type__image_size__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__image_feature_type__image_size__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__image_feature_type__enumerated_image_sizes__field_descriptors[1] =
{
  {
    "sizes",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ImageFeatureType__EnumeratedImageSizes, n_sizes),
    offsetof(CoreML__Specification__ImageFeatureType__EnumeratedImageSizes, sizes),
    &core_ml__specification__image_feature_type__image_size__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__image_feature_type__enumerated_image_sizes__field_indices_by_name[] = {
  0,   /* field[0] = sizes */
};
static const ProtobufCIntRange core_ml__specification__image_feature_type__enumerated_image_sizes__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor core_ml__specification__image_feature_type__enumerated_image_sizes__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ImageFeatureType.EnumeratedImageSizes",
  "EnumeratedImageSizes",
  "CoreML__Specification__ImageFeatureType__EnumeratedImageSizes",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ImageFeatureType__EnumeratedImageSizes),
  1,
  core_ml__specification__image_feature_type__enumerated_image_sizes__field_descriptors,
  core_ml__specification__image_feature_type__enumerated_image_sizes__field_indices_by_name,
  1,  core_ml__specification__image_feature_type__enumerated_image_sizes__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__image_feature_type__enumerated_image_sizes__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__image_feature_type__image_size_range__field_descriptors[2] =
{
  {
    "widthRange",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType__ImageSizeRange, widthrange),
    &core_ml__specification__size_range__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "heightRange",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType__ImageSizeRange, heightrange),
    &core_ml__specification__size_range__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__image_feature_type__image_size_range__field_indices_by_name[] = {
  1,   /* field[1] = heightRange */
  0,   /* field[0] = widthRange */
};
static const ProtobufCIntRange core_ml__specification__image_feature_type__image_size_range__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor core_ml__specification__image_feature_type__image_size_range__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ImageFeatureType.ImageSizeRange",
  "ImageSizeRange",
  "CoreML__Specification__ImageFeatureType__ImageSizeRange",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ImageFeatureType__ImageSizeRange),
  2,
  core_ml__specification__image_feature_type__image_size_range__field_descriptors,
  core_ml__specification__image_feature_type__image_size_range__field_indices_by_name,
  1,  core_ml__specification__image_feature_type__image_size_range__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__image_feature_type__image_size_range__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue core_ml__specification__image_feature_type__color_space__enum_values_by_number[4] =
{
  { "INVALID_COLOR_SPACE", "CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__COLOR_SPACE__INVALID_COLOR_SPACE", 0 },
  { "GRAYSCALE", "CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__COLOR_SPACE__GRAYSCALE", 10 },
  { "RGB", "CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__COLOR_SPACE__RGB", 20 },
  { "BGR", "CORE_ML__SPECIFICATION__IMAGE_FEATURE_TYPE__COLOR_SPACE__BGR", 30 },
};
static const ProtobufCIntRange core_ml__specification__image_feature_type__color_space__value_ranges[] = {
{0, 0},{10, 1},{20, 2},{30, 3},{0, 4}
};
static const ProtobufCEnumValueIndex core_ml__specification__image_feature_type__color_space__enum_values_by_name[4] =
{
  { "BGR", 3 },
  { "GRAYSCALE", 1 },
  { "INVALID_COLOR_SPACE", 0 },
  { "RGB", 2 },
};
const ProtobufCEnumDescriptor core_ml__specification__image_feature_type__color_space__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ImageFeatureType.ColorSpace",
  "ColorSpace",
  "CoreML__Specification__ImageFeatureType__ColorSpace",
  "CoreML.Specification",
  4,
  core_ml__specification__image_feature_type__color_space__enum_values_by_number,
  4,
  core_ml__specification__image_feature_type__color_space__enum_values_by_name,
  4,
  core_ml__specification__image_feature_type__color_space__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor core_ml__specification__image_feature_type__field_descriptors[5] =
{
  {
    "width",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType, width),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "height",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType, height),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "colorSpace",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ImageFeatureType, colorspace),
    &core_ml__specification__image_feature_type__color_space__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "enumeratedSizes",
    21,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ImageFeatureType, size_flexibility_case),
    offsetof(CoreML__Specification__ImageFeatureType, enumeratedsizes),
    &core_ml__specification__image_feature_type__enumerated_image_sizes__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "imageSizeRange",
    31,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ImageFeatureType, size_flexibility_case),
    offsetof(CoreML__Specification__ImageFeatureType, imagesizerange),
    &core_ml__specification__image_feature_type__image_size_range__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__image_feature_type__field_indices_by_name[] = {
  2,   /* field[2] = colorSpace */
  3,   /* field[3] = enumeratedSizes */
  1,   /* field[1] = height */
  4,   /* field[4] = imageSizeRange */
  0,   /* field[0] = width */
};
static const ProtobufCIntRange core_ml__specification__image_feature_type__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 21, 3 },
  { 31, 4 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor core_ml__specification__image_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ImageFeatureType",
  "ImageFeatureType",
  "CoreML__Specification__ImageFeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ImageFeatureType),
  5,
  core_ml__specification__image_feature_type__field_descriptors,
  core_ml__specification__image_feature_type__field_indices_by_name,
  3,  core_ml__specification__image_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__image_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__array_feature_type__shape__field_descriptors[1] =
{
  {
    "shape",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(CoreML__Specification__ArrayFeatureType__Shape, n_shape),
    offsetof(CoreML__Specification__ArrayFeatureType__Shape, shape),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__array_feature_type__shape__field_indices_by_name[] = {
  0,   /* field[0] = shape */
};
static const ProtobufCIntRange core_ml__specification__array_feature_type__shape__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor core_ml__specification__array_feature_type__shape__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ArrayFeatureType.Shape",
  "Shape",
  "CoreML__Specification__ArrayFeatureType__Shape",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ArrayFeatureType__Shape),
  1,
  core_ml__specification__array_feature_type__shape__field_descriptors,
  core_ml__specification__array_feature_type__shape__field_indices_by_name,
  1,  core_ml__specification__array_feature_type__shape__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__array_feature_type__shape__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__array_feature_type__enumerated_shapes__field_descriptors[1] =
{
  {
    "shapes",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ArrayFeatureType__EnumeratedShapes, n_shapes),
    offsetof(CoreML__Specification__ArrayFeatureType__EnumeratedShapes, shapes),
    &core_ml__specification__array_feature_type__shape__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__array_feature_type__enumerated_shapes__field_indices_by_name[] = {
  0,   /* field[0] = shapes */
};
static const ProtobufCIntRange core_ml__specification__array_feature_type__enumerated_shapes__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor core_ml__specification__array_feature_type__enumerated_shapes__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ArrayFeatureType.EnumeratedShapes",
  "EnumeratedShapes",
  "CoreML__Specification__ArrayFeatureType__EnumeratedShapes",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ArrayFeatureType__EnumeratedShapes),
  1,
  core_ml__specification__array_feature_type__enumerated_shapes__field_descriptors,
  core_ml__specification__array_feature_type__enumerated_shapes__field_indices_by_name,
  1,  core_ml__specification__array_feature_type__enumerated_shapes__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__array_feature_type__enumerated_shapes__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__array_feature_type__shape_range__field_descriptors[1] =
{
  {
    "sizeRanges",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ArrayFeatureType__ShapeRange, n_sizeranges),
    offsetof(CoreML__Specification__ArrayFeatureType__ShapeRange, sizeranges),
    &core_ml__specification__size_range__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__array_feature_type__shape_range__field_indices_by_name[] = {
  0,   /* field[0] = sizeRanges */
};
static const ProtobufCIntRange core_ml__specification__array_feature_type__shape_range__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor core_ml__specification__array_feature_type__shape_range__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ArrayFeatureType.ShapeRange",
  "ShapeRange",
  "CoreML__Specification__ArrayFeatureType__ShapeRange",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ArrayFeatureType__ShapeRange),
  1,
  core_ml__specification__array_feature_type__shape_range__field_descriptors,
  core_ml__specification__array_feature_type__shape_range__field_indices_by_name,
  1,  core_ml__specification__array_feature_type__shape_range__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__array_feature_type__shape_range__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue core_ml__specification__array_feature_type__array_data_type__enum_values_by_number[4] =
{
  { "INVALID_ARRAY_DATA_TYPE", "CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__ARRAY_DATA_TYPE__INVALID_ARRAY_DATA_TYPE", 0 },
  { "FLOAT32", "CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__ARRAY_DATA_TYPE__FLOAT32", 65568 },
  { "DOUBLE", "CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__ARRAY_DATA_TYPE__DOUBLE", 65600 },
  { "INT32", "CORE_ML__SPECIFICATION__ARRAY_FEATURE_TYPE__ARRAY_DATA_TYPE__INT32", 131104 },
};
static const ProtobufCIntRange core_ml__specification__array_feature_type__array_data_type__value_ranges[] = {
{0, 0},{65568, 1},{65600, 2},{131104, 3},{0, 4}
};
static const ProtobufCEnumValueIndex core_ml__specification__array_feature_type__array_data_type__enum_values_by_name[4] =
{
  { "DOUBLE", 2 },
  { "FLOAT32", 1 },
  { "INT32", 3 },
  { "INVALID_ARRAY_DATA_TYPE", 0 },
};
const ProtobufCEnumDescriptor core_ml__specification__array_feature_type__array_data_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ArrayFeatureType.ArrayDataType",
  "ArrayDataType",
  "CoreML__Specification__ArrayFeatureType__ArrayDataType",
  "CoreML.Specification",
  4,
  core_ml__specification__array_feature_type__array_data_type__enum_values_by_number,
  4,
  core_ml__specification__array_feature_type__array_data_type__enum_values_by_name,
  4,
  core_ml__specification__array_feature_type__array_data_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor core_ml__specification__array_feature_type__field_descriptors[7] =
{
  {
    "shape",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(CoreML__Specification__ArrayFeatureType, n_shape),
    offsetof(CoreML__Specification__ArrayFeatureType, shape),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dataType",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__ArrayFeatureType, datatype),
    &core_ml__specification__array_feature_type__array_data_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "enumeratedShapes",
    21,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ArrayFeatureType, shape_flexibility_case),
    offsetof(CoreML__Specification__ArrayFeatureType, enumeratedshapes),
    &core_ml__specification__array_feature_type__enumerated_shapes__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "shapeRange",
    31,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__ArrayFeatureType, shape_flexibility_case),
    offsetof(CoreML__Specification__ArrayFeatureType, shaperange),
    &core_ml__specification__array_feature_type__shape_range__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "intDefaultValue",
    41,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    offsetof(CoreML__Specification__ArrayFeatureType, default_optional_value_case),
    offsetof(CoreML__Specification__ArrayFeatureType, intdefaultvalue),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "floatDefaultValue",
    51,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FLOAT,
    offsetof(CoreML__Specification__ArrayFeatureType, default_optional_value_case),
    offsetof(CoreML__Specification__ArrayFeatureType, floatdefaultvalue),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doubleDefaultValue",
    61,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(CoreML__Specification__ArrayFeatureType, default_optional_value_case),
    offsetof(CoreML__Specification__ArrayFeatureType, doubledefaultvalue),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__array_feature_type__field_indices_by_name[] = {
  1,   /* field[1] = dataType */
  6,   /* field[6] = doubleDefaultValue */
  2,   /* field[2] = enumeratedShapes */
  5,   /* field[5] = floatDefaultValue */
  4,   /* field[4] = intDefaultValue */
  0,   /* field[0] = shape */
  3,   /* field[3] = shapeRange */
};
static const ProtobufCIntRange core_ml__specification__array_feature_type__number_ranges[6 + 1] =
{
  { 1, 0 },
  { 21, 2 },
  { 31, 3 },
  { 41, 4 },
  { 51, 5 },
  { 61, 6 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor core_ml__specification__array_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.ArrayFeatureType",
  "ArrayFeatureType",
  "CoreML__Specification__ArrayFeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__ArrayFeatureType),
  7,
  core_ml__specification__array_feature_type__field_descriptors,
  core_ml__specification__array_feature_type__field_indices_by_name,
  6,  core_ml__specification__array_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__array_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__dictionary_feature_type__field_descriptors[2] =
{
  {
    "int64KeyType",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__DictionaryFeatureType, key_type_case),
    offsetof(CoreML__Specification__DictionaryFeatureType, int64keytype),
    &core_ml__specification__int64_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "stringKeyType",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__DictionaryFeatureType, key_type_case),
    offsetof(CoreML__Specification__DictionaryFeatureType, stringkeytype),
    &core_ml__specification__string_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__dictionary_feature_type__field_indices_by_name[] = {
  0,   /* field[0] = int64KeyType */
  1,   /* field[1] = stringKeyType */
};
static const ProtobufCIntRange core_ml__specification__dictionary_feature_type__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor core_ml__specification__dictionary_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.DictionaryFeatureType",
  "DictionaryFeatureType",
  "CoreML__Specification__DictionaryFeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__DictionaryFeatureType),
  2,
  core_ml__specification__dictionary_feature_type__field_descriptors,
  core_ml__specification__dictionary_feature_type__field_indices_by_name,
  1,  core_ml__specification__dictionary_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__dictionary_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__sequence_feature_type__field_descriptors[3] =
{
  {
    "int64Type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__SequenceFeatureType, type_case),
    offsetof(CoreML__Specification__SequenceFeatureType, int64type),
    &core_ml__specification__int64_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "stringType",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__SequenceFeatureType, type_case),
    offsetof(CoreML__Specification__SequenceFeatureType, stringtype),
    &core_ml__specification__string_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sizeRange",
    101,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__SequenceFeatureType, sizerange),
    &core_ml__specification__size_range__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__sequence_feature_type__field_indices_by_name[] = {
  0,   /* field[0] = int64Type */
  2,   /* field[2] = sizeRange */
  1,   /* field[1] = stringType */
};
static const ProtobufCIntRange core_ml__specification__sequence_feature_type__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 3, 1 },
  { 101, 2 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor core_ml__specification__sequence_feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.SequenceFeatureType",
  "SequenceFeatureType",
  "CoreML__Specification__SequenceFeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__SequenceFeatureType),
  3,
  core_ml__specification__sequence_feature_type__field_descriptors,
  core_ml__specification__sequence_feature_type__field_indices_by_name,
  3,  core_ml__specification__sequence_feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__sequence_feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor core_ml__specification__feature_type__field_descriptors[8] =
{
  {
    "int64Type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, int64type),
    &core_ml__specification__int64_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doubleType",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, doubletype),
    &core_ml__specification__double_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "stringType",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, stringtype),
    &core_ml__specification__string_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "imageType",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, imagetype),
    &core_ml__specification__image_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "multiArrayType",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, multiarraytype),
    &core_ml__specification__array_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dictionaryType",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, dictionarytype),
    &core_ml__specification__dictionary_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sequenceType",
    7,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(CoreML__Specification__FeatureType, type_case),
    offsetof(CoreML__Specification__FeatureType, sequencetype),
    &core_ml__specification__sequence_feature_type__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "isOptional",
    1000,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BOOL,
    0,   /* quantifier_offset */
    offsetof(CoreML__Specification__FeatureType, isoptional),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned core_ml__specification__feature_type__field_indices_by_name[] = {
  5,   /* field[5] = dictionaryType */
  1,   /* field[1] = doubleType */
  3,   /* field[3] = imageType */
  0,   /* field[0] = int64Type */
  7,   /* field[7] = isOptional */
  4,   /* field[4] = multiArrayType */
  6,   /* field[6] = sequenceType */
  2,   /* field[2] = stringType */
};
static const ProtobufCIntRange core_ml__specification__feature_type__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 1000, 7 },
  { 0, 8 }
};
const ProtobufCMessageDescriptor core_ml__specification__feature_type__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "CoreML.Specification.FeatureType",
  "FeatureType",
  "CoreML__Specification__FeatureType",
  "CoreML.Specification",
  sizeof(CoreML__Specification__FeatureType),
  8,
  core_ml__specification__feature_type__field_descriptors,
  core_ml__specification__feature_type__field_indices_by_name,
  2,  core_ml__specification__feature_type__number_ranges,
  (ProtobufCMessageInit) core_ml__specification__feature_type__init,
  NULL,NULL,NULL    /* reserved[123] */
};
