text: /* Generated by the protocol buffer compiler.  DO NOT EDIT! */
  /* Generated from: framework.proto */
  
  #ifndef PROTOBUF_C_framework_2eproto__INCLUDED
  #define PROTOBUF_C_framework_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 1003001 < 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 _PaddleMobile__Framework__Proto__Version
      PaddleMobile__Framework__Proto__Version;
  typedef struct _PaddleMobile__Framework__Proto__OpDesc
      PaddleMobile__Framework__Proto__OpDesc;
  typedef struct _PaddleMobile__Framework__Proto__OpDesc__Attr
      PaddleMobile__Framework__Proto__OpDesc__Attr;
  typedef struct _PaddleMobile__Framework__Proto__OpDesc__Var
      PaddleMobile__Framework__Proto__OpDesc__Var;
  typedef struct _PaddleMobile__Framework__Proto__OpProto
      PaddleMobile__Framework__Proto__OpProto;
  typedef struct _PaddleMobile__Framework__Proto__OpProto__Var
      PaddleMobile__Framework__Proto__OpProto__Var;
  typedef struct _PaddleMobile__Framework__Proto__OpProto__Attr
      PaddleMobile__Framework__Proto__OpProto__Attr;
  typedef struct _PaddleMobile__Framework__Proto__VarType
      PaddleMobile__Framework__Proto__VarType;
  typedef struct _PaddleMobile__Framework__Proto__VarType__TensorDesc
      PaddleMobile__Framework__Proto__VarType__TensorDesc;
  typedef struct _PaddleMobile__Framework__Proto__VarType__LoDTensorDesc
      PaddleMobile__Framework__Proto__VarType__LoDTensorDesc;
  typedef struct _PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc
      PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc;
  typedef struct _PaddleMobile__Framework__Proto__VarType__ReaderDesc
      PaddleMobile__Framework__Proto__VarType__ReaderDesc;
  typedef struct _PaddleMobile__Framework__Proto__VarType__ChannelDesc
      PaddleMobile__Framework__Proto__VarType__ChannelDesc;
  typedef struct _PaddleMobile__Framework__Proto__VarType__Tuple
      PaddleMobile__Framework__Proto__VarType__Tuple;
  typedef struct _PaddleMobile__Framework__Proto__VarDesc
      PaddleMobile__Framework__Proto__VarDesc;
  typedef struct _PaddleMobile__Framework__Proto__BlockDesc
      PaddleMobile__Framework__Proto__BlockDesc;
  typedef struct _PaddleMobile__Framework__Proto__ProgramDesc
      PaddleMobile__Framework__Proto__ProgramDesc;
  
  /* --- enums --- */
  
  typedef enum _PaddleMobile__Framework__Proto__VarType__Type {
    /*
     * Pod Types
     */
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL = 0,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT16 = 1,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT32 = 2,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT64 = 3,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP16 = 4,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP32 = 5,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FP64 = 6,
    /*
     * Tensor<size_t> is used in C++.
     */
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__SIZE_T = 19,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__UINT8 = 20,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__INT8 = 21,
    /*
     * Other types that may need additional descriptions
     */
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_TENSOR = 7,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__SELECTED_ROWS = 8,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FEED_MINIBATCH = 9,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__FETCH_LIST = 10,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__STEP_SCOPES = 11,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_RANK_TABLE = 12,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__LOD_TENSOR_ARRAY = 13,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__PLACE_LIST = 14,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__READER = 15,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__CHANNEL = 16,
    /*
     * Any runtime decided variable type is raw
     * raw variables should manage their own allocations
     * in operators like nccl_op
     */
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__RAW = 17,
    PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__TUPLE =
        18 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(
            PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE)
  } PaddleMobile__Framework__Proto__VarType__Type;
  typedef enum _PaddleMobile__Framework__Proto__AttrType {
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT = 0,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__FLOAT = 1,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__STRING = 2,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INTS = 3,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__FLOATS = 4,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__STRINGS = 5,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BOOLEAN = 6,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BOOLEANS = 7,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BLOCK = 8,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__LONG = 9,
    PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__BLOCKS =
        10 PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(
            PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE)
  } PaddleMobile__Framework__Proto__AttrType;
  
  /* --- messages --- */
  
  /*
   * Any incompatible changes to ProgramDesc and its dependencies should
   * raise the version defined version.h.
   * Serailization and Deserialization codes should be modified in a way
   * that supports old versions following the version and compatibility policy.
   */
  struct _PaddleMobile__Framework__Proto__Version {
    ProtobufCMessage base;
    protobuf_c_boolean has_version;
    int64_t version;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VERSION__INIT         \
    {                                                            \
      PROTOBUF_C_MESSAGE_INIT(                                   \
          &paddle_mobile__framework__proto__version__descriptor) \
      , 0, 0ll                                                   \
    }
  
  struct _PaddleMobile__Framework__Proto__OpDesc__Attr {
    ProtobufCMessage base;
    char *name;
    PaddleMobile__Framework__Proto__AttrType type;
    protobuf_c_boolean has_i;
    int32_t i;
    protobuf_c_boolean has_f;
    float f;
    char *s;
    size_t n_ints;
    int32_t *ints;
    size_t n_floats;
    float *floats;
    size_t n_strings;
    char **strings;
    protobuf_c_boolean has_b;
    protobuf_c_boolean b;
    size_t n_bools;
    protobuf_c_boolean *bools;
    protobuf_c_boolean has_block_idx;
    int32_t block_idx;
    protobuf_c_boolean has_l;
    int64_t l;
    size_t n_blocks_idx;
    int32_t *blocks_idx;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__ATTR__INIT                   \
    {                                                                            \
      PROTOBUF_C_MESSAGE_INIT(                                                   \
          &paddle_mobile__framework__proto__op_desc__attr__descriptor)           \
      , NULL, PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT, 0, 0, 0, 0, NULL, \
          0, NULL, 0, NULL, 0, NULL, 0, 0, 0, NULL, 0, 0, 0, 0, 0, NULL          \
    }
  
  struct _PaddleMobile__Framework__Proto__OpDesc__Var {
    ProtobufCMessage base;
    char *parameter;
    size_t n_arguments;
    char **arguments;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__VAR__INIT         \
    {                                                                 \
      PROTOBUF_C_MESSAGE_INIT(                                        \
          &paddle_mobile__framework__proto__op_desc__var__descriptor) \
      , NULL, 0, NULL                                                 \
    }
  
  /*
   * OpDesc describes an instance of a C++ framework::OperatorBase
   * derived class type.
   */
  struct _PaddleMobile__Framework__Proto__OpDesc {
    ProtobufCMessage base;
    char *type;
    size_t n_inputs;
    PaddleMobile__Framework__Proto__OpDesc__Var **inputs;
    size_t n_outputs;
    PaddleMobile__Framework__Proto__OpDesc__Var **outputs;
    size_t n_attrs;
    PaddleMobile__Framework__Proto__OpDesc__Attr **attrs;
    protobuf_c_boolean has_is_target;
    protobuf_c_boolean is_target;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_DESC__INIT         \
    {                                                            \
      PROTOBUF_C_MESSAGE_INIT(                                   \
          &paddle_mobile__framework__proto__op_desc__descriptor) \
      , NULL, 0, NULL, 0, NULL, 0, NULL, 0, 0                    \
    }
  
  /*
   * VarProto describes the C++ type framework::Variable.
   */
  struct _PaddleMobile__Framework__Proto__OpProto__Var {
    ProtobufCMessage base;
    char *name;
    char *comment;
    protobuf_c_boolean has_duplicable;
    protobuf_c_boolean duplicable;
    protobuf_c_boolean has_intermediate;
    protobuf_c_boolean intermediate;
    protobuf_c_boolean has_dispensable;
    protobuf_c_boolean dispensable;
    char *reuse;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__VAR__INIT         \
    {                                                                  \
      PROTOBUF_C_MESSAGE_INIT(                                         \
          &paddle_mobile__framework__proto__op_proto__var__descriptor) \
      , NULL, NULL, 0, 0, 0, 0, 0, 0, NULL                             \
    }
  
  /*
   * AttrProto describes the C++ type Attribute.
   */
  struct _PaddleMobile__Framework__Proto__OpProto__Attr {
    ProtobufCMessage base;
    char *name;
    PaddleMobile__Framework__Proto__AttrType type;
    char *comment;
    /*
     * If that attribute is generated, it means the Paddle third
     * language binding has responsibility to fill that
     * attribute. End-User should not set that attribute.
     */
    protobuf_c_boolean has_generated;
    protobuf_c_boolean generated;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__ATTR__INIT           \
    {                                                                     \
      PROTOBUF_C_MESSAGE_INIT(                                            \
          &paddle_mobile__framework__proto__op_proto__attr__descriptor)   \
      , NULL, PADDLE_MOBILE__FRAMEWORK__PROTO__ATTR_TYPE__INT, NULL, 0, 0 \
    }
  
  /*
   * OpProto describes a C++ framework::OperatorBase derived class.
   */
  struct _PaddleMobile__Framework__Proto__OpProto {
    ProtobufCMessage base;
    char *type;
    size_t n_inputs;
    PaddleMobile__Framework__Proto__OpProto__Var **inputs;
    size_t n_outputs;
    PaddleMobile__Framework__Proto__OpProto__Var **outputs;
    size_t n_attrs;
    PaddleMobile__Framework__Proto__OpProto__Attr **attrs;
    char *comment;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__OP_PROTO__INIT         \
    {                                                             \
      PROTOBUF_C_MESSAGE_INIT(                                    \
          &paddle_mobile__framework__proto__op_proto__descriptor) \
      , NULL, 0, NULL, 0, NULL, 0, NULL, NULL                     \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType__TensorDesc {
    ProtobufCMessage base;
    /*
     * Should only be PODType. Is enforced in C++
     */
    PaddleMobile__Framework__Proto__VarType__Type data_type;
    /*
     * [UNK, 640, 480] is saved as [-1, 640, 480]
     */
    size_t n_dims;
    int64_t *dims;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TENSOR_DESC__INIT         \
    {                                                                          \
      PROTOBUF_C_MESSAGE_INIT(                                                 \
          &paddle_mobile__framework__proto__var_type__tensor_desc__descriptor) \
      , PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL, 0, NULL         \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType__LoDTensorDesc {
    ProtobufCMessage base;
    PaddleMobile__Framework__Proto__VarType__TensorDesc *tensor;
    protobuf_c_boolean has_lod_level;
    int32_t lod_level;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__LO_DTENSOR_DESC__INIT         \
    {                                                                              \
      PROTOBUF_C_MESSAGE_INIT(                                                     \
          &paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor) \
      , NULL, 0, 0                                                                 \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc {
    ProtobufCMessage base;
    PaddleMobile__Framework__Proto__VarType__TensorDesc *tensor;
    protobuf_c_boolean has_lod_level;
    int32_t lod_level;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__LO_DTENSOR_ARRAY_DESC__INIT         \
    {                                                                                    \
      PROTOBUF_C_MESSAGE_INIT(                                                           \
          &paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__descriptor) \
      , NULL, 0, 0                                                                       \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType__ReaderDesc {
    ProtobufCMessage base;
    size_t n_lod_tensor;
    PaddleMobile__Framework__Proto__VarType__LoDTensorDesc **lod_tensor;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__READER_DESC__INIT         \
    {                                                                          \
      PROTOBUF_C_MESSAGE_INIT(                                                 \
          &paddle_mobile__framework__proto__var_type__reader_desc__descriptor) \
      , 0, NULL                                                                \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType__ChannelDesc {
    ProtobufCMessage base;
    PaddleMobile__Framework__Proto__VarType__Type data_type;
    int64_t capacity;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__CHANNEL_DESC__INIT         \
    {                                                                           \
      PROTOBUF_C_MESSAGE_INIT(                                                  \
          &paddle_mobile__framework__proto__var_type__channel_desc__descriptor) \
      , PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL, 0                \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType__Tuple {
    ProtobufCMessage base;
    size_t n_element_type;
    PaddleMobile__Framework__Proto__VarType__Type *element_type;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TUPLE__INIT         \
    {                                                                    \
      PROTOBUF_C_MESSAGE_INIT(                                           \
          &paddle_mobile__framework__proto__var_type__tuple__descriptor) \
      , 0, NULL                                                          \
    }
  
  struct _PaddleMobile__Framework__Proto__VarType {
    ProtobufCMessage base;
    PaddleMobile__Framework__Proto__VarType__Type type;
    PaddleMobile__Framework__Proto__VarType__TensorDesc *selected_rows;
    PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *lod_tensor;
    PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *tensor_array;
    PaddleMobile__Framework__Proto__VarType__ReaderDesc *reader;
    PaddleMobile__Framework__Proto__VarType__ChannelDesc *channel;
    PaddleMobile__Framework__Proto__VarType__Tuple *tuple;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__INIT                        \
    {                                                                            \
      PROTOBUF_C_MESSAGE_INIT(                                                   \
          &paddle_mobile__framework__proto__var_type__descriptor)                \
      , PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_TYPE__TYPE__BOOL, NULL, NULL, NULL, \
          NULL, NULL, NULL                                                       \
    }
  
  struct _PaddleMobile__Framework__Proto__VarDesc {
    ProtobufCMessage base;
    char *name;
    PaddleMobile__Framework__Proto__VarType *type;
    protobuf_c_boolean has_persistable;
    protobuf_c_boolean persistable;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__VAR_DESC__INIT         \
    {                                                             \
      PROTOBUF_C_MESSAGE_INIT(                                    \
          &paddle_mobile__framework__proto__var_desc__descriptor) \
      , NULL, NULL, 0, 0                                          \
    }
  
  struct _PaddleMobile__Framework__Proto__BlockDesc {
    ProtobufCMessage base;
    int32_t idx;
    int32_t parent_idx;
    size_t n_vars;
    PaddleMobile__Framework__Proto__VarDesc **vars;
    size_t n_ops;
    PaddleMobile__Framework__Proto__OpDesc **ops;
    protobuf_c_boolean has_forward_block_idx;
    int32_t forward_block_idx;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__BLOCK_DESC__INIT         \
    {                                                               \
      PROTOBUF_C_MESSAGE_INIT(                                      \
          &paddle_mobile__framework__proto__block_desc__descriptor) \
      , 0, 0, 0, NULL, 0, NULL, 0, -1                               \
    }
  
  /*
   * Please refer to
   * https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/program.md
   * for more details.
   * TODO(panyx0718): A model can have multiple programs. Need a
   * way to distinguish them. Maybe ID or name?
   */
  struct _PaddleMobile__Framework__Proto__ProgramDesc {
    ProtobufCMessage base;
    size_t n_blocks;
    PaddleMobile__Framework__Proto__BlockDesc **blocks;
    PaddleMobile__Framework__Proto__Version *version;
  };
  #define PADDLE_MOBILE__FRAMEWORK__PROTO__PROGRAM_DESC__INIT         \
    {                                                                 \
      PROTOBUF_C_MESSAGE_INIT(                                        \
          &paddle_mobile__framework__proto__program_desc__descriptor) \
      , 0, NULL, NULL                                                 \
    }
  
  /* PaddleMobile__Framework__Proto__Version methods */
  void paddle_mobile__framework__proto__version__init(
      PaddleMobile__Framework__Proto__Version *message);
  size_t paddle_mobile__framework__proto__version__get_packed_size(
      const PaddleMobile__Framework__Proto__Version *message);
  PaddleMobile__Framework__Proto__Version *
  paddle_mobile__framework__proto__version__unpack(ProtobufCAllocator *allocator,
                                                   size_t len,
                                                   const uint8_t *data);
  void paddle_mobile__framework__proto__version__free_unpacked(
      PaddleMobile__Framework__Proto__Version *message,
      ProtobufCAllocator *allocator);
  /* PaddleMobile__Framework__Proto__OpDesc__Attr methods */
  void paddle_mobile__framework__proto__op_desc__attr__init(
      PaddleMobile__Framework__Proto__OpDesc__Attr *message);
  /* PaddleMobile__Framework__Proto__OpDesc__Var methods */
  void paddle_mobile__framework__proto__op_desc__var__init(
      PaddleMobile__Framework__Proto__OpDesc__Var *message);
  /* PaddleMobile__Framework__Proto__OpDesc methods */
  void paddle_mobile__framework__proto__op_desc__init(
      PaddleMobile__Framework__Proto__OpDesc *message);
  size_t paddle_mobile__framework__proto__op_desc__get_packed_size(
      const PaddleMobile__Framework__Proto__OpDesc *message);
  PaddleMobile__Framework__Proto__OpDesc *
  paddle_mobile__framework__proto__op_desc__unpack(ProtobufCAllocator *allocator,
                                                   size_t len,
                                                   const uint8_t *data);
  void paddle_mobile__framework__proto__op_desc__free_unpacked(
      PaddleMobile__Framework__Proto__OpDesc *message,
      ProtobufCAllocator *allocator);
  /* PaddleMobile__Framework__Proto__OpProto__Var methods */
  void paddle_mobile__framework__proto__op_proto__var__init(
      PaddleMobile__Framework__Proto__OpProto__Var *message);
  /* PaddleMobile__Framework__Proto__OpProto__Attr methods */
  void paddle_mobile__framework__proto__op_proto__attr__init(
      PaddleMobile__Framework__Proto__OpProto__Attr *message);
  /* PaddleMobile__Framework__Proto__OpProto methods */
  void paddle_mobile__framework__proto__op_proto__init(
      PaddleMobile__Framework__Proto__OpProto *message);
  size_t paddle_mobile__framework__proto__op_proto__get_packed_size(
      const PaddleMobile__Framework__Proto__OpProto *message);
  PaddleMobile__Framework__Proto__OpProto *
  paddle_mobile__framework__proto__op_proto__unpack(ProtobufCAllocator *allocator,
                                                    size_t len,
                                                    const uint8_t *data);
  void paddle_mobile__framework__proto__op_proto__free_unpacked(
      PaddleMobile__Framework__Proto__OpProto *message,
      ProtobufCAllocator *allocator);
  /* PaddleMobile__Framework__Proto__VarType__TensorDesc methods */
  void paddle_mobile__framework__proto__var_type__tensor_desc__init(
      PaddleMobile__Framework__Proto__VarType__TensorDesc *message);
  /* PaddleMobile__Framework__Proto__VarType__LoDTensorDesc methods */
  void paddle_mobile__framework__proto__var_type__lo_dtensor_desc__init(
      PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *message);
  /* PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc methods */
  void paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__init(
      PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *message);
  /* PaddleMobile__Framework__Proto__VarType__ReaderDesc methods */
  void paddle_mobile__framework__proto__var_type__reader_desc__init(
      PaddleMobile__Framework__Proto__VarType__ReaderDesc *message);
  /* PaddleMobile__Framework__Proto__VarType__ChannelDesc methods */
  void paddle_mobile__framework__proto__var_type__channel_desc__init(
      PaddleMobile__Framework__Proto__VarType__ChannelDesc *message);
  /* PaddleMobile__Framework__Proto__VarType__Tuple methods */
  void paddle_mobile__framework__proto__var_type__tuple__init(
      PaddleMobile__Framework__Proto__VarType__Tuple *message);
  /* PaddleMobile__Framework__Proto__VarType methods */
  void paddle_mobile__framework__proto__var_type__init(
      PaddleMobile__Framework__Proto__VarType *message);
  size_t paddle_mobile__framework__proto__var_type__get_packed_size(
      const PaddleMobile__Framework__Proto__VarType *message);
  PaddleMobile__Framework__Proto__VarType *
  paddle_mobile__framework__proto__var_type__unpack(ProtobufCAllocator *allocator,
                                                    size_t len,
                                                    const uint8_t *data);
  void paddle_mobile__framework__proto__var_type__free_unpacked(
      PaddleMobile__Framework__Proto__VarType *message,
      ProtobufCAllocator *allocator);
  /* PaddleMobile__Framework__Proto__VarDesc methods */
  void paddle_mobile__framework__proto__var_desc__init(
      PaddleMobile__Framework__Proto__VarDesc *message);
  size_t paddle_mobile__framework__proto__var_desc__get_packed_size(
      const PaddleMobile__Framework__Proto__VarDesc *message);
  PaddleMobile__Framework__Proto__VarDesc *
  paddle_mobile__framework__proto__var_desc__unpack(ProtobufCAllocator *allocator,
                                                    size_t len,
                                                    const uint8_t *data);
  void paddle_mobile__framework__proto__var_desc__free_unpacked(
      PaddleMobile__Framework__Proto__VarDesc *message,
      ProtobufCAllocator *allocator);
  /* PaddleMobile__Framework__Proto__BlockDesc methods */
  void paddle_mobile__framework__proto__block_desc__init(
      PaddleMobile__Framework__Proto__BlockDesc *message);
  size_t paddle_mobile__framework__proto__block_desc__get_packed_size(
      const PaddleMobile__Framework__Proto__BlockDesc *message);
  PaddleMobile__Framework__Proto__BlockDesc *
  paddle_mobile__framework__proto__block_desc__unpack(
      ProtobufCAllocator *allocator, size_t len, const uint8_t *data);
  void paddle_mobile__framework__proto__block_desc__free_unpacked(
      PaddleMobile__Framework__Proto__BlockDesc *message,
      ProtobufCAllocator *allocator);
  /* PaddleMobile__Framework__Proto__ProgramDesc methods */
  void paddle_mobile__framework__proto__program_desc__init(
      PaddleMobile__Framework__Proto__ProgramDesc *message);
  size_t paddle_mobile__framework__proto__program_desc__get_packed_size(
      const PaddleMobile__Framework__Proto__ProgramDesc *message);
  PaddleMobile__Framework__Proto__ProgramDesc *
  paddle_mobile__framework__proto__program_desc__unpack(
      ProtobufCAllocator *allocator, size_t len, const uint8_t *data);
  void paddle_mobile__framework__proto__program_desc__free_unpacked(
      PaddleMobile__Framework__Proto__ProgramDesc *message,
      ProtobufCAllocator *allocator);
  /* --- per-message closures --- */
  
  typedef void (*PaddleMobile__Framework__Proto__Version_Closure)(
      const PaddleMobile__Framework__Proto__Version *message, void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__OpDesc__Attr_Closure)(
      const PaddleMobile__Framework__Proto__OpDesc__Attr *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__OpDesc__Var_Closure)(
      const PaddleMobile__Framework__Proto__OpDesc__Var *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__OpDesc_Closure)(
      const PaddleMobile__Framework__Proto__OpDesc *message, void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__OpProto__Var_Closure)(
      const PaddleMobile__Framework__Proto__OpProto__Var *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__OpProto__Attr_Closure)(
      const PaddleMobile__Framework__Proto__OpProto__Attr *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__OpProto_Closure)(
      const PaddleMobile__Framework__Proto__OpProto *message, void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarType__TensorDesc_Closure)(
      const PaddleMobile__Framework__Proto__VarType__TensorDesc *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarType__LoDTensorDesc_Closure)(
      const PaddleMobile__Framework__Proto__VarType__LoDTensorDesc *message,
      void *closure_data);
  typedef void (
      *PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc_Closure)(
      const PaddleMobile__Framework__Proto__VarType__LoDTensorArrayDesc *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarType__ReaderDesc_Closure)(
      const PaddleMobile__Framework__Proto__VarType__ReaderDesc *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarType__ChannelDesc_Closure)(
      const PaddleMobile__Framework__Proto__VarType__ChannelDesc *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarType__Tuple_Closure)(
      const PaddleMobile__Framework__Proto__VarType__Tuple *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarType_Closure)(
      const PaddleMobile__Framework__Proto__VarType *message, void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__VarDesc_Closure)(
      const PaddleMobile__Framework__Proto__VarDesc *message, void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__BlockDesc_Closure)(
      const PaddleMobile__Framework__Proto__BlockDesc *message,
      void *closure_data);
  typedef void (*PaddleMobile__Framework__Proto__ProgramDesc_Closure)(
      const PaddleMobile__Framework__Proto__ProgramDesc *message,
      void *closure_data);
  
  /* --- services --- */
  
  /* --- descriptors --- */
  
  extern const ProtobufCEnumDescriptor
      paddle_mobile__framework__proto__attr_type__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__version__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__op_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__op_desc__attr__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__op_desc__var__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__op_proto__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__op_proto__var__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__op_proto__attr__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__tensor_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__lo_dtensor_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__lo_dtensor_array_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__reader_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__channel_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_type__tuple__descriptor;
  extern const ProtobufCEnumDescriptor
      paddle_mobile__framework__proto__var_type__type__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__var_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__block_desc__descriptor;
  extern const ProtobufCMessageDescriptor
      paddle_mobile__framework__proto__program_desc__descriptor;
  
  PROTOBUF_C__END_DECLS
  
  #endif /* PROTOBUF_C_framework_2eproto__INCLUDED */
  