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

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

#include "geobuf.pb-c.h"
void   data__feature__init
                     (Data__Feature         *message)
{
  static const Data__Feature init_value = DATA__FEATURE__INIT;
  *message = init_value;
}
void   data__geometry__init
                     (Data__Geometry         *message)
{
  static const Data__Geometry init_value = DATA__GEOMETRY__INIT;
  *message = init_value;
}
void   data__feature_collection__init
                     (Data__FeatureCollection         *message)
{
  static const Data__FeatureCollection init_value = DATA__FEATURE_COLLECTION__INIT;
  *message = init_value;
}
void   data__value__init
                     (Data__Value         *message)
{
  static const Data__Value init_value = DATA__VALUE__INIT;
  *message = init_value;
}
void   data__init
                     (Data         *message)
{
  static const Data init_value = DATA__INIT;
  *message = init_value;
}
size_t data__get_packed_size
                     (const Data *message)
{
  assert(message->base.descriptor == &data__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t data__pack
                     (const Data *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &data__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t data__pack_to_buffer
                     (const Data *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &data__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Data *
       data__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Data *)
     protobuf_c_message_unpack (&data__descriptor,
                                allocator, len, data);
}
void   data__free_unpacked
                     (Data *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &data__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor data__feature__field_descriptors[6] =
{
  {
    "geometry",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Data__Feature, geometry),
    &data__geometry__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "id",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Data__Feature, id_type_case),
    offsetof(Data__Feature, id),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "int_id",
    12,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT64,
    offsetof(Data__Feature, id_type_case),
    offsetof(Data__Feature, int_id),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "values",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data__Feature, n_values),
    offsetof(Data__Feature, values),
    &data__value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "properties",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data__Feature, n_properties),
    offsetof(Data__Feature, properties),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "custom_properties",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data__Feature, n_custom_properties),
    offsetof(Data__Feature, custom_properties),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned data__feature__field_indices_by_name[] = {
  5,   /* field[5] = custom_properties */
  0,   /* field[0] = geometry */
  1,   /* field[1] = id */
  2,   /* field[2] = int_id */
  4,   /* field[4] = properties */
  3,   /* field[3] = values */
};
static const ProtobufCIntRange data__feature__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 11, 1 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor data__feature__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Data.Feature",
  "Feature",
  "Data__Feature",
  "",
  sizeof(Data__Feature),
  6,
  data__feature__field_descriptors,
  data__feature__field_indices_by_name,
  2,  data__feature__number_ranges,
  (ProtobufCMessageInit) data__feature__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue data__geometry__type__enum_values_by_number[7] =
{
  { "POINT", "DATA__GEOMETRY__TYPE__POINT", 0 },
  { "MULTIPOINT", "DATA__GEOMETRY__TYPE__MULTIPOINT", 1 },
  { "LINESTRING", "DATA__GEOMETRY__TYPE__LINESTRING", 2 },
  { "MULTILINESTRING", "DATA__GEOMETRY__TYPE__MULTILINESTRING", 3 },
  { "POLYGON", "DATA__GEOMETRY__TYPE__POLYGON", 4 },
  { "MULTIPOLYGON", "DATA__GEOMETRY__TYPE__MULTIPOLYGON", 5 },
  { "GEOMETRYCOLLECTION", "DATA__GEOMETRY__TYPE__GEOMETRYCOLLECTION", 6 },
};
static const ProtobufCIntRange data__geometry__type__value_ranges[] = {
{0, 0},{0, 7}
};
static const ProtobufCEnumValueIndex data__geometry__type__enum_values_by_name[7] =
{
  { "GEOMETRYCOLLECTION", 6 },
  { "LINESTRING", 2 },
  { "MULTILINESTRING", 3 },
  { "MULTIPOINT", 1 },
  { "MULTIPOLYGON", 5 },
  { "POINT", 0 },
  { "POLYGON", 4 },
};
const ProtobufCEnumDescriptor data__geometry__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Data.Geometry.Type",
  "Type",
  "Data__Geometry__Type",
  "",
  7,
  data__geometry__type__enum_values_by_number,
  7,
  data__geometry__type__enum_values_by_name,
  1,
  data__geometry__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor data__geometry__field_descriptors[6] =
{
  {
    "type",
    1,
    PROTOBUF_C_LABEL_REQUIRED,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Data__Geometry, type),
    &data__geometry__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "lengths",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data__Geometry, n_lengths),
    offsetof(Data__Geometry, lengths),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "coords",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_SINT64,
    offsetof(Data__Geometry, n_coords),
    offsetof(Data__Geometry, coords),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "geometries",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data__Geometry, n_geometries),
    offsetof(Data__Geometry, geometries),
    &data__geometry__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "values",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data__Geometry, n_values),
    offsetof(Data__Geometry, values),
    &data__value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "custom_properties",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data__Geometry, n_custom_properties),
    offsetof(Data__Geometry, custom_properties),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned data__geometry__field_indices_by_name[] = {
  2,   /* field[2] = coords */
  5,   /* field[5] = custom_properties */
  3,   /* field[3] = geometries */
  1,   /* field[1] = lengths */
  0,   /* field[0] = type */
  4,   /* field[4] = values */
};
static const ProtobufCIntRange data__geometry__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 13, 4 },
  { 15, 5 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor data__geometry__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Data.Geometry",
  "Geometry",
  "Data__Geometry",
  "",
  sizeof(Data__Geometry),
  6,
  data__geometry__field_descriptors,
  data__geometry__field_indices_by_name,
  3,  data__geometry__number_ranges,
  (ProtobufCMessageInit) data__geometry__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor data__feature_collection__field_descriptors[3] =
{
  {
    "features",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data__FeatureCollection, n_features),
    offsetof(Data__FeatureCollection, features),
    &data__feature__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "values",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data__FeatureCollection, n_values),
    offsetof(Data__FeatureCollection, values),
    &data__value__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "custom_properties",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data__FeatureCollection, n_custom_properties),
    offsetof(Data__FeatureCollection, custom_properties),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned data__feature_collection__field_indices_by_name[] = {
  2,   /* field[2] = custom_properties */
  0,   /* field[0] = features */
  1,   /* field[1] = values */
};
static const ProtobufCIntRange data__feature_collection__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 13, 1 },
  { 15, 2 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor data__feature_collection__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Data.FeatureCollection",
  "FeatureCollection",
  "Data__FeatureCollection",
  "",
  sizeof(Data__FeatureCollection),
  3,
  data__feature_collection__field_descriptors,
  data__feature_collection__field_indices_by_name,
  3,  data__feature_collection__number_ranges,
  (ProtobufCMessageInit) data__feature_collection__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor data__value__field_descriptors[6] =
{
  {
    "string_value",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Data__Value, value_type_case),
    offsetof(Data__Value, string_value),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "double_value",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Data__Value, value_type_case),
    offsetof(Data__Value, double_value),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "pos_int_value",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Data__Value, value_type_case),
    offsetof(Data__Value, pos_int_value),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "neg_int_value",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Data__Value, value_type_case),
    offsetof(Data__Value, neg_int_value),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "bool_value",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Data__Value, value_type_case),
    offsetof(Data__Value, bool_value),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "json_value",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Data__Value, value_type_case),
    offsetof(Data__Value, json_value),
    NULL,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned data__value__field_indices_by_name[] = {
  4,   /* field[4] = bool_value */
  1,   /* field[1] = double_value */
  5,   /* field[5] = json_value */
  3,   /* field[3] = neg_int_value */
  2,   /* field[2] = pos_int_value */
  0,   /* field[0] = string_value */
};
static const ProtobufCIntRange data__value__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor data__value__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Data.Value",
  "Value",
  "Data__Value",
  "",
  sizeof(Data__Value),
  6,
  data__value__field_descriptors,
  data__value__field_indices_by_name,
  1,  data__value__number_ranges,
  (ProtobufCMessageInit) data__value__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const uint32_t data__dimensions__default_value = 2u;
static const uint32_t data__precision__default_value = 6u;
static const ProtobufCFieldDescriptor data__field_descriptors[6] =
{
  {
    "keys",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Data, n_keys),
    offsetof(Data, keys),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dimensions",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data, has_dimensions),
    offsetof(Data, dimensions),
    NULL,
    &data__dimensions__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "precision",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Data, has_precision),
    offsetof(Data, precision),
    NULL,
    &data__precision__default_value,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "feature_collection",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data, data_type_case),
    offsetof(Data, feature_collection),
    &data__feature_collection__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "feature",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data, data_type_case),
    offsetof(Data, feature),
    &data__feature__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "geometry",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Data, data_type_case),
    offsetof(Data, geometry),
    &data__geometry__descriptor,
    NULL,
    PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned data__field_indices_by_name[] = {
  1,   /* field[1] = dimensions */
  4,   /* field[4] = feature */
  3,   /* field[3] = feature_collection */
  5,   /* field[5] = geometry */
  0,   /* field[0] = keys */
  2,   /* field[2] = precision */
};
static const ProtobufCIntRange data__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor data__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Data",
  "Data",
  "Data",
  "",
  sizeof(Data),
  6,
  data__field_descriptors,
  data__field_indices_by_name,
  1,  data__number_ranges,
  (ProtobufCMessageInit) data__init,
  NULL,NULL,NULL    /* reserved[123] */
};
