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

#ifndef PROTOBUF_C_modules_2fpb_5ftests_2fpb_5ftests_2eproto__INCLUDED
#define PROTOBUF_C_modules_2fpb_5ftests_2fpb_5ftests_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1000000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1003002 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif

#include "yara.pb-c.h"

typedef struct _Test__Struct Test__Struct;
typedef struct _Test__Struct__NestedStruct Test__Struct__NestedStruct;
typedef struct _Test__MapStruct Test__MapStruct;
typedef struct _Test__RootMessage Test__RootMessage;
typedef struct _Test__RootMessage__FMapInt32Entry Test__RootMessage__FMapInt32Entry;
typedef struct _Test__RootMessage__FMapBoolEntry Test__RootMessage__FMapBoolEntry;
typedef struct _Test__RootMessage__FMapStringEntry Test__RootMessage__FMapStringEntry;
typedef struct _Test__RootMessage__FMapFloatEntry Test__RootMessage__FMapFloatEntry;
typedef struct _Test__RootMessage__FMapStructEntry Test__RootMessage__FMapStructEntry;


/* --- enums --- */

typedef enum _Test__Struct__Enum {
  TEST__STRUCT__ENUM__FIRST = 0,
  TEST__STRUCT__ENUM__SECOND = 1
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(TEST__STRUCT__ENUM)
} Test__Struct__Enum;

/* --- messages --- */

struct  _Test__Struct__NestedStruct
{
  ProtobufCMessage base;
  protobuf_c_boolean has_f_int32;
  int32_t f_int32;
  char *f_string;
};
#define TEST__STRUCT__NESTED_STRUCT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__struct__nested_struct__descriptor) \
    , 0, 0, NULL }


struct  _Test__Struct
{
  ProtobufCMessage base;
  char *f_string;
  protobuf_c_boolean has_f_enum;
  Test__Struct__Enum f_enum;
  Test__Struct__NestedStruct *f_nested_struct;
  size_t n_f_nested_struct_array;
  Test__Struct__NestedStruct **f_nested_struct_array;
};
#define TEST__STRUCT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__struct__descriptor) \
    , NULL, 0, TEST__STRUCT__ENUM__FIRST, NULL, 0,NULL }


struct  _Test__MapStruct
{
  ProtobufCMessage base;
  protobuf_c_boolean has_f_int32;
  int32_t f_int32;
  protobuf_c_boolean has_f_int64;
  int64_t f_int64;
};
#define TEST__MAP_STRUCT__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__map_struct__descriptor) \
    , 0, 0, 0, 0 }


struct  _Test__RootMessage__FMapInt32Entry
{
  ProtobufCMessage base;
  char *key;
  protobuf_c_boolean has_value;
  int32_t value;
};
#define TEST__ROOT_MESSAGE__FMAP_INT32_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__root_message__fmap_int32_entry__descriptor) \
    , NULL, 0, 0 }


struct  _Test__RootMessage__FMapBoolEntry
{
  ProtobufCMessage base;
  char *key;
  protobuf_c_boolean has_value;
  protobuf_c_boolean value;
};
#define TEST__ROOT_MESSAGE__FMAP_BOOL_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__root_message__fmap_bool_entry__descriptor) \
    , NULL, 0, 0 }


struct  _Test__RootMessage__FMapStringEntry
{
  ProtobufCMessage base;
  char *key;
  char *value;
};
#define TEST__ROOT_MESSAGE__FMAP_STRING_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__root_message__fmap_string_entry__descriptor) \
    , NULL, NULL }


struct  _Test__RootMessage__FMapFloatEntry
{
  ProtobufCMessage base;
  char *key;
  protobuf_c_boolean has_value;
  float value;
};
#define TEST__ROOT_MESSAGE__FMAP_FLOAT_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__root_message__fmap_float_entry__descriptor) \
    , NULL, 0, 0 }


struct  _Test__RootMessage__FMapStructEntry
{
  ProtobufCMessage base;
  char *key;
  Test__MapStruct *value;
};
#define TEST__ROOT_MESSAGE__FMAP_STRUCT_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__root_message__fmap_struct_entry__descriptor) \
    , NULL, NULL }


typedef enum {
  TEST__ROOT_MESSAGE__F_ONEOF__NOT_SET = 0,
  TEST__ROOT_MESSAGE__F_ONEOF_F_ONEOF_STRING = 20,
  TEST__ROOT_MESSAGE__F_ONEOF_F_ONEOF_STRUCT = 21
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(TEST__ROOT_MESSAGE__F_ONEOF)
} Test__RootMessage__FOneofCase;

struct  _Test__RootMessage
{
  ProtobufCMessage base;
  protobuf_c_boolean has_f_int32;
  int32_t f_int32;
  protobuf_c_boolean has_f_int64;
  int64_t f_int64;
  /*
   *optional uint32 f_uint32 = 3;  // not supported
   *optional uint64 f_uint64 = 4;  // not supported
   */
  protobuf_c_boolean has_f_sint32;
  int32_t f_sint32;
  protobuf_c_boolean has_f_sint64;
  int64_t f_sint64;
  /*
   *optional fixed32 f_fixed32 = 7;  // not supported
   *optional fixed64 f_fixed64 = 8;  // not supported
   */
  protobuf_c_boolean has_f_sfixed32;
  int32_t f_sfixed32;
  protobuf_c_boolean has_f_sfixed64;
  int64_t f_sfixed64;
  protobuf_c_boolean has_f_bool;
  protobuf_c_boolean f_bool;
  char *f_string;
  protobuf_c_boolean has_f_bytes;
  ProtobufCBinaryData f_bytes;
  size_t n_f_struct_array;
  Test__Struct **f_struct_array;
  size_t n_f_map_int32;
  Test__RootMessage__FMapInt32Entry **f_map_int32;
  size_t n_f_map_bool;
  Test__RootMessage__FMapBoolEntry **f_map_bool;
  size_t n_f_map_string;
  Test__RootMessage__FMapStringEntry **f_map_string;
  size_t n_f_map_float;
  Test__RootMessage__FMapFloatEntry **f_map_float;
  size_t n_f_map_struct;
  Test__RootMessage__FMapStructEntry **f_map_struct;
  char *f_ignored;
  char *f_renamed;
  Test__RootMessage__FOneofCase f_oneof_case;
  union {
    char *f_oneof_string;
    Test__MapStruct *f_oneof_struct;
  };
};
#define TEST__ROOT_MESSAGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&test__root_message__descriptor) \
    , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, {0,NULL}, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, NULL, NULL, TEST__ROOT_MESSAGE__F_ONEOF__NOT_SET, {0} }


/* Test__Struct__NestedStruct methods */
void   test__struct__nested_struct__init
                     (Test__Struct__NestedStruct         *message);
/* Test__Struct methods */
void   test__struct__init
                     (Test__Struct         *message);
size_t test__struct__get_packed_size
                     (const Test__Struct   *message);
size_t test__struct__pack
                     (const Test__Struct   *message,
                      uint8_t             *out);
size_t test__struct__pack_to_buffer
                     (const Test__Struct   *message,
                      ProtobufCBuffer     *buffer);
Test__Struct *
       test__struct__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   test__struct__free_unpacked
                     (Test__Struct *message,
                      ProtobufCAllocator *allocator);
/* Test__MapStruct methods */
void   test__map_struct__init
                     (Test__MapStruct         *message);
size_t test__map_struct__get_packed_size
                     (const Test__MapStruct   *message);
size_t test__map_struct__pack
                     (const Test__MapStruct   *message,
                      uint8_t             *out);
size_t test__map_struct__pack_to_buffer
                     (const Test__MapStruct   *message,
                      ProtobufCBuffer     *buffer);
Test__MapStruct *
       test__map_struct__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   test__map_struct__free_unpacked
                     (Test__MapStruct *message,
                      ProtobufCAllocator *allocator);
/* Test__RootMessage__FMapInt32Entry methods */
void   test__root_message__fmap_int32_entry__init
                     (Test__RootMessage__FMapInt32Entry         *message);
/* Test__RootMessage__FMapBoolEntry methods */
void   test__root_message__fmap_bool_entry__init
                     (Test__RootMessage__FMapBoolEntry         *message);
/* Test__RootMessage__FMapStringEntry methods */
void   test__root_message__fmap_string_entry__init
                     (Test__RootMessage__FMapStringEntry         *message);
/* Test__RootMessage__FMapFloatEntry methods */
void   test__root_message__fmap_float_entry__init
                     (Test__RootMessage__FMapFloatEntry         *message);
/* Test__RootMessage__FMapStructEntry methods */
void   test__root_message__fmap_struct_entry__init
                     (Test__RootMessage__FMapStructEntry         *message);
/* Test__RootMessage methods */
void   test__root_message__init
                     (Test__RootMessage         *message);
size_t test__root_message__get_packed_size
                     (const Test__RootMessage   *message);
size_t test__root_message__pack
                     (const Test__RootMessage   *message,
                      uint8_t             *out);
size_t test__root_message__pack_to_buffer
                     (const Test__RootMessage   *message,
                      ProtobufCBuffer     *buffer);
Test__RootMessage *
       test__root_message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   test__root_message__free_unpacked
                     (Test__RootMessage *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Test__Struct__NestedStruct_Closure)
                 (const Test__Struct__NestedStruct *message,
                  void *closure_data);
typedef void (*Test__Struct_Closure)
                 (const Test__Struct *message,
                  void *closure_data);
typedef void (*Test__MapStruct_Closure)
                 (const Test__MapStruct *message,
                  void *closure_data);
typedef void (*Test__RootMessage__FMapInt32Entry_Closure)
                 (const Test__RootMessage__FMapInt32Entry *message,
                  void *closure_data);
typedef void (*Test__RootMessage__FMapBoolEntry_Closure)
                 (const Test__RootMessage__FMapBoolEntry *message,
                  void *closure_data);
typedef void (*Test__RootMessage__FMapStringEntry_Closure)
                 (const Test__RootMessage__FMapStringEntry *message,
                  void *closure_data);
typedef void (*Test__RootMessage__FMapFloatEntry_Closure)
                 (const Test__RootMessage__FMapFloatEntry *message,
                  void *closure_data);
typedef void (*Test__RootMessage__FMapStructEntry_Closure)
                 (const Test__RootMessage__FMapStructEntry *message,
                  void *closure_data);
typedef void (*Test__RootMessage_Closure)
                 (const Test__RootMessage *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor test__struct__descriptor;
extern const ProtobufCMessageDescriptor test__struct__nested_struct__descriptor;
extern const ProtobufCEnumDescriptor    test__struct__enum__descriptor;
extern const ProtobufCMessageDescriptor test__map_struct__descriptor;
extern const ProtobufCMessageDescriptor test__root_message__descriptor;
extern const ProtobufCMessageDescriptor test__root_message__fmap_int32_entry__descriptor;
extern const ProtobufCMessageDescriptor test__root_message__fmap_bool_entry__descriptor;
extern const ProtobufCMessageDescriptor test__root_message__fmap_string_entry__descriptor;
extern const ProtobufCMessageDescriptor test__root_message__fmap_float_entry__descriptor;
extern const ProtobufCMessageDescriptor test__root_message__fmap_struct_entry__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_modules_2fpb_5ftests_2fpb_5ftests_2eproto__INCLUDED */
