/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: ledger/rwset/kvrwset/kv_rwset.proto */

#ifndef PROTOBUF_C_ledger_2frwset_2fkvrwset_2fkv_5frwset_2eproto__INCLUDED
#define PROTOBUF_C_ledger_2frwset_2fkvrwset_2fkv_5frwset_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 1002001 < 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


typedef struct _Kvrwset__KVRWSet Kvrwset__KVRWSet;
typedef struct _Kvrwset__HashedRWSet Kvrwset__HashedRWSet;
typedef struct _Kvrwset__KVRead Kvrwset__KVRead;
typedef struct _Kvrwset__KVWrite Kvrwset__KVWrite;
typedef struct _Kvrwset__KVMetadataWrite Kvrwset__KVMetadataWrite;
typedef struct _Kvrwset__KVReadHash Kvrwset__KVReadHash;
typedef struct _Kvrwset__KVWriteHash Kvrwset__KVWriteHash;
typedef struct _Kvrwset__KVMetadataWriteHash Kvrwset__KVMetadataWriteHash;
typedef struct _Kvrwset__KVMetadataEntry Kvrwset__KVMetadataEntry;
typedef struct _Kvrwset__Version Kvrwset__Version;
typedef struct _Kvrwset__RangeQueryInfo Kvrwset__RangeQueryInfo;
typedef struct _Kvrwset__QueryReads Kvrwset__QueryReads;
typedef struct _Kvrwset__QueryReadsMerkleSummary Kvrwset__QueryReadsMerkleSummary;


/* --- enums --- */


/* --- messages --- */

/*
 * KVRWSet encapsulates the read-write set for a chaincode that operates upon a KV or Document data model
 * This structure is used for both the public data and the private data
 */
struct  _Kvrwset__KVRWSet
{
  ProtobufCMessage base;
  size_t n_reads;
  Kvrwset__KVRead **reads;
  size_t n_range_queries_info;
  Kvrwset__RangeQueryInfo **range_queries_info;
  size_t n_writes;
  Kvrwset__KVWrite **writes;
  size_t n_metadata_writes;
  Kvrwset__KVMetadataWrite **metadata_writes;
};
#define KVRWSET__KVRWSET__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvrwset__descriptor) \
    , 0,NULL, 0,NULL, 0,NULL, 0,NULL }


/*
 * HashedRWSet encapsulates hashed representation of a private read-write set for KV or Document data model
 */
struct  _Kvrwset__HashedRWSet
{
  ProtobufCMessage base;
  size_t n_hashed_reads;
  Kvrwset__KVReadHash **hashed_reads;
  size_t n_hashed_writes;
  Kvrwset__KVWriteHash **hashed_writes;
  size_t n_metadata_writes;
  Kvrwset__KVMetadataWriteHash **metadata_writes;
};
#define KVRWSET__HASHED_RWSET__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__hashed_rwset__descriptor) \
    , 0,NULL, 0,NULL, 0,NULL }


/*
 * KVRead captures a read operation performed during transaction simulation
 * A 'nil' version indicates a non-existing key read by the transaction
 */
struct  _Kvrwset__KVRead
{
  ProtobufCMessage base;
  char *key;
  Kvrwset__Version *version;
};
#define KVRWSET__KVREAD__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvread__descriptor) \
    , NULL, NULL }


/*
 * KVWrite captures a write (update/delete) operation performed during transaction simulation
 */
struct  _Kvrwset__KVWrite
{
  ProtobufCMessage base;
  char *key;
  protobuf_c_boolean has_is_delete;
  protobuf_c_boolean is_delete;
  protobuf_c_boolean has_value;
  ProtobufCBinaryData value;
};
#define KVRWSET__KVWRITE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvwrite__descriptor) \
    , NULL, 0,0, 0,{0,NULL} }


/*
 * KVMetadataWrite captures all the entries in the metadata associated with a key
 */
struct  _Kvrwset__KVMetadataWrite
{
  ProtobufCMessage base;
  char *key;
  size_t n_entries;
  Kvrwset__KVMetadataEntry **entries;
};
#define KVRWSET__KVMETADATA_WRITE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvmetadata_write__descriptor) \
    , NULL, 0,NULL }


/*
 * KVReadHash is similar to the KVRead in spirit. However, it captures the hash of the key instead of the key itself
 * version is kept as is for now. However, if the version also needs to be privacy-protected, it would need to be the
 * hash of the version and hence of 'bytes' type
 */
struct  _Kvrwset__KVReadHash
{
  ProtobufCMessage base;
  protobuf_c_boolean has_key_hash;
  ProtobufCBinaryData key_hash;
  Kvrwset__Version *version;
};
#define KVRWSET__KVREAD_HASH__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvread_hash__descriptor) \
    , 0,{0,NULL}, NULL }


/*
 * KVWriteHash is similar to the KVWrite. It captures a write (update/delete) operation performed during transaction simulation
 */
struct  _Kvrwset__KVWriteHash
{
  ProtobufCMessage base;
  protobuf_c_boolean has_key_hash;
  ProtobufCBinaryData key_hash;
  protobuf_c_boolean has_is_delete;
  protobuf_c_boolean is_delete;
  protobuf_c_boolean has_value_hash;
  ProtobufCBinaryData value_hash;
};
#define KVRWSET__KVWRITE_HASH__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvwrite_hash__descriptor) \
    , 0,{0,NULL}, 0,0, 0,{0,NULL} }


/*
 * KVMetadataWriteHash captures all the upserts to the metadata associated with a key hash
 */
struct  _Kvrwset__KVMetadataWriteHash
{
  ProtobufCMessage base;
  protobuf_c_boolean has_key_hash;
  ProtobufCBinaryData key_hash;
  size_t n_entries;
  Kvrwset__KVMetadataEntry **entries;
};
#define KVRWSET__KVMETADATA_WRITE_HASH__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvmetadata_write_hash__descriptor) \
    , 0,{0,NULL}, 0,NULL }


/*
 * KVMetadataEntry captures a 'name'ed entry in the metadata of a key/key-hash.
 */
struct  _Kvrwset__KVMetadataEntry
{
  ProtobufCMessage base;
  char *name;
  protobuf_c_boolean has_value;
  ProtobufCBinaryData value;
};
#define KVRWSET__KVMETADATA_ENTRY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__kvmetadata_entry__descriptor) \
    , NULL, 0,{0,NULL} }


/*
 * Version encapsulates the version of a Key
 * A version of a committed key is maintained as the height of the transaction that committed the key.
 * The height is represenetd as a tuple <blockNum, txNum> where the txNum is the position of the transaction
 * (starting with 0) within block
 */
struct  _Kvrwset__Version
{
  ProtobufCMessage base;
  protobuf_c_boolean has_block_num;
  uint64_t block_num;
  protobuf_c_boolean has_tx_num;
  uint64_t tx_num;
};
#define KVRWSET__VERSION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__version__descriptor) \
    , 0,0, 0,0 }


typedef enum {
  KVRWSET__RANGE_QUERY_INFO__READS_INFO__NOT_SET = 0,
  KVRWSET__RANGE_QUERY_INFO__READS_INFO_RAW_READS = 4,
  KVRWSET__RANGE_QUERY_INFO__READS_INFO_READS_MERKLE_HASHES = 5,
} Kvrwset__RangeQueryInfo__ReadsInfoCase;

/*
 * RangeQueryInfo encapsulates the details of a range query performed by a transaction during simulation.
 * This helps protect transactions from phantom reads by varifying during validation whether any new items
 * got committed within the given range between transaction simuation and validation
 * (in addition to regular checks for updates/deletes of the existing items).
 * readInfo field contains either the KVReads (for the items read by the range query) or a merkle-tree hash
 * if the KVReads exceeds a pre-configured numbers
 */
struct  _Kvrwset__RangeQueryInfo
{
  ProtobufCMessage base;
  char *start_key;
  char *end_key;
  protobuf_c_boolean has_itr_exhausted;
  protobuf_c_boolean itr_exhausted;
  Kvrwset__RangeQueryInfo__ReadsInfoCase reads_info_case;
  union {
    Kvrwset__QueryReads *raw_reads;
    Kvrwset__QueryReadsMerkleSummary *reads_merkle_hashes;
  };
};
#define KVRWSET__RANGE_QUERY_INFO__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__range_query_info__descriptor) \
    , NULL, NULL, 0,0, KVRWSET__RANGE_QUERY_INFO__READS_INFO__NOT_SET, {0} }


/*
 * QueryReads encapsulates the KVReads for the items read by a transaction as a result of a query execution
 */
struct  _Kvrwset__QueryReads
{
  ProtobufCMessage base;
  size_t n_kv_reads;
  Kvrwset__KVRead **kv_reads;
};
#define KVRWSET__QUERY_READS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__query_reads__descriptor) \
    , 0,NULL }


/*
 * QueryReadsMerkleSummary encapsulates the Merkle-tree hashes for the QueryReads
 * This allows to reduce the size of RWSet in the presence of query results
 * by storing certain hashes instead of actual results.
 * maxDegree field refers to the maximum number of children in the tree at any level
 * maxLevel field contains the lowest level which has lesser nodes than maxDegree (starting from leaf level)
 */
struct  _Kvrwset__QueryReadsMerkleSummary
{
  ProtobufCMessage base;
  protobuf_c_boolean has_max_degree;
  uint32_t max_degree;
  protobuf_c_boolean has_max_level;
  uint32_t max_level;
  size_t n_max_level_hashes;
  ProtobufCBinaryData *max_level_hashes;
};
#define KVRWSET__QUERY_READS_MERKLE_SUMMARY__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&kvrwset__query_reads_merkle_summary__descriptor) \
    , 0,0, 0,0, 0,NULL }


/* Kvrwset__KVRWSet methods */
void   kvrwset__kvrwset__init
                     (Kvrwset__KVRWSet         *message);
size_t kvrwset__kvrwset__get_packed_size
                     (const Kvrwset__KVRWSet   *message);
size_t kvrwset__kvrwset__pack
                     (const Kvrwset__KVRWSet   *message,
                      uint8_t             *out);
size_t kvrwset__kvrwset__pack_to_buffer
                     (const Kvrwset__KVRWSet   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVRWSet *
       kvrwset__kvrwset__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvrwset__free_unpacked
                     (Kvrwset__KVRWSet *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__HashedRWSet methods */
void   kvrwset__hashed_rwset__init
                     (Kvrwset__HashedRWSet         *message);
size_t kvrwset__hashed_rwset__get_packed_size
                     (const Kvrwset__HashedRWSet   *message);
size_t kvrwset__hashed_rwset__pack
                     (const Kvrwset__HashedRWSet   *message,
                      uint8_t             *out);
size_t kvrwset__hashed_rwset__pack_to_buffer
                     (const Kvrwset__HashedRWSet   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__HashedRWSet *
       kvrwset__hashed_rwset__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__hashed_rwset__free_unpacked
                     (Kvrwset__HashedRWSet *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVRead methods */
void   kvrwset__kvread__init
                     (Kvrwset__KVRead         *message);
size_t kvrwset__kvread__get_packed_size
                     (const Kvrwset__KVRead   *message);
size_t kvrwset__kvread__pack
                     (const Kvrwset__KVRead   *message,
                      uint8_t             *out);
size_t kvrwset__kvread__pack_to_buffer
                     (const Kvrwset__KVRead   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVRead *
       kvrwset__kvread__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvread__free_unpacked
                     (Kvrwset__KVRead *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVWrite methods */
void   kvrwset__kvwrite__init
                     (Kvrwset__KVWrite         *message);
size_t kvrwset__kvwrite__get_packed_size
                     (const Kvrwset__KVWrite   *message);
size_t kvrwset__kvwrite__pack
                     (const Kvrwset__KVWrite   *message,
                      uint8_t             *out);
size_t kvrwset__kvwrite__pack_to_buffer
                     (const Kvrwset__KVWrite   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVWrite *
       kvrwset__kvwrite__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvwrite__free_unpacked
                     (Kvrwset__KVWrite *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVMetadataWrite methods */
void   kvrwset__kvmetadata_write__init
                     (Kvrwset__KVMetadataWrite         *message);
size_t kvrwset__kvmetadata_write__get_packed_size
                     (const Kvrwset__KVMetadataWrite   *message);
size_t kvrwset__kvmetadata_write__pack
                     (const Kvrwset__KVMetadataWrite   *message,
                      uint8_t             *out);
size_t kvrwset__kvmetadata_write__pack_to_buffer
                     (const Kvrwset__KVMetadataWrite   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVMetadataWrite *
       kvrwset__kvmetadata_write__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvmetadata_write__free_unpacked
                     (Kvrwset__KVMetadataWrite *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVReadHash methods */
void   kvrwset__kvread_hash__init
                     (Kvrwset__KVReadHash         *message);
size_t kvrwset__kvread_hash__get_packed_size
                     (const Kvrwset__KVReadHash   *message);
size_t kvrwset__kvread_hash__pack
                     (const Kvrwset__KVReadHash   *message,
                      uint8_t             *out);
size_t kvrwset__kvread_hash__pack_to_buffer
                     (const Kvrwset__KVReadHash   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVReadHash *
       kvrwset__kvread_hash__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvread_hash__free_unpacked
                     (Kvrwset__KVReadHash *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVWriteHash methods */
void   kvrwset__kvwrite_hash__init
                     (Kvrwset__KVWriteHash         *message);
size_t kvrwset__kvwrite_hash__get_packed_size
                     (const Kvrwset__KVWriteHash   *message);
size_t kvrwset__kvwrite_hash__pack
                     (const Kvrwset__KVWriteHash   *message,
                      uint8_t             *out);
size_t kvrwset__kvwrite_hash__pack_to_buffer
                     (const Kvrwset__KVWriteHash   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVWriteHash *
       kvrwset__kvwrite_hash__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvwrite_hash__free_unpacked
                     (Kvrwset__KVWriteHash *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVMetadataWriteHash methods */
void   kvrwset__kvmetadata_write_hash__init
                     (Kvrwset__KVMetadataWriteHash         *message);
size_t kvrwset__kvmetadata_write_hash__get_packed_size
                     (const Kvrwset__KVMetadataWriteHash   *message);
size_t kvrwset__kvmetadata_write_hash__pack
                     (const Kvrwset__KVMetadataWriteHash   *message,
                      uint8_t             *out);
size_t kvrwset__kvmetadata_write_hash__pack_to_buffer
                     (const Kvrwset__KVMetadataWriteHash   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVMetadataWriteHash *
       kvrwset__kvmetadata_write_hash__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvmetadata_write_hash__free_unpacked
                     (Kvrwset__KVMetadataWriteHash *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__KVMetadataEntry methods */
void   kvrwset__kvmetadata_entry__init
                     (Kvrwset__KVMetadataEntry         *message);
size_t kvrwset__kvmetadata_entry__get_packed_size
                     (const Kvrwset__KVMetadataEntry   *message);
size_t kvrwset__kvmetadata_entry__pack
                     (const Kvrwset__KVMetadataEntry   *message,
                      uint8_t             *out);
size_t kvrwset__kvmetadata_entry__pack_to_buffer
                     (const Kvrwset__KVMetadataEntry   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__KVMetadataEntry *
       kvrwset__kvmetadata_entry__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__kvmetadata_entry__free_unpacked
                     (Kvrwset__KVMetadataEntry *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__Version methods */
void   kvrwset__version__init
                     (Kvrwset__Version         *message);
size_t kvrwset__version__get_packed_size
                     (const Kvrwset__Version   *message);
size_t kvrwset__version__pack
                     (const Kvrwset__Version   *message,
                      uint8_t             *out);
size_t kvrwset__version__pack_to_buffer
                     (const Kvrwset__Version   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__Version *
       kvrwset__version__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__version__free_unpacked
                     (Kvrwset__Version *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__RangeQueryInfo methods */
void   kvrwset__range_query_info__init
                     (Kvrwset__RangeQueryInfo         *message);
size_t kvrwset__range_query_info__get_packed_size
                     (const Kvrwset__RangeQueryInfo   *message);
size_t kvrwset__range_query_info__pack
                     (const Kvrwset__RangeQueryInfo   *message,
                      uint8_t             *out);
size_t kvrwset__range_query_info__pack_to_buffer
                     (const Kvrwset__RangeQueryInfo   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__RangeQueryInfo *
       kvrwset__range_query_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__range_query_info__free_unpacked
                     (Kvrwset__RangeQueryInfo *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__QueryReads methods */
void   kvrwset__query_reads__init
                     (Kvrwset__QueryReads         *message);
size_t kvrwset__query_reads__get_packed_size
                     (const Kvrwset__QueryReads   *message);
size_t kvrwset__query_reads__pack
                     (const Kvrwset__QueryReads   *message,
                      uint8_t             *out);
size_t kvrwset__query_reads__pack_to_buffer
                     (const Kvrwset__QueryReads   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__QueryReads *
       kvrwset__query_reads__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__query_reads__free_unpacked
                     (Kvrwset__QueryReads *message,
                      ProtobufCAllocator *allocator);
/* Kvrwset__QueryReadsMerkleSummary methods */
void   kvrwset__query_reads_merkle_summary__init
                     (Kvrwset__QueryReadsMerkleSummary         *message);
size_t kvrwset__query_reads_merkle_summary__get_packed_size
                     (const Kvrwset__QueryReadsMerkleSummary   *message);
size_t kvrwset__query_reads_merkle_summary__pack
                     (const Kvrwset__QueryReadsMerkleSummary   *message,
                      uint8_t             *out);
size_t kvrwset__query_reads_merkle_summary__pack_to_buffer
                     (const Kvrwset__QueryReadsMerkleSummary   *message,
                      ProtobufCBuffer     *buffer);
Kvrwset__QueryReadsMerkleSummary *
       kvrwset__query_reads_merkle_summary__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   kvrwset__query_reads_merkle_summary__free_unpacked
                     (Kvrwset__QueryReadsMerkleSummary *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Kvrwset__KVRWSet_Closure)
                 (const Kvrwset__KVRWSet *message,
                  void *closure_data);
typedef void (*Kvrwset__HashedRWSet_Closure)
                 (const Kvrwset__HashedRWSet *message,
                  void *closure_data);
typedef void (*Kvrwset__KVRead_Closure)
                 (const Kvrwset__KVRead *message,
                  void *closure_data);
typedef void (*Kvrwset__KVWrite_Closure)
                 (const Kvrwset__KVWrite *message,
                  void *closure_data);
typedef void (*Kvrwset__KVMetadataWrite_Closure)
                 (const Kvrwset__KVMetadataWrite *message,
                  void *closure_data);
typedef void (*Kvrwset__KVReadHash_Closure)
                 (const Kvrwset__KVReadHash *message,
                  void *closure_data);
typedef void (*Kvrwset__KVWriteHash_Closure)
                 (const Kvrwset__KVWriteHash *message,
                  void *closure_data);
typedef void (*Kvrwset__KVMetadataWriteHash_Closure)
                 (const Kvrwset__KVMetadataWriteHash *message,
                  void *closure_data);
typedef void (*Kvrwset__KVMetadataEntry_Closure)
                 (const Kvrwset__KVMetadataEntry *message,
                  void *closure_data);
typedef void (*Kvrwset__Version_Closure)
                 (const Kvrwset__Version *message,
                  void *closure_data);
typedef void (*Kvrwset__RangeQueryInfo_Closure)
                 (const Kvrwset__RangeQueryInfo *message,
                  void *closure_data);
typedef void (*Kvrwset__QueryReads_Closure)
                 (const Kvrwset__QueryReads *message,
                  void *closure_data);
typedef void (*Kvrwset__QueryReadsMerkleSummary_Closure)
                 (const Kvrwset__QueryReadsMerkleSummary *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor kvrwset__kvrwset__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__hashed_rwset__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvread__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvwrite__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvmetadata_write__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvread_hash__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvwrite_hash__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvmetadata_write_hash__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__kvmetadata_entry__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__version__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__range_query_info__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__query_reads__descriptor;
extern const ProtobufCMessageDescriptor kvrwset__query_reads_merkle_summary__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_ledger_2frwset_2fkvrwset_2fkv_5frwset_2eproto__INCLUDED */
