// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/util/internal/testdata/struct.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/unknown_field_set.h>
#include <google/protobuf/struct.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto 

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[12];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto
namespace google {
namespace protobuf {
namespace testing {
class Dummy;
class DummyDefaultTypeInternal;
extern DummyDefaultTypeInternal _Dummy_default_instance_;
class ListValueWrapper;
class ListValueWrapperDefaultTypeInternal;
extern ListValueWrapperDefaultTypeInternal _ListValueWrapper_default_instance_;
class MapOfStruct;
class MapOfStructDefaultTypeInternal;
extern MapOfStructDefaultTypeInternal _MapOfStruct_default_instance_;
class MapOfStruct_ListvalueMapEntry_DoNotUse;
class MapOfStruct_ListvalueMapEntry_DoNotUseDefaultTypeInternal;
extern MapOfStruct_ListvalueMapEntry_DoNotUseDefaultTypeInternal _MapOfStruct_ListvalueMapEntry_DoNotUse_default_instance_;
class MapOfStruct_StructMapEntry_DoNotUse;
class MapOfStruct_StructMapEntry_DoNotUseDefaultTypeInternal;
extern MapOfStruct_StructMapEntry_DoNotUseDefaultTypeInternal _MapOfStruct_StructMapEntry_DoNotUse_default_instance_;
class MapOfStruct_ValueMapEntry_DoNotUse;
class MapOfStruct_ValueMapEntry_DoNotUseDefaultTypeInternal;
extern MapOfStruct_ValueMapEntry_DoNotUseDefaultTypeInternal _MapOfStruct_ValueMapEntry_DoNotUse_default_instance_;
class RepeatedListValueWrapper;
class RepeatedListValueWrapperDefaultTypeInternal;
extern RepeatedListValueWrapperDefaultTypeInternal _RepeatedListValueWrapper_default_instance_;
class RepeatedValueWrapper;
class RepeatedValueWrapperDefaultTypeInternal;
extern RepeatedValueWrapperDefaultTypeInternal _RepeatedValueWrapper_default_instance_;
class StructTestCases;
class StructTestCasesDefaultTypeInternal;
extern StructTestCasesDefaultTypeInternal _StructTestCases_default_instance_;
class StructType;
class StructTypeDefaultTypeInternal;
extern StructTypeDefaultTypeInternal _StructType_default_instance_;
class StructWrapper;
class StructWrapperDefaultTypeInternal;
extern StructWrapperDefaultTypeInternal _StructWrapper_default_instance_;
class ValueWrapper;
class ValueWrapperDefaultTypeInternal;
extern ValueWrapperDefaultTypeInternal _ValueWrapper_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::protobuf::testing::Dummy* Arena::CreateMaybeMessage<::google::protobuf::testing::Dummy>(Arena*);
template<> ::google::protobuf::testing::ListValueWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::ListValueWrapper>(Arena*);
template<> ::google::protobuf::testing::MapOfStruct* Arena::CreateMaybeMessage<::google::protobuf::testing::MapOfStruct>(Arena*);
template<> ::google::protobuf::testing::MapOfStruct_ListvalueMapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::MapOfStruct_ListvalueMapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::MapOfStruct_StructMapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::MapOfStruct_StructMapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::MapOfStruct_ValueMapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::MapOfStruct_ValueMapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::RepeatedListValueWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::RepeatedListValueWrapper>(Arena*);
template<> ::google::protobuf::testing::RepeatedValueWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::RepeatedValueWrapper>(Arena*);
template<> ::google::protobuf::testing::StructTestCases* Arena::CreateMaybeMessage<::google::protobuf::testing::StructTestCases>(Arena*);
template<> ::google::protobuf::testing::StructType* Arena::CreateMaybeMessage<::google::protobuf::testing::StructType>(Arena*);
template<> ::google::protobuf::testing::StructWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(Arena*);
template<> ::google::protobuf::testing::ValueWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::ValueWrapper>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
namespace testing {

// ===================================================================

class StructTestCases : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.StructTestCases) */ {
 public:
  StructTestCases();
  virtual ~StructTestCases();

  StructTestCases(const StructTestCases& from);

  inline StructTestCases& operator=(const StructTestCases& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  StructTestCases(StructTestCases&& from) noexcept
    : StructTestCases() {
    *this = ::std::move(from);
  }

  inline StructTestCases& operator=(StructTestCases&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StructTestCases& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const StructTestCases* internal_default_instance() {
    return reinterpret_cast<const StructTestCases*>(
               &_StructTestCases_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(StructTestCases* other);
  friend void swap(StructTestCases& a, StructTestCases& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline StructTestCases* New() const final {
    return CreateMaybeMessage<StructTestCases>(NULL);
  }

  StructTestCases* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StructTestCases>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StructTestCases& from);
  void MergeFrom(const StructTestCases& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StructTestCases* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.testing.StructWrapper empty_value = 1;
  bool has_empty_value() const;
  void clear_empty_value();
  static const int kEmptyValueFieldNumber = 1;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_empty_value() const;
  public:
  const ::google::protobuf::testing::StructWrapper& empty_value() const;
  ::google::protobuf::testing::StructWrapper* release_empty_value();
  ::google::protobuf::testing::StructWrapper* mutable_empty_value();
  void set_allocated_empty_value(::google::protobuf::testing::StructWrapper* empty_value);

  // .google.protobuf.testing.StructWrapper empty_value2 = 2;
  bool has_empty_value2() const;
  void clear_empty_value2();
  static const int kEmptyValue2FieldNumber = 2;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_empty_value2() const;
  public:
  const ::google::protobuf::testing::StructWrapper& empty_value2() const;
  ::google::protobuf::testing::StructWrapper* release_empty_value2();
  ::google::protobuf::testing::StructWrapper* mutable_empty_value2();
  void set_allocated_empty_value2(::google::protobuf::testing::StructWrapper* empty_value2);

  // .google.protobuf.testing.StructWrapper null_value = 3;
  bool has_null_value() const;
  void clear_null_value();
  static const int kNullValueFieldNumber = 3;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_null_value() const;
  public:
  const ::google::protobuf::testing::StructWrapper& null_value() const;
  ::google::protobuf::testing::StructWrapper* release_null_value();
  ::google::protobuf::testing::StructWrapper* mutable_null_value();
  void set_allocated_null_value(::google::protobuf::testing::StructWrapper* null_value);

  // .google.protobuf.testing.StructWrapper simple_struct = 4;
  bool has_simple_struct() const;
  void clear_simple_struct();
  static const int kSimpleStructFieldNumber = 4;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_simple_struct() const;
  public:
  const ::google::protobuf::testing::StructWrapper& simple_struct() const;
  ::google::protobuf::testing::StructWrapper* release_simple_struct();
  ::google::protobuf::testing::StructWrapper* mutable_simple_struct();
  void set_allocated_simple_struct(::google::protobuf::testing::StructWrapper* simple_struct);

  // .google.protobuf.testing.StructWrapper longer_struct = 5;
  bool has_longer_struct() const;
  void clear_longer_struct();
  static const int kLongerStructFieldNumber = 5;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_longer_struct() const;
  public:
  const ::google::protobuf::testing::StructWrapper& longer_struct() const;
  ::google::protobuf::testing::StructWrapper* release_longer_struct();
  ::google::protobuf::testing::StructWrapper* mutable_longer_struct();
  void set_allocated_longer_struct(::google::protobuf::testing::StructWrapper* longer_struct);

  // .google.protobuf.testing.StructWrapper struct_with_nested_struct = 6;
  bool has_struct_with_nested_struct() const;
  void clear_struct_with_nested_struct();
  static const int kStructWithNestedStructFieldNumber = 6;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_nested_struct() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_nested_struct() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_nested_struct();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_nested_struct();
  void set_allocated_struct_with_nested_struct(::google::protobuf::testing::StructWrapper* struct_with_nested_struct);

  // .google.protobuf.testing.StructWrapper struct_with_nested_list = 7;
  bool has_struct_with_nested_list() const;
  void clear_struct_with_nested_list();
  static const int kStructWithNestedListFieldNumber = 7;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_nested_list() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_nested_list() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_nested_list();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_nested_list();
  void set_allocated_struct_with_nested_list(::google::protobuf::testing::StructWrapper* struct_with_nested_list);

  // .google.protobuf.testing.StructWrapper struct_with_list_of_nulls = 8;
  bool has_struct_with_list_of_nulls() const;
  void clear_struct_with_list_of_nulls();
  static const int kStructWithListOfNullsFieldNumber = 8;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_list_of_nulls() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_list_of_nulls() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_list_of_nulls();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_list_of_nulls();
  void set_allocated_struct_with_list_of_nulls(::google::protobuf::testing::StructWrapper* struct_with_list_of_nulls);

  // .google.protobuf.testing.StructWrapper struct_with_list_of_lists = 9;
  bool has_struct_with_list_of_lists() const;
  void clear_struct_with_list_of_lists();
  static const int kStructWithListOfListsFieldNumber = 9;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_list_of_lists() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_list_of_lists() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_list_of_lists();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_list_of_lists();
  void set_allocated_struct_with_list_of_lists(::google::protobuf::testing::StructWrapper* struct_with_list_of_lists);

  // .google.protobuf.testing.StructWrapper struct_with_list_of_structs = 10;
  bool has_struct_with_list_of_structs() const;
  void clear_struct_with_list_of_structs();
  static const int kStructWithListOfStructsFieldNumber = 10;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_list_of_structs() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_list_of_structs() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_list_of_structs();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_list_of_structs();
  void set_allocated_struct_with_list_of_structs(::google::protobuf::testing::StructWrapper* struct_with_list_of_structs);

  // .google.protobuf.testing.StructWrapper struct_with_empty_list = 11;
  bool has_struct_with_empty_list() const;
  void clear_struct_with_empty_list();
  static const int kStructWithEmptyListFieldNumber = 11;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_empty_list() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_empty_list() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_empty_list();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_empty_list();
  void set_allocated_struct_with_empty_list(::google::protobuf::testing::StructWrapper* struct_with_empty_list);

  // .google.protobuf.testing.StructWrapper struct_with_list_with_empty_struct = 12;
  bool has_struct_with_list_with_empty_struct() const;
  void clear_struct_with_list_with_empty_struct();
  static const int kStructWithListWithEmptyStructFieldNumber = 12;
  private:
  const ::google::protobuf::testing::StructWrapper& _internal_struct_with_list_with_empty_struct() const;
  public:
  const ::google::protobuf::testing::StructWrapper& struct_with_list_with_empty_struct() const;
  ::google::protobuf::testing::StructWrapper* release_struct_with_list_with_empty_struct();
  ::google::protobuf::testing::StructWrapper* mutable_struct_with_list_with_empty_struct();
  void set_allocated_struct_with_list_with_empty_struct(::google::protobuf::testing::StructWrapper* struct_with_list_with_empty_struct);

  // .google.protobuf.Struct top_level_struct = 13;
  bool has_top_level_struct() const;
  void clear_top_level_struct();
  static const int kTopLevelStructFieldNumber = 13;
  private:
  const ::google::protobuf::Struct& _internal_top_level_struct() const;
  public:
  const ::google::protobuf::Struct& top_level_struct() const;
  ::google::protobuf::Struct* release_top_level_struct();
  ::google::protobuf::Struct* mutable_top_level_struct();
  void set_allocated_top_level_struct(::google::protobuf::Struct* top_level_struct);

  // .google.protobuf.Struct top_level_struct_with_empty_list = 14;
  bool has_top_level_struct_with_empty_list() const;
  void clear_top_level_struct_with_empty_list();
  static const int kTopLevelStructWithEmptyListFieldNumber = 14;
  private:
  const ::google::protobuf::Struct& _internal_top_level_struct_with_empty_list() const;
  public:
  const ::google::protobuf::Struct& top_level_struct_with_empty_list() const;
  ::google::protobuf::Struct* release_top_level_struct_with_empty_list();
  ::google::protobuf::Struct* mutable_top_level_struct_with_empty_list();
  void set_allocated_top_level_struct_with_empty_list(::google::protobuf::Struct* top_level_struct_with_empty_list);

  // .google.protobuf.Struct top_level_struct_with_list_with_empty_struct = 15;
  bool has_top_level_struct_with_list_with_empty_struct() const;
  void clear_top_level_struct_with_list_with_empty_struct();
  static const int kTopLevelStructWithListWithEmptyStructFieldNumber = 15;
  private:
  const ::google::protobuf::Struct& _internal_top_level_struct_with_list_with_empty_struct() const;
  public:
  const ::google::protobuf::Struct& top_level_struct_with_list_with_empty_struct() const;
  ::google::protobuf::Struct* release_top_level_struct_with_list_with_empty_struct();
  ::google::protobuf::Struct* mutable_top_level_struct_with_list_with_empty_struct();
  void set_allocated_top_level_struct_with_list_with_empty_struct(::google::protobuf::Struct* top_level_struct_with_list_with_empty_struct);

  // .google.protobuf.testing.ValueWrapper value_wrapper_simple = 16;
  bool has_value_wrapper_simple() const;
  void clear_value_wrapper_simple();
  static const int kValueWrapperSimpleFieldNumber = 16;
  private:
  const ::google::protobuf::testing::ValueWrapper& _internal_value_wrapper_simple() const;
  public:
  const ::google::protobuf::testing::ValueWrapper& value_wrapper_simple() const;
  ::google::protobuf::testing::ValueWrapper* release_value_wrapper_simple();
  ::google::protobuf::testing::ValueWrapper* mutable_value_wrapper_simple();
  void set_allocated_value_wrapper_simple(::google::protobuf::testing::ValueWrapper* value_wrapper_simple);

  // .google.protobuf.testing.ValueWrapper value_wrapper_with_struct = 17;
  bool has_value_wrapper_with_struct() const;
  void clear_value_wrapper_with_struct();
  static const int kValueWrapperWithStructFieldNumber = 17;
  private:
  const ::google::protobuf::testing::ValueWrapper& _internal_value_wrapper_with_struct() const;
  public:
  const ::google::protobuf::testing::ValueWrapper& value_wrapper_with_struct() const;
  ::google::protobuf::testing::ValueWrapper* release_value_wrapper_with_struct();
  ::google::protobuf::testing::ValueWrapper* mutable_value_wrapper_with_struct();
  void set_allocated_value_wrapper_with_struct(::google::protobuf::testing::ValueWrapper* value_wrapper_with_struct);

  // .google.protobuf.testing.ValueWrapper value_wrapper_with_list = 18;
  bool has_value_wrapper_with_list() const;
  void clear_value_wrapper_with_list();
  static const int kValueWrapperWithListFieldNumber = 18;
  private:
  const ::google::protobuf::testing::ValueWrapper& _internal_value_wrapper_with_list() const;
  public:
  const ::google::protobuf::testing::ValueWrapper& value_wrapper_with_list() const;
  ::google::protobuf::testing::ValueWrapper* release_value_wrapper_with_list();
  ::google::protobuf::testing::ValueWrapper* mutable_value_wrapper_with_list();
  void set_allocated_value_wrapper_with_list(::google::protobuf::testing::ValueWrapper* value_wrapper_with_list);

  // .google.protobuf.testing.ValueWrapper value_wrapper_with_empty_list = 19;
  bool has_value_wrapper_with_empty_list() const;
  void clear_value_wrapper_with_empty_list();
  static const int kValueWrapperWithEmptyListFieldNumber = 19;
  private:
  const ::google::protobuf::testing::ValueWrapper& _internal_value_wrapper_with_empty_list() const;
  public:
  const ::google::protobuf::testing::ValueWrapper& value_wrapper_with_empty_list() const;
  ::google::protobuf::testing::ValueWrapper* release_value_wrapper_with_empty_list();
  ::google::protobuf::testing::ValueWrapper* mutable_value_wrapper_with_empty_list();
  void set_allocated_value_wrapper_with_empty_list(::google::protobuf::testing::ValueWrapper* value_wrapper_with_empty_list);

  // .google.protobuf.testing.ValueWrapper value_wrapper_with_list_with_empty_struct = 20;
  bool has_value_wrapper_with_list_with_empty_struct() const;
  void clear_value_wrapper_with_list_with_empty_struct();
  static const int kValueWrapperWithListWithEmptyStructFieldNumber = 20;
  private:
  const ::google::protobuf::testing::ValueWrapper& _internal_value_wrapper_with_list_with_empty_struct() const;
  public:
  const ::google::protobuf::testing::ValueWrapper& value_wrapper_with_list_with_empty_struct() const;
  ::google::protobuf::testing::ValueWrapper* release_value_wrapper_with_list_with_empty_struct();
  ::google::protobuf::testing::ValueWrapper* mutable_value_wrapper_with_list_with_empty_struct();
  void set_allocated_value_wrapper_with_list_with_empty_struct(::google::protobuf::testing::ValueWrapper* value_wrapper_with_list_with_empty_struct);

  // .google.protobuf.testing.ListValueWrapper list_value_wrapper = 21;
  bool has_list_value_wrapper() const;
  void clear_list_value_wrapper();
  static const int kListValueWrapperFieldNumber = 21;
  private:
  const ::google::protobuf::testing::ListValueWrapper& _internal_list_value_wrapper() const;
  public:
  const ::google::protobuf::testing::ListValueWrapper& list_value_wrapper() const;
  ::google::protobuf::testing::ListValueWrapper* release_list_value_wrapper();
  ::google::protobuf::testing::ListValueWrapper* mutable_list_value_wrapper();
  void set_allocated_list_value_wrapper(::google::protobuf::testing::ListValueWrapper* list_value_wrapper);

  // .google.protobuf.testing.ListValueWrapper list_value_wrapper_with_empty_list = 22;
  bool has_list_value_wrapper_with_empty_list() const;
  void clear_list_value_wrapper_with_empty_list();
  static const int kListValueWrapperWithEmptyListFieldNumber = 22;
  private:
  const ::google::protobuf::testing::ListValueWrapper& _internal_list_value_wrapper_with_empty_list() const;
  public:
  const ::google::protobuf::testing::ListValueWrapper& list_value_wrapper_with_empty_list() const;
  ::google::protobuf::testing::ListValueWrapper* release_list_value_wrapper_with_empty_list();
  ::google::protobuf::testing::ListValueWrapper* mutable_list_value_wrapper_with_empty_list();
  void set_allocated_list_value_wrapper_with_empty_list(::google::protobuf::testing::ListValueWrapper* list_value_wrapper_with_empty_list);

  // .google.protobuf.testing.ListValueWrapper list_value_wrapper_with_list_with_empty_struct = 23;
  bool has_list_value_wrapper_with_list_with_empty_struct() const;
  void clear_list_value_wrapper_with_list_with_empty_struct();
  static const int kListValueWrapperWithListWithEmptyStructFieldNumber = 23;
  private:
  const ::google::protobuf::testing::ListValueWrapper& _internal_list_value_wrapper_with_list_with_empty_struct() const;
  public:
  const ::google::protobuf::testing::ListValueWrapper& list_value_wrapper_with_list_with_empty_struct() const;
  ::google::protobuf::testing::ListValueWrapper* release_list_value_wrapper_with_list_with_empty_struct();
  ::google::protobuf::testing::ListValueWrapper* mutable_list_value_wrapper_with_list_with_empty_struct();
  void set_allocated_list_value_wrapper_with_list_with_empty_struct(::google::protobuf::testing::ListValueWrapper* list_value_wrapper_with_list_with_empty_struct);

  // .google.protobuf.Value top_level_value_simple = 24;
  bool has_top_level_value_simple() const;
  void clear_top_level_value_simple();
  static const int kTopLevelValueSimpleFieldNumber = 24;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_simple() const;
  public:
  const ::google::protobuf::Value& top_level_value_simple() const;
  ::google::protobuf::Value* release_top_level_value_simple();
  ::google::protobuf::Value* mutable_top_level_value_simple();
  void set_allocated_top_level_value_simple(::google::protobuf::Value* top_level_value_simple);

  // .google.protobuf.Value top_level_value_with_struct = 25;
  bool has_top_level_value_with_struct() const;
  void clear_top_level_value_with_struct();
  static const int kTopLevelValueWithStructFieldNumber = 25;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_with_struct() const;
  public:
  const ::google::protobuf::Value& top_level_value_with_struct() const;
  ::google::protobuf::Value* release_top_level_value_with_struct();
  ::google::protobuf::Value* mutable_top_level_value_with_struct();
  void set_allocated_top_level_value_with_struct(::google::protobuf::Value* top_level_value_with_struct);

  // .google.protobuf.Value top_level_value_with_list = 26;
  bool has_top_level_value_with_list() const;
  void clear_top_level_value_with_list();
  static const int kTopLevelValueWithListFieldNumber = 26;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_with_list() const;
  public:
  const ::google::protobuf::Value& top_level_value_with_list() const;
  ::google::protobuf::Value* release_top_level_value_with_list();
  ::google::protobuf::Value* mutable_top_level_value_with_list();
  void set_allocated_top_level_value_with_list(::google::protobuf::Value* top_level_value_with_list);

  // .google.protobuf.Value top_level_value_with_empty_list = 27;
  bool has_top_level_value_with_empty_list() const;
  void clear_top_level_value_with_empty_list();
  static const int kTopLevelValueWithEmptyListFieldNumber = 27;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_with_empty_list() const;
  public:
  const ::google::protobuf::Value& top_level_value_with_empty_list() const;
  ::google::protobuf::Value* release_top_level_value_with_empty_list();
  ::google::protobuf::Value* mutable_top_level_value_with_empty_list();
  void set_allocated_top_level_value_with_empty_list(::google::protobuf::Value* top_level_value_with_empty_list);

  // .google.protobuf.Value top_level_value_with_list_with_empty_struct = 28;
  bool has_top_level_value_with_list_with_empty_struct() const;
  void clear_top_level_value_with_list_with_empty_struct();
  static const int kTopLevelValueWithListWithEmptyStructFieldNumber = 28;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_with_list_with_empty_struct() const;
  public:
  const ::google::protobuf::Value& top_level_value_with_list_with_empty_struct() const;
  ::google::protobuf::Value* release_top_level_value_with_list_with_empty_struct();
  ::google::protobuf::Value* mutable_top_level_value_with_list_with_empty_struct();
  void set_allocated_top_level_value_with_list_with_empty_struct(::google::protobuf::Value* top_level_value_with_list_with_empty_struct);

  // .google.protobuf.ListValue top_level_listvalue = 29;
  bool has_top_level_listvalue() const;
  void clear_top_level_listvalue();
  static const int kTopLevelListvalueFieldNumber = 29;
  private:
  const ::google::protobuf::ListValue& _internal_top_level_listvalue() const;
  public:
  const ::google::protobuf::ListValue& top_level_listvalue() const;
  ::google::protobuf::ListValue* release_top_level_listvalue();
  ::google::protobuf::ListValue* mutable_top_level_listvalue();
  void set_allocated_top_level_listvalue(::google::protobuf::ListValue* top_level_listvalue);

  // .google.protobuf.ListValue top_level_empty_listvalue = 30;
  bool has_top_level_empty_listvalue() const;
  void clear_top_level_empty_listvalue();
  static const int kTopLevelEmptyListvalueFieldNumber = 30;
  private:
  const ::google::protobuf::ListValue& _internal_top_level_empty_listvalue() const;
  public:
  const ::google::protobuf::ListValue& top_level_empty_listvalue() const;
  ::google::protobuf::ListValue* release_top_level_empty_listvalue();
  ::google::protobuf::ListValue* mutable_top_level_empty_listvalue();
  void set_allocated_top_level_empty_listvalue(::google::protobuf::ListValue* top_level_empty_listvalue);

  // .google.protobuf.ListValue top_level_listvalue_with_empty_struct = 31;
  bool has_top_level_listvalue_with_empty_struct() const;
  void clear_top_level_listvalue_with_empty_struct();
  static const int kTopLevelListvalueWithEmptyStructFieldNumber = 31;
  private:
  const ::google::protobuf::ListValue& _internal_top_level_listvalue_with_empty_struct() const;
  public:
  const ::google::protobuf::ListValue& top_level_listvalue_with_empty_struct() const;
  ::google::protobuf::ListValue* release_top_level_listvalue_with_empty_struct();
  ::google::protobuf::ListValue* mutable_top_level_listvalue_with_empty_struct();
  void set_allocated_top_level_listvalue_with_empty_struct(::google::protobuf::ListValue* top_level_listvalue_with_empty_struct);

  // .google.protobuf.testing.RepeatedValueWrapper repeated_value = 32;
  bool has_repeated_value() const;
  void clear_repeated_value();
  static const int kRepeatedValueFieldNumber = 32;
  private:
  const ::google::protobuf::testing::RepeatedValueWrapper& _internal_repeated_value() const;
  public:
  const ::google::protobuf::testing::RepeatedValueWrapper& repeated_value() const;
  ::google::protobuf::testing::RepeatedValueWrapper* release_repeated_value();
  ::google::protobuf::testing::RepeatedValueWrapper* mutable_repeated_value();
  void set_allocated_repeated_value(::google::protobuf::testing::RepeatedValueWrapper* repeated_value);

  // .google.protobuf.testing.RepeatedValueWrapper repeated_value_nested_list = 33;
  bool has_repeated_value_nested_list() const;
  void clear_repeated_value_nested_list();
  static const int kRepeatedValueNestedListFieldNumber = 33;
  private:
  const ::google::protobuf::testing::RepeatedValueWrapper& _internal_repeated_value_nested_list() const;
  public:
  const ::google::protobuf::testing::RepeatedValueWrapper& repeated_value_nested_list() const;
  ::google::protobuf::testing::RepeatedValueWrapper* release_repeated_value_nested_list();
  ::google::protobuf::testing::RepeatedValueWrapper* mutable_repeated_value_nested_list();
  void set_allocated_repeated_value_nested_list(::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list);

  // .google.protobuf.testing.RepeatedValueWrapper repeated_value_nested_list2 = 34;
  bool has_repeated_value_nested_list2() const;
  void clear_repeated_value_nested_list2();
  static const int kRepeatedValueNestedList2FieldNumber = 34;
  private:
  const ::google::protobuf::testing::RepeatedValueWrapper& _internal_repeated_value_nested_list2() const;
  public:
  const ::google::protobuf::testing::RepeatedValueWrapper& repeated_value_nested_list2() const;
  ::google::protobuf::testing::RepeatedValueWrapper* release_repeated_value_nested_list2();
  ::google::protobuf::testing::RepeatedValueWrapper* mutable_repeated_value_nested_list2();
  void set_allocated_repeated_value_nested_list2(::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list2);

  // .google.protobuf.testing.RepeatedValueWrapper repeated_value_nested_list3 = 35;
  bool has_repeated_value_nested_list3() const;
  void clear_repeated_value_nested_list3();
  static const int kRepeatedValueNestedList3FieldNumber = 35;
  private:
  const ::google::protobuf::testing::RepeatedValueWrapper& _internal_repeated_value_nested_list3() const;
  public:
  const ::google::protobuf::testing::RepeatedValueWrapper& repeated_value_nested_list3() const;
  ::google::protobuf::testing::RepeatedValueWrapper* release_repeated_value_nested_list3();
  ::google::protobuf::testing::RepeatedValueWrapper* mutable_repeated_value_nested_list3();
  void set_allocated_repeated_value_nested_list3(::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list3);

  // .google.protobuf.testing.RepeatedListValueWrapper repeated_listvalue = 36;
  bool has_repeated_listvalue() const;
  void clear_repeated_listvalue();
  static const int kRepeatedListvalueFieldNumber = 36;
  private:
  const ::google::protobuf::testing::RepeatedListValueWrapper& _internal_repeated_listvalue() const;
  public:
  const ::google::protobuf::testing::RepeatedListValueWrapper& repeated_listvalue() const;
  ::google::protobuf::testing::RepeatedListValueWrapper* release_repeated_listvalue();
  ::google::protobuf::testing::RepeatedListValueWrapper* mutable_repeated_listvalue();
  void set_allocated_repeated_listvalue(::google::protobuf::testing::RepeatedListValueWrapper* repeated_listvalue);

  // .google.protobuf.testing.MapOfStruct map_of_struct = 37;
  bool has_map_of_struct() const;
  void clear_map_of_struct();
  static const int kMapOfStructFieldNumber = 37;
  private:
  const ::google::protobuf::testing::MapOfStruct& _internal_map_of_struct() const;
  public:
  const ::google::protobuf::testing::MapOfStruct& map_of_struct() const;
  ::google::protobuf::testing::MapOfStruct* release_map_of_struct();
  ::google::protobuf::testing::MapOfStruct* mutable_map_of_struct();
  void set_allocated_map_of_struct(::google::protobuf::testing::MapOfStruct* map_of_struct);

  // .google.protobuf.testing.MapOfStruct map_of_struct_value = 38;
  bool has_map_of_struct_value() const;
  void clear_map_of_struct_value();
  static const int kMapOfStructValueFieldNumber = 38;
  private:
  const ::google::protobuf::testing::MapOfStruct& _internal_map_of_struct_value() const;
  public:
  const ::google::protobuf::testing::MapOfStruct& map_of_struct_value() const;
  ::google::protobuf::testing::MapOfStruct* release_map_of_struct_value();
  ::google::protobuf::testing::MapOfStruct* mutable_map_of_struct_value();
  void set_allocated_map_of_struct_value(::google::protobuf::testing::MapOfStruct* map_of_struct_value);

  // .google.protobuf.testing.MapOfStruct map_of_listvalue = 39;
  bool has_map_of_listvalue() const;
  void clear_map_of_listvalue();
  static const int kMapOfListvalueFieldNumber = 39;
  private:
  const ::google::protobuf::testing::MapOfStruct& _internal_map_of_listvalue() const;
  public:
  const ::google::protobuf::testing::MapOfStruct& map_of_listvalue() const;
  ::google::protobuf::testing::MapOfStruct* release_map_of_listvalue();
  ::google::protobuf::testing::MapOfStruct* mutable_map_of_listvalue();
  void set_allocated_map_of_listvalue(::google::protobuf::testing::MapOfStruct* map_of_listvalue);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.StructTestCases)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::testing::StructWrapper* empty_value_;
  ::google::protobuf::testing::StructWrapper* empty_value2_;
  ::google::protobuf::testing::StructWrapper* null_value_;
  ::google::protobuf::testing::StructWrapper* simple_struct_;
  ::google::protobuf::testing::StructWrapper* longer_struct_;
  ::google::protobuf::testing::StructWrapper* struct_with_nested_struct_;
  ::google::protobuf::testing::StructWrapper* struct_with_nested_list_;
  ::google::protobuf::testing::StructWrapper* struct_with_list_of_nulls_;
  ::google::protobuf::testing::StructWrapper* struct_with_list_of_lists_;
  ::google::protobuf::testing::StructWrapper* struct_with_list_of_structs_;
  ::google::protobuf::testing::StructWrapper* struct_with_empty_list_;
  ::google::protobuf::testing::StructWrapper* struct_with_list_with_empty_struct_;
  ::google::protobuf::Struct* top_level_struct_;
  ::google::protobuf::Struct* top_level_struct_with_empty_list_;
  ::google::protobuf::Struct* top_level_struct_with_list_with_empty_struct_;
  ::google::protobuf::testing::ValueWrapper* value_wrapper_simple_;
  ::google::protobuf::testing::ValueWrapper* value_wrapper_with_struct_;
  ::google::protobuf::testing::ValueWrapper* value_wrapper_with_list_;
  ::google::protobuf::testing::ValueWrapper* value_wrapper_with_empty_list_;
  ::google::protobuf::testing::ValueWrapper* value_wrapper_with_list_with_empty_struct_;
  ::google::protobuf::testing::ListValueWrapper* list_value_wrapper_;
  ::google::protobuf::testing::ListValueWrapper* list_value_wrapper_with_empty_list_;
  ::google::protobuf::testing::ListValueWrapper* list_value_wrapper_with_list_with_empty_struct_;
  ::google::protobuf::Value* top_level_value_simple_;
  ::google::protobuf::Value* top_level_value_with_struct_;
  ::google::protobuf::Value* top_level_value_with_list_;
  ::google::protobuf::Value* top_level_value_with_empty_list_;
  ::google::protobuf::Value* top_level_value_with_list_with_empty_struct_;
  ::google::protobuf::ListValue* top_level_listvalue_;
  ::google::protobuf::ListValue* top_level_empty_listvalue_;
  ::google::protobuf::ListValue* top_level_listvalue_with_empty_struct_;
  ::google::protobuf::testing::RepeatedValueWrapper* repeated_value_;
  ::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list_;
  ::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list2_;
  ::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list3_;
  ::google::protobuf::testing::RepeatedListValueWrapper* repeated_listvalue_;
  ::google::protobuf::testing::MapOfStruct* map_of_struct_;
  ::google::protobuf::testing::MapOfStruct* map_of_struct_value_;
  ::google::protobuf::testing::MapOfStruct* map_of_listvalue_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class StructWrapper : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.StructWrapper) */ {
 public:
  StructWrapper();
  virtual ~StructWrapper();

  StructWrapper(const StructWrapper& from);

  inline StructWrapper& operator=(const StructWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  StructWrapper(StructWrapper&& from) noexcept
    : StructWrapper() {
    *this = ::std::move(from);
  }

  inline StructWrapper& operator=(StructWrapper&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StructWrapper& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const StructWrapper* internal_default_instance() {
    return reinterpret_cast<const StructWrapper*>(
               &_StructWrapper_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(StructWrapper* other);
  friend void swap(StructWrapper& a, StructWrapper& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline StructWrapper* New() const final {
    return CreateMaybeMessage<StructWrapper>(NULL);
  }

  StructWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StructWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StructWrapper& from);
  void MergeFrom(const StructWrapper& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StructWrapper* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Struct struct = 1;
  bool has_struct_() const;
  void clear_struct_();
  static const int kStructFieldNumber = 1;
  private:
  const ::google::protobuf::Struct& _internal_struct_() const;
  public:
  const ::google::protobuf::Struct& struct_() const;
  ::google::protobuf::Struct* release_struct_();
  ::google::protobuf::Struct* mutable_struct_();
  void set_allocated_struct_(::google::protobuf::Struct* struct_);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.StructWrapper)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Struct* struct__;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ValueWrapper : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.ValueWrapper) */ {
 public:
  ValueWrapper();
  virtual ~ValueWrapper();

  ValueWrapper(const ValueWrapper& from);

  inline ValueWrapper& operator=(const ValueWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  ValueWrapper(ValueWrapper&& from) noexcept
    : ValueWrapper() {
    *this = ::std::move(from);
  }

  inline ValueWrapper& operator=(ValueWrapper&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ValueWrapper& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ValueWrapper* internal_default_instance() {
    return reinterpret_cast<const ValueWrapper*>(
               &_ValueWrapper_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(ValueWrapper* other);
  friend void swap(ValueWrapper& a, ValueWrapper& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline ValueWrapper* New() const final {
    return CreateMaybeMessage<ValueWrapper>(NULL);
  }

  ValueWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ValueWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ValueWrapper& from);
  void MergeFrom(const ValueWrapper& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ValueWrapper* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Value value = 1;
  bool has_value() const;
  void clear_value();
  static const int kValueFieldNumber = 1;
  private:
  const ::google::protobuf::Value& _internal_value() const;
  public:
  const ::google::protobuf::Value& value() const;
  ::google::protobuf::Value* release_value();
  ::google::protobuf::Value* mutable_value();
  void set_allocated_value(::google::protobuf::Value* value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.ValueWrapper)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Value* value_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class RepeatedValueWrapper : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.RepeatedValueWrapper) */ {
 public:
  RepeatedValueWrapper();
  virtual ~RepeatedValueWrapper();

  RepeatedValueWrapper(const RepeatedValueWrapper& from);

  inline RepeatedValueWrapper& operator=(const RepeatedValueWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  RepeatedValueWrapper(RepeatedValueWrapper&& from) noexcept
    : RepeatedValueWrapper() {
    *this = ::std::move(from);
  }

  inline RepeatedValueWrapper& operator=(RepeatedValueWrapper&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RepeatedValueWrapper& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RepeatedValueWrapper* internal_default_instance() {
    return reinterpret_cast<const RepeatedValueWrapper*>(
               &_RepeatedValueWrapper_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(RepeatedValueWrapper* other);
  friend void swap(RepeatedValueWrapper& a, RepeatedValueWrapper& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline RepeatedValueWrapper* New() const final {
    return CreateMaybeMessage<RepeatedValueWrapper>(NULL);
  }

  RepeatedValueWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RepeatedValueWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const RepeatedValueWrapper& from);
  void MergeFrom(const RepeatedValueWrapper& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RepeatedValueWrapper* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.protobuf.Value values = 1;
  int values_size() const;
  void clear_values();
  static const int kValuesFieldNumber = 1;
  ::google::protobuf::Value* mutable_values(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >*
      mutable_values();
  const ::google::protobuf::Value& values(int index) const;
  ::google::protobuf::Value* add_values();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >&
      values() const;

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.RepeatedValueWrapper)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value > values_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ListValueWrapper : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.ListValueWrapper) */ {
 public:
  ListValueWrapper();
  virtual ~ListValueWrapper();

  ListValueWrapper(const ListValueWrapper& from);

  inline ListValueWrapper& operator=(const ListValueWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  ListValueWrapper(ListValueWrapper&& from) noexcept
    : ListValueWrapper() {
    *this = ::std::move(from);
  }

  inline ListValueWrapper& operator=(ListValueWrapper&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ListValueWrapper& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListValueWrapper* internal_default_instance() {
    return reinterpret_cast<const ListValueWrapper*>(
               &_ListValueWrapper_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(ListValueWrapper* other);
  friend void swap(ListValueWrapper& a, ListValueWrapper& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline ListValueWrapper* New() const final {
    return CreateMaybeMessage<ListValueWrapper>(NULL);
  }

  ListValueWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ListValueWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ListValueWrapper& from);
  void MergeFrom(const ListValueWrapper& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListValueWrapper* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.ListValue shopping_list = 1;
  bool has_shopping_list() const;
  void clear_shopping_list();
  static const int kShoppingListFieldNumber = 1;
  private:
  const ::google::protobuf::ListValue& _internal_shopping_list() const;
  public:
  const ::google::protobuf::ListValue& shopping_list() const;
  ::google::protobuf::ListValue* release_shopping_list();
  ::google::protobuf::ListValue* mutable_shopping_list();
  void set_allocated_shopping_list(::google::protobuf::ListValue* shopping_list);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.ListValueWrapper)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::ListValue* shopping_list_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class RepeatedListValueWrapper : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.RepeatedListValueWrapper) */ {
 public:
  RepeatedListValueWrapper();
  virtual ~RepeatedListValueWrapper();

  RepeatedListValueWrapper(const RepeatedListValueWrapper& from);

  inline RepeatedListValueWrapper& operator=(const RepeatedListValueWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  RepeatedListValueWrapper(RepeatedListValueWrapper&& from) noexcept
    : RepeatedListValueWrapper() {
    *this = ::std::move(from);
  }

  inline RepeatedListValueWrapper& operator=(RepeatedListValueWrapper&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RepeatedListValueWrapper& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RepeatedListValueWrapper* internal_default_instance() {
    return reinterpret_cast<const RepeatedListValueWrapper*>(
               &_RepeatedListValueWrapper_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  void Swap(RepeatedListValueWrapper* other);
  friend void swap(RepeatedListValueWrapper& a, RepeatedListValueWrapper& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline RepeatedListValueWrapper* New() const final {
    return CreateMaybeMessage<RepeatedListValueWrapper>(NULL);
  }

  RepeatedListValueWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RepeatedListValueWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const RepeatedListValueWrapper& from);
  void MergeFrom(const RepeatedListValueWrapper& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RepeatedListValueWrapper* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.protobuf.ListValue dimensions = 1;
  int dimensions_size() const;
  void clear_dimensions();
  static const int kDimensionsFieldNumber = 1;
  ::google::protobuf::ListValue* mutable_dimensions(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::ListValue >*
      mutable_dimensions();
  const ::google::protobuf::ListValue& dimensions(int index) const;
  ::google::protobuf::ListValue* add_dimensions();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::ListValue >&
      dimensions() const;

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.RepeatedListValueWrapper)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::ListValue > dimensions_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class MapOfStruct_StructMapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapOfStruct_StructMapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::Struct,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapOfStruct_StructMapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::Struct,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapOfStruct_StructMapEntry_DoNotUse();
  MapOfStruct_StructMapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapOfStruct_StructMapEntry_DoNotUse& other);
  static const MapOfStruct_StructMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapOfStruct_StructMapEntry_DoNotUse*>(&_MapOfStruct_StructMapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

// -------------------------------------------------------------------

class MapOfStruct_ValueMapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapOfStruct_ValueMapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapOfStruct_ValueMapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::Value,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapOfStruct_ValueMapEntry_DoNotUse();
  MapOfStruct_ValueMapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapOfStruct_ValueMapEntry_DoNotUse& other);
  static const MapOfStruct_ValueMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapOfStruct_ValueMapEntry_DoNotUse*>(&_MapOfStruct_ValueMapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

// -------------------------------------------------------------------

class MapOfStruct_ListvalueMapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MapOfStruct_ListvalueMapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::ListValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MapOfStruct_ListvalueMapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::ListValue,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MapOfStruct_ListvalueMapEntry_DoNotUse();
  MapOfStruct_ListvalueMapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MapOfStruct_ListvalueMapEntry_DoNotUse& other);
  static const MapOfStruct_ListvalueMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MapOfStruct_ListvalueMapEntry_DoNotUse*>(&_MapOfStruct_ListvalueMapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

// -------------------------------------------------------------------

class MapOfStruct : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.MapOfStruct) */ {
 public:
  MapOfStruct();
  virtual ~MapOfStruct();

  MapOfStruct(const MapOfStruct& from);

  inline MapOfStruct& operator=(const MapOfStruct& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  MapOfStruct(MapOfStruct&& from) noexcept
    : MapOfStruct() {
    *this = ::std::move(from);
  }

  inline MapOfStruct& operator=(MapOfStruct&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MapOfStruct& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const MapOfStruct* internal_default_instance() {
    return reinterpret_cast<const MapOfStruct*>(
               &_MapOfStruct_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  void Swap(MapOfStruct* other);
  friend void swap(MapOfStruct& a, MapOfStruct& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline MapOfStruct* New() const final {
    return CreateMaybeMessage<MapOfStruct>(NULL);
  }

  MapOfStruct* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MapOfStruct>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MapOfStruct& from);
  void MergeFrom(const MapOfStruct& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MapOfStruct* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<string, .google.protobuf.Struct> struct_map = 1;
  int struct_map_size() const;
  void clear_struct_map();
  static const int kStructMapFieldNumber = 1;
  const ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >&
      struct_map() const;
  ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >*
      mutable_struct_map();

  // map<string, .google.protobuf.Value> value_map = 2;
  int value_map_size() const;
  void clear_value_map();
  static const int kValueMapFieldNumber = 2;
  const ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >&
      value_map() const;
  ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >*
      mutable_value_map();

  // map<string, .google.protobuf.ListValue> listvalue_map = 3;
  int listvalue_map_size() const;
  void clear_listvalue_map();
  static const int kListvalueMapFieldNumber = 3;
  const ::google::protobuf::Map< ::std::string, ::google::protobuf::ListValue >&
      listvalue_map() const;
  ::google::protobuf::Map< ::std::string, ::google::protobuf::ListValue >*
      mutable_listvalue_map();

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.MapOfStruct)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      MapOfStruct_StructMapEntry_DoNotUse,
      ::std::string, ::google::protobuf::Struct,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > struct_map_;
  ::google::protobuf::internal::MapField<
      MapOfStruct_ValueMapEntry_DoNotUse,
      ::std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > value_map_;
  ::google::protobuf::internal::MapField<
      MapOfStruct_ListvalueMapEntry_DoNotUse,
      ::std::string, ::google::protobuf::ListValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > listvalue_map_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Dummy : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.Dummy) */ {
 public:
  Dummy();
  virtual ~Dummy();

  Dummy(const Dummy& from);

  inline Dummy& operator=(const Dummy& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Dummy(Dummy&& from) noexcept
    : Dummy() {
    *this = ::std::move(from);
  }

  inline Dummy& operator=(Dummy&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Dummy& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Dummy* internal_default_instance() {
    return reinterpret_cast<const Dummy*>(
               &_Dummy_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  void Swap(Dummy* other);
  friend void swap(Dummy& a, Dummy& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Dummy* New() const final {
    return CreateMaybeMessage<Dummy>(NULL);
  }

  Dummy* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Dummy>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Dummy& from);
  void MergeFrom(const Dummy& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Dummy* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string text = 1;
  void clear_text();
  static const int kTextFieldNumber = 1;
  const ::std::string& text() const;
  void set_text(const ::std::string& value);
  #if LANG_CXX11
  void set_text(::std::string&& value);
  #endif
  void set_text(const char* value);
  void set_text(const char* value, size_t size);
  ::std::string* mutable_text();
  ::std::string* release_text();
  void set_allocated_text(::std::string* text);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.Dummy)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr text_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class StructType : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.StructType) */ {
 public:
  StructType();
  virtual ~StructType();

  StructType(const StructType& from);

  inline StructType& operator=(const StructType& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  StructType(StructType&& from) noexcept
    : StructType() {
    *this = ::std::move(from);
  }

  inline StructType& operator=(StructType&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StructType& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const StructType* internal_default_instance() {
    return reinterpret_cast<const StructType*>(
               &_StructType_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  void Swap(StructType* other);
  friend void swap(StructType& a, StructType& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline StructType* New() const final {
    return CreateMaybeMessage<StructType>(NULL);
  }

  StructType* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StructType>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StructType& from);
  void MergeFrom(const StructType& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StructType* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Struct object = 1;
  bool has_object() const;
  void clear_object();
  static const int kObjectFieldNumber = 1;
  private:
  const ::google::protobuf::Struct& _internal_object() const;
  public:
  const ::google::protobuf::Struct& object() const;
  ::google::protobuf::Struct* release_object();
  ::google::protobuf::Struct* mutable_object();
  void set_allocated_object(::google::protobuf::Struct* object);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.StructType)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Struct* object_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto::TableStruct;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// StructTestCases

// .google.protobuf.testing.StructWrapper empty_value = 1;
inline bool StructTestCases::has_empty_value() const {
  return this != internal_default_instance() && empty_value_ != NULL;
}
inline void StructTestCases::clear_empty_value() {
  if (GetArenaNoVirtual() == NULL && empty_value_ != NULL) {
    delete empty_value_;
  }
  empty_value_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_empty_value() const {
  return *empty_value_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::empty_value() const {
  const ::google::protobuf::testing::StructWrapper* p = empty_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.empty_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_empty_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.empty_value)
  
  ::google::protobuf::testing::StructWrapper* temp = empty_value_;
  empty_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_empty_value() {
  
  if (empty_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    empty_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.empty_value)
  return empty_value_;
}
inline void StructTestCases::set_allocated_empty_value(::google::protobuf::testing::StructWrapper* empty_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_value_;
  }
  if (empty_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_value, submessage_arena);
    }
    
  } else {
    
  }
  empty_value_ = empty_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.empty_value)
}

// .google.protobuf.testing.StructWrapper empty_value2 = 2;
inline bool StructTestCases::has_empty_value2() const {
  return this != internal_default_instance() && empty_value2_ != NULL;
}
inline void StructTestCases::clear_empty_value2() {
  if (GetArenaNoVirtual() == NULL && empty_value2_ != NULL) {
    delete empty_value2_;
  }
  empty_value2_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_empty_value2() const {
  return *empty_value2_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::empty_value2() const {
  const ::google::protobuf::testing::StructWrapper* p = empty_value2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.empty_value2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_empty_value2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.empty_value2)
  
  ::google::protobuf::testing::StructWrapper* temp = empty_value2_;
  empty_value2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_empty_value2() {
  
  if (empty_value2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    empty_value2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.empty_value2)
  return empty_value2_;
}
inline void StructTestCases::set_allocated_empty_value2(::google::protobuf::testing::StructWrapper* empty_value2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_value2_;
  }
  if (empty_value2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_value2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_value2, submessage_arena);
    }
    
  } else {
    
  }
  empty_value2_ = empty_value2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.empty_value2)
}

// .google.protobuf.testing.StructWrapper null_value = 3;
inline bool StructTestCases::has_null_value() const {
  return this != internal_default_instance() && null_value_ != NULL;
}
inline void StructTestCases::clear_null_value() {
  if (GetArenaNoVirtual() == NULL && null_value_ != NULL) {
    delete null_value_;
  }
  null_value_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_null_value() const {
  return *null_value_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::null_value() const {
  const ::google::protobuf::testing::StructWrapper* p = null_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.null_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_null_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.null_value)
  
  ::google::protobuf::testing::StructWrapper* temp = null_value_;
  null_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_null_value() {
  
  if (null_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    null_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.null_value)
  return null_value_;
}
inline void StructTestCases::set_allocated_null_value(::google::protobuf::testing::StructWrapper* null_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete null_value_;
  }
  if (null_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      null_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, null_value, submessage_arena);
    }
    
  } else {
    
  }
  null_value_ = null_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.null_value)
}

// .google.protobuf.testing.StructWrapper simple_struct = 4;
inline bool StructTestCases::has_simple_struct() const {
  return this != internal_default_instance() && simple_struct_ != NULL;
}
inline void StructTestCases::clear_simple_struct() {
  if (GetArenaNoVirtual() == NULL && simple_struct_ != NULL) {
    delete simple_struct_;
  }
  simple_struct_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_simple_struct() const {
  return *simple_struct_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::simple_struct() const {
  const ::google::protobuf::testing::StructWrapper* p = simple_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.simple_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_simple_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.simple_struct)
  
  ::google::protobuf::testing::StructWrapper* temp = simple_struct_;
  simple_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_simple_struct() {
  
  if (simple_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    simple_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.simple_struct)
  return simple_struct_;
}
inline void StructTestCases::set_allocated_simple_struct(::google::protobuf::testing::StructWrapper* simple_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete simple_struct_;
  }
  if (simple_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      simple_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, simple_struct, submessage_arena);
    }
    
  } else {
    
  }
  simple_struct_ = simple_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.simple_struct)
}

// .google.protobuf.testing.StructWrapper longer_struct = 5;
inline bool StructTestCases::has_longer_struct() const {
  return this != internal_default_instance() && longer_struct_ != NULL;
}
inline void StructTestCases::clear_longer_struct() {
  if (GetArenaNoVirtual() == NULL && longer_struct_ != NULL) {
    delete longer_struct_;
  }
  longer_struct_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_longer_struct() const {
  return *longer_struct_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::longer_struct() const {
  const ::google::protobuf::testing::StructWrapper* p = longer_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.longer_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_longer_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.longer_struct)
  
  ::google::protobuf::testing::StructWrapper* temp = longer_struct_;
  longer_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_longer_struct() {
  
  if (longer_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    longer_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.longer_struct)
  return longer_struct_;
}
inline void StructTestCases::set_allocated_longer_struct(::google::protobuf::testing::StructWrapper* longer_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete longer_struct_;
  }
  if (longer_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      longer_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, longer_struct, submessage_arena);
    }
    
  } else {
    
  }
  longer_struct_ = longer_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.longer_struct)
}

// .google.protobuf.testing.StructWrapper struct_with_nested_struct = 6;
inline bool StructTestCases::has_struct_with_nested_struct() const {
  return this != internal_default_instance() && struct_with_nested_struct_ != NULL;
}
inline void StructTestCases::clear_struct_with_nested_struct() {
  if (GetArenaNoVirtual() == NULL && struct_with_nested_struct_ != NULL) {
    delete struct_with_nested_struct_;
  }
  struct_with_nested_struct_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_nested_struct() const {
  return *struct_with_nested_struct_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_nested_struct() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_nested_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_nested_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_nested_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_nested_struct)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_nested_struct_;
  struct_with_nested_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_nested_struct() {
  
  if (struct_with_nested_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_nested_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_nested_struct)
  return struct_with_nested_struct_;
}
inline void StructTestCases::set_allocated_struct_with_nested_struct(::google::protobuf::testing::StructWrapper* struct_with_nested_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_nested_struct_;
  }
  if (struct_with_nested_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_nested_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_nested_struct, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_nested_struct_ = struct_with_nested_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_nested_struct)
}

// .google.protobuf.testing.StructWrapper struct_with_nested_list = 7;
inline bool StructTestCases::has_struct_with_nested_list() const {
  return this != internal_default_instance() && struct_with_nested_list_ != NULL;
}
inline void StructTestCases::clear_struct_with_nested_list() {
  if (GetArenaNoVirtual() == NULL && struct_with_nested_list_ != NULL) {
    delete struct_with_nested_list_;
  }
  struct_with_nested_list_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_nested_list() const {
  return *struct_with_nested_list_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_nested_list() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_nested_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_nested_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_nested_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_nested_list)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_nested_list_;
  struct_with_nested_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_nested_list() {
  
  if (struct_with_nested_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_nested_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_nested_list)
  return struct_with_nested_list_;
}
inline void StructTestCases::set_allocated_struct_with_nested_list(::google::protobuf::testing::StructWrapper* struct_with_nested_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_nested_list_;
  }
  if (struct_with_nested_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_nested_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_nested_list, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_nested_list_ = struct_with_nested_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_nested_list)
}

// .google.protobuf.testing.StructWrapper struct_with_list_of_nulls = 8;
inline bool StructTestCases::has_struct_with_list_of_nulls() const {
  return this != internal_default_instance() && struct_with_list_of_nulls_ != NULL;
}
inline void StructTestCases::clear_struct_with_list_of_nulls() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_nulls_ != NULL) {
    delete struct_with_list_of_nulls_;
  }
  struct_with_list_of_nulls_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_list_of_nulls() const {
  return *struct_with_list_of_nulls_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_list_of_nulls() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_list_of_nulls_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_list_of_nulls)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_list_of_nulls() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_list_of_nulls)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_list_of_nulls_;
  struct_with_list_of_nulls_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_list_of_nulls() {
  
  if (struct_with_list_of_nulls_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_list_of_nulls_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_list_of_nulls)
  return struct_with_list_of_nulls_;
}
inline void StructTestCases::set_allocated_struct_with_list_of_nulls(::google::protobuf::testing::StructWrapper* struct_with_list_of_nulls) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_of_nulls_;
  }
  if (struct_with_list_of_nulls) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_of_nulls = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_of_nulls, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_of_nulls_ = struct_with_list_of_nulls;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_list_of_nulls)
}

// .google.protobuf.testing.StructWrapper struct_with_list_of_lists = 9;
inline bool StructTestCases::has_struct_with_list_of_lists() const {
  return this != internal_default_instance() && struct_with_list_of_lists_ != NULL;
}
inline void StructTestCases::clear_struct_with_list_of_lists() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_lists_ != NULL) {
    delete struct_with_list_of_lists_;
  }
  struct_with_list_of_lists_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_list_of_lists() const {
  return *struct_with_list_of_lists_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_list_of_lists() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_list_of_lists_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_list_of_lists)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_list_of_lists() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_list_of_lists)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_list_of_lists_;
  struct_with_list_of_lists_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_list_of_lists() {
  
  if (struct_with_list_of_lists_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_list_of_lists_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_list_of_lists)
  return struct_with_list_of_lists_;
}
inline void StructTestCases::set_allocated_struct_with_list_of_lists(::google::protobuf::testing::StructWrapper* struct_with_list_of_lists) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_of_lists_;
  }
  if (struct_with_list_of_lists) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_of_lists = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_of_lists, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_of_lists_ = struct_with_list_of_lists;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_list_of_lists)
}

// .google.protobuf.testing.StructWrapper struct_with_list_of_structs = 10;
inline bool StructTestCases::has_struct_with_list_of_structs() const {
  return this != internal_default_instance() && struct_with_list_of_structs_ != NULL;
}
inline void StructTestCases::clear_struct_with_list_of_structs() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_structs_ != NULL) {
    delete struct_with_list_of_structs_;
  }
  struct_with_list_of_structs_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_list_of_structs() const {
  return *struct_with_list_of_structs_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_list_of_structs() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_list_of_structs_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_list_of_structs)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_list_of_structs() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_list_of_structs)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_list_of_structs_;
  struct_with_list_of_structs_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_list_of_structs() {
  
  if (struct_with_list_of_structs_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_list_of_structs_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_list_of_structs)
  return struct_with_list_of_structs_;
}
inline void StructTestCases::set_allocated_struct_with_list_of_structs(::google::protobuf::testing::StructWrapper* struct_with_list_of_structs) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_of_structs_;
  }
  if (struct_with_list_of_structs) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_of_structs = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_of_structs, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_of_structs_ = struct_with_list_of_structs;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_list_of_structs)
}

// .google.protobuf.testing.StructWrapper struct_with_empty_list = 11;
inline bool StructTestCases::has_struct_with_empty_list() const {
  return this != internal_default_instance() && struct_with_empty_list_ != NULL;
}
inline void StructTestCases::clear_struct_with_empty_list() {
  if (GetArenaNoVirtual() == NULL && struct_with_empty_list_ != NULL) {
    delete struct_with_empty_list_;
  }
  struct_with_empty_list_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_empty_list() const {
  return *struct_with_empty_list_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_empty_list() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_empty_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_empty_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_empty_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_empty_list)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_empty_list_;
  struct_with_empty_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_empty_list() {
  
  if (struct_with_empty_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_empty_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_empty_list)
  return struct_with_empty_list_;
}
inline void StructTestCases::set_allocated_struct_with_empty_list(::google::protobuf::testing::StructWrapper* struct_with_empty_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_empty_list_;
  }
  if (struct_with_empty_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_empty_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_empty_list, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_empty_list_ = struct_with_empty_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_empty_list)
}

// .google.protobuf.testing.StructWrapper struct_with_list_with_empty_struct = 12;
inline bool StructTestCases::has_struct_with_list_with_empty_struct() const {
  return this != internal_default_instance() && struct_with_list_with_empty_struct_ != NULL;
}
inline void StructTestCases::clear_struct_with_list_with_empty_struct() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_with_empty_struct_ != NULL) {
    delete struct_with_list_with_empty_struct_;
  }
  struct_with_list_with_empty_struct_ = NULL;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::_internal_struct_with_list_with_empty_struct() const {
  return *struct_with_list_with_empty_struct_;
}
inline const ::google::protobuf::testing::StructWrapper& StructTestCases::struct_with_list_with_empty_struct() const {
  const ::google::protobuf::testing::StructWrapper* p = struct_with_list_with_empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.struct_with_list_with_empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructWrapper*>(
      &::google::protobuf::testing::_StructWrapper_default_instance_);
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::release_struct_with_list_with_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.struct_with_list_with_empty_struct)
  
  ::google::protobuf::testing::StructWrapper* temp = struct_with_list_with_empty_struct_;
  struct_with_list_with_empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructWrapper* StructTestCases::mutable_struct_with_list_with_empty_struct() {
  
  if (struct_with_list_with_empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructWrapper>(GetArenaNoVirtual());
    struct_with_list_with_empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.struct_with_list_with_empty_struct)
  return struct_with_list_with_empty_struct_;
}
inline void StructTestCases::set_allocated_struct_with_list_with_empty_struct(::google::protobuf::testing::StructWrapper* struct_with_list_with_empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_with_empty_struct_;
  }
  if (struct_with_list_with_empty_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_with_empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_with_empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_with_empty_struct_ = struct_with_list_with_empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.struct_with_list_with_empty_struct)
}

// .google.protobuf.Struct top_level_struct = 13;
inline bool StructTestCases::has_top_level_struct() const {
  return this != internal_default_instance() && top_level_struct_ != NULL;
}
inline const ::google::protobuf::Struct& StructTestCases::_internal_top_level_struct() const {
  return *top_level_struct_;
}
inline const ::google::protobuf::Struct& StructTestCases::top_level_struct() const {
  const ::google::protobuf::Struct* p = top_level_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* StructTestCases::release_top_level_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_struct)
  
  ::google::protobuf::Struct* temp = top_level_struct_;
  top_level_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* StructTestCases::mutable_top_level_struct() {
  
  if (top_level_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    top_level_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_struct)
  return top_level_struct_;
}
inline void StructTestCases::set_allocated_top_level_struct(::google::protobuf::Struct* top_level_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_struct_);
  }
  if (top_level_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_struct_ = top_level_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_struct)
}

// .google.protobuf.Struct top_level_struct_with_empty_list = 14;
inline bool StructTestCases::has_top_level_struct_with_empty_list() const {
  return this != internal_default_instance() && top_level_struct_with_empty_list_ != NULL;
}
inline const ::google::protobuf::Struct& StructTestCases::_internal_top_level_struct_with_empty_list() const {
  return *top_level_struct_with_empty_list_;
}
inline const ::google::protobuf::Struct& StructTestCases::top_level_struct_with_empty_list() const {
  const ::google::protobuf::Struct* p = top_level_struct_with_empty_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_struct_with_empty_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* StructTestCases::release_top_level_struct_with_empty_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_struct_with_empty_list)
  
  ::google::protobuf::Struct* temp = top_level_struct_with_empty_list_;
  top_level_struct_with_empty_list_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* StructTestCases::mutable_top_level_struct_with_empty_list() {
  
  if (top_level_struct_with_empty_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    top_level_struct_with_empty_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_struct_with_empty_list)
  return top_level_struct_with_empty_list_;
}
inline void StructTestCases::set_allocated_top_level_struct_with_empty_list(::google::protobuf::Struct* top_level_struct_with_empty_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_struct_with_empty_list_);
  }
  if (top_level_struct_with_empty_list) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_struct_with_empty_list)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_struct_with_empty_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_struct_with_empty_list, submessage_arena);
    }
    
  } else {
    
  }
  top_level_struct_with_empty_list_ = top_level_struct_with_empty_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_struct_with_empty_list)
}

// .google.protobuf.Struct top_level_struct_with_list_with_empty_struct = 15;
inline bool StructTestCases::has_top_level_struct_with_list_with_empty_struct() const {
  return this != internal_default_instance() && top_level_struct_with_list_with_empty_struct_ != NULL;
}
inline const ::google::protobuf::Struct& StructTestCases::_internal_top_level_struct_with_list_with_empty_struct() const {
  return *top_level_struct_with_list_with_empty_struct_;
}
inline const ::google::protobuf::Struct& StructTestCases::top_level_struct_with_list_with_empty_struct() const {
  const ::google::protobuf::Struct* p = top_level_struct_with_list_with_empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_struct_with_list_with_empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* StructTestCases::release_top_level_struct_with_list_with_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_struct_with_list_with_empty_struct)
  
  ::google::protobuf::Struct* temp = top_level_struct_with_list_with_empty_struct_;
  top_level_struct_with_list_with_empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* StructTestCases::mutable_top_level_struct_with_list_with_empty_struct() {
  
  if (top_level_struct_with_list_with_empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    top_level_struct_with_list_with_empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_struct_with_list_with_empty_struct)
  return top_level_struct_with_list_with_empty_struct_;
}
inline void StructTestCases::set_allocated_top_level_struct_with_list_with_empty_struct(::google::protobuf::Struct* top_level_struct_with_list_with_empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_struct_with_list_with_empty_struct_);
  }
  if (top_level_struct_with_list_with_empty_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_struct_with_list_with_empty_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_struct_with_list_with_empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_struct_with_list_with_empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_struct_with_list_with_empty_struct_ = top_level_struct_with_list_with_empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_struct_with_list_with_empty_struct)
}

// .google.protobuf.testing.ValueWrapper value_wrapper_simple = 16;
inline bool StructTestCases::has_value_wrapper_simple() const {
  return this != internal_default_instance() && value_wrapper_simple_ != NULL;
}
inline void StructTestCases::clear_value_wrapper_simple() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_simple_ != NULL) {
    delete value_wrapper_simple_;
  }
  value_wrapper_simple_ = NULL;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::_internal_value_wrapper_simple() const {
  return *value_wrapper_simple_;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::value_wrapper_simple() const {
  const ::google::protobuf::testing::ValueWrapper* p = value_wrapper_simple_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.value_wrapper_simple)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueWrapper*>(
      &::google::protobuf::testing::_ValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::release_value_wrapper_simple() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.value_wrapper_simple)
  
  ::google::protobuf::testing::ValueWrapper* temp = value_wrapper_simple_;
  value_wrapper_simple_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::mutable_value_wrapper_simple() {
  
  if (value_wrapper_simple_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueWrapper>(GetArenaNoVirtual());
    value_wrapper_simple_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.value_wrapper_simple)
  return value_wrapper_simple_;
}
inline void StructTestCases::set_allocated_value_wrapper_simple(::google::protobuf::testing::ValueWrapper* value_wrapper_simple) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_simple_;
  }
  if (value_wrapper_simple) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_simple = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_simple, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_simple_ = value_wrapper_simple;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.value_wrapper_simple)
}

// .google.protobuf.testing.ValueWrapper value_wrapper_with_struct = 17;
inline bool StructTestCases::has_value_wrapper_with_struct() const {
  return this != internal_default_instance() && value_wrapper_with_struct_ != NULL;
}
inline void StructTestCases::clear_value_wrapper_with_struct() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_struct_ != NULL) {
    delete value_wrapper_with_struct_;
  }
  value_wrapper_with_struct_ = NULL;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::_internal_value_wrapper_with_struct() const {
  return *value_wrapper_with_struct_;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::value_wrapper_with_struct() const {
  const ::google::protobuf::testing::ValueWrapper* p = value_wrapper_with_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.value_wrapper_with_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueWrapper*>(
      &::google::protobuf::testing::_ValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::release_value_wrapper_with_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.value_wrapper_with_struct)
  
  ::google::protobuf::testing::ValueWrapper* temp = value_wrapper_with_struct_;
  value_wrapper_with_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::mutable_value_wrapper_with_struct() {
  
  if (value_wrapper_with_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueWrapper>(GetArenaNoVirtual());
    value_wrapper_with_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.value_wrapper_with_struct)
  return value_wrapper_with_struct_;
}
inline void StructTestCases::set_allocated_value_wrapper_with_struct(::google::protobuf::testing::ValueWrapper* value_wrapper_with_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_with_struct_;
  }
  if (value_wrapper_with_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_with_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_with_struct, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_with_struct_ = value_wrapper_with_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.value_wrapper_with_struct)
}

// .google.protobuf.testing.ValueWrapper value_wrapper_with_list = 18;
inline bool StructTestCases::has_value_wrapper_with_list() const {
  return this != internal_default_instance() && value_wrapper_with_list_ != NULL;
}
inline void StructTestCases::clear_value_wrapper_with_list() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_list_ != NULL) {
    delete value_wrapper_with_list_;
  }
  value_wrapper_with_list_ = NULL;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::_internal_value_wrapper_with_list() const {
  return *value_wrapper_with_list_;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::value_wrapper_with_list() const {
  const ::google::protobuf::testing::ValueWrapper* p = value_wrapper_with_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.value_wrapper_with_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueWrapper*>(
      &::google::protobuf::testing::_ValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::release_value_wrapper_with_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.value_wrapper_with_list)
  
  ::google::protobuf::testing::ValueWrapper* temp = value_wrapper_with_list_;
  value_wrapper_with_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::mutable_value_wrapper_with_list() {
  
  if (value_wrapper_with_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueWrapper>(GetArenaNoVirtual());
    value_wrapper_with_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.value_wrapper_with_list)
  return value_wrapper_with_list_;
}
inline void StructTestCases::set_allocated_value_wrapper_with_list(::google::protobuf::testing::ValueWrapper* value_wrapper_with_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_with_list_;
  }
  if (value_wrapper_with_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_with_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_with_list, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_with_list_ = value_wrapper_with_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.value_wrapper_with_list)
}

// .google.protobuf.testing.ValueWrapper value_wrapper_with_empty_list = 19;
inline bool StructTestCases::has_value_wrapper_with_empty_list() const {
  return this != internal_default_instance() && value_wrapper_with_empty_list_ != NULL;
}
inline void StructTestCases::clear_value_wrapper_with_empty_list() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_empty_list_ != NULL) {
    delete value_wrapper_with_empty_list_;
  }
  value_wrapper_with_empty_list_ = NULL;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::_internal_value_wrapper_with_empty_list() const {
  return *value_wrapper_with_empty_list_;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::value_wrapper_with_empty_list() const {
  const ::google::protobuf::testing::ValueWrapper* p = value_wrapper_with_empty_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.value_wrapper_with_empty_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueWrapper*>(
      &::google::protobuf::testing::_ValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::release_value_wrapper_with_empty_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.value_wrapper_with_empty_list)
  
  ::google::protobuf::testing::ValueWrapper* temp = value_wrapper_with_empty_list_;
  value_wrapper_with_empty_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::mutable_value_wrapper_with_empty_list() {
  
  if (value_wrapper_with_empty_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueWrapper>(GetArenaNoVirtual());
    value_wrapper_with_empty_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.value_wrapper_with_empty_list)
  return value_wrapper_with_empty_list_;
}
inline void StructTestCases::set_allocated_value_wrapper_with_empty_list(::google::protobuf::testing::ValueWrapper* value_wrapper_with_empty_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_with_empty_list_;
  }
  if (value_wrapper_with_empty_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_with_empty_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_with_empty_list, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_with_empty_list_ = value_wrapper_with_empty_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.value_wrapper_with_empty_list)
}

// .google.protobuf.testing.ValueWrapper value_wrapper_with_list_with_empty_struct = 20;
inline bool StructTestCases::has_value_wrapper_with_list_with_empty_struct() const {
  return this != internal_default_instance() && value_wrapper_with_list_with_empty_struct_ != NULL;
}
inline void StructTestCases::clear_value_wrapper_with_list_with_empty_struct() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_list_with_empty_struct_ != NULL) {
    delete value_wrapper_with_list_with_empty_struct_;
  }
  value_wrapper_with_list_with_empty_struct_ = NULL;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::_internal_value_wrapper_with_list_with_empty_struct() const {
  return *value_wrapper_with_list_with_empty_struct_;
}
inline const ::google::protobuf::testing::ValueWrapper& StructTestCases::value_wrapper_with_list_with_empty_struct() const {
  const ::google::protobuf::testing::ValueWrapper* p = value_wrapper_with_list_with_empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.value_wrapper_with_list_with_empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueWrapper*>(
      &::google::protobuf::testing::_ValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::release_value_wrapper_with_list_with_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.value_wrapper_with_list_with_empty_struct)
  
  ::google::protobuf::testing::ValueWrapper* temp = value_wrapper_with_list_with_empty_struct_;
  value_wrapper_with_list_with_empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueWrapper* StructTestCases::mutable_value_wrapper_with_list_with_empty_struct() {
  
  if (value_wrapper_with_list_with_empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueWrapper>(GetArenaNoVirtual());
    value_wrapper_with_list_with_empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.value_wrapper_with_list_with_empty_struct)
  return value_wrapper_with_list_with_empty_struct_;
}
inline void StructTestCases::set_allocated_value_wrapper_with_list_with_empty_struct(::google::protobuf::testing::ValueWrapper* value_wrapper_with_list_with_empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_with_list_with_empty_struct_;
  }
  if (value_wrapper_with_list_with_empty_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_with_list_with_empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_with_list_with_empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_with_list_with_empty_struct_ = value_wrapper_with_list_with_empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.value_wrapper_with_list_with_empty_struct)
}

// .google.protobuf.testing.ListValueWrapper list_value_wrapper = 21;
inline bool StructTestCases::has_list_value_wrapper() const {
  return this != internal_default_instance() && list_value_wrapper_ != NULL;
}
inline void StructTestCases::clear_list_value_wrapper() {
  if (GetArenaNoVirtual() == NULL && list_value_wrapper_ != NULL) {
    delete list_value_wrapper_;
  }
  list_value_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::ListValueWrapper& StructTestCases::_internal_list_value_wrapper() const {
  return *list_value_wrapper_;
}
inline const ::google::protobuf::testing::ListValueWrapper& StructTestCases::list_value_wrapper() const {
  const ::google::protobuf::testing::ListValueWrapper* p = list_value_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.list_value_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ListValueWrapper*>(
      &::google::protobuf::testing::_ListValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ListValueWrapper* StructTestCases::release_list_value_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.list_value_wrapper)
  
  ::google::protobuf::testing::ListValueWrapper* temp = list_value_wrapper_;
  list_value_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ListValueWrapper* StructTestCases::mutable_list_value_wrapper() {
  
  if (list_value_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ListValueWrapper>(GetArenaNoVirtual());
    list_value_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.list_value_wrapper)
  return list_value_wrapper_;
}
inline void StructTestCases::set_allocated_list_value_wrapper(::google::protobuf::testing::ListValueWrapper* list_value_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete list_value_wrapper_;
  }
  if (list_value_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      list_value_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, list_value_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  list_value_wrapper_ = list_value_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.list_value_wrapper)
}

// .google.protobuf.testing.ListValueWrapper list_value_wrapper_with_empty_list = 22;
inline bool StructTestCases::has_list_value_wrapper_with_empty_list() const {
  return this != internal_default_instance() && list_value_wrapper_with_empty_list_ != NULL;
}
inline void StructTestCases::clear_list_value_wrapper_with_empty_list() {
  if (GetArenaNoVirtual() == NULL && list_value_wrapper_with_empty_list_ != NULL) {
    delete list_value_wrapper_with_empty_list_;
  }
  list_value_wrapper_with_empty_list_ = NULL;
}
inline const ::google::protobuf::testing::ListValueWrapper& StructTestCases::_internal_list_value_wrapper_with_empty_list() const {
  return *list_value_wrapper_with_empty_list_;
}
inline const ::google::protobuf::testing::ListValueWrapper& StructTestCases::list_value_wrapper_with_empty_list() const {
  const ::google::protobuf::testing::ListValueWrapper* p = list_value_wrapper_with_empty_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.list_value_wrapper_with_empty_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ListValueWrapper*>(
      &::google::protobuf::testing::_ListValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ListValueWrapper* StructTestCases::release_list_value_wrapper_with_empty_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.list_value_wrapper_with_empty_list)
  
  ::google::protobuf::testing::ListValueWrapper* temp = list_value_wrapper_with_empty_list_;
  list_value_wrapper_with_empty_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ListValueWrapper* StructTestCases::mutable_list_value_wrapper_with_empty_list() {
  
  if (list_value_wrapper_with_empty_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ListValueWrapper>(GetArenaNoVirtual());
    list_value_wrapper_with_empty_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.list_value_wrapper_with_empty_list)
  return list_value_wrapper_with_empty_list_;
}
inline void StructTestCases::set_allocated_list_value_wrapper_with_empty_list(::google::protobuf::testing::ListValueWrapper* list_value_wrapper_with_empty_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete list_value_wrapper_with_empty_list_;
  }
  if (list_value_wrapper_with_empty_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      list_value_wrapper_with_empty_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, list_value_wrapper_with_empty_list, submessage_arena);
    }
    
  } else {
    
  }
  list_value_wrapper_with_empty_list_ = list_value_wrapper_with_empty_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.list_value_wrapper_with_empty_list)
}

// .google.protobuf.testing.ListValueWrapper list_value_wrapper_with_list_with_empty_struct = 23;
inline bool StructTestCases::has_list_value_wrapper_with_list_with_empty_struct() const {
  return this != internal_default_instance() && list_value_wrapper_with_list_with_empty_struct_ != NULL;
}
inline void StructTestCases::clear_list_value_wrapper_with_list_with_empty_struct() {
  if (GetArenaNoVirtual() == NULL && list_value_wrapper_with_list_with_empty_struct_ != NULL) {
    delete list_value_wrapper_with_list_with_empty_struct_;
  }
  list_value_wrapper_with_list_with_empty_struct_ = NULL;
}
inline const ::google::protobuf::testing::ListValueWrapper& StructTestCases::_internal_list_value_wrapper_with_list_with_empty_struct() const {
  return *list_value_wrapper_with_list_with_empty_struct_;
}
inline const ::google::protobuf::testing::ListValueWrapper& StructTestCases::list_value_wrapper_with_list_with_empty_struct() const {
  const ::google::protobuf::testing::ListValueWrapper* p = list_value_wrapper_with_list_with_empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.list_value_wrapper_with_list_with_empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ListValueWrapper*>(
      &::google::protobuf::testing::_ListValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::ListValueWrapper* StructTestCases::release_list_value_wrapper_with_list_with_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.list_value_wrapper_with_list_with_empty_struct)
  
  ::google::protobuf::testing::ListValueWrapper* temp = list_value_wrapper_with_list_with_empty_struct_;
  list_value_wrapper_with_list_with_empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ListValueWrapper* StructTestCases::mutable_list_value_wrapper_with_list_with_empty_struct() {
  
  if (list_value_wrapper_with_list_with_empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ListValueWrapper>(GetArenaNoVirtual());
    list_value_wrapper_with_list_with_empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.list_value_wrapper_with_list_with_empty_struct)
  return list_value_wrapper_with_list_with_empty_struct_;
}
inline void StructTestCases::set_allocated_list_value_wrapper_with_list_with_empty_struct(::google::protobuf::testing::ListValueWrapper* list_value_wrapper_with_list_with_empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete list_value_wrapper_with_list_with_empty_struct_;
  }
  if (list_value_wrapper_with_list_with_empty_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      list_value_wrapper_with_list_with_empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, list_value_wrapper_with_list_with_empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  list_value_wrapper_with_list_with_empty_struct_ = list_value_wrapper_with_list_with_empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.list_value_wrapper_with_list_with_empty_struct)
}

// .google.protobuf.Value top_level_value_simple = 24;
inline bool StructTestCases::has_top_level_value_simple() const {
  return this != internal_default_instance() && top_level_value_simple_ != NULL;
}
inline const ::google::protobuf::Value& StructTestCases::_internal_top_level_value_simple() const {
  return *top_level_value_simple_;
}
inline const ::google::protobuf::Value& StructTestCases::top_level_value_simple() const {
  const ::google::protobuf::Value* p = top_level_value_simple_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_value_simple)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* StructTestCases::release_top_level_value_simple() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_value_simple)
  
  ::google::protobuf::Value* temp = top_level_value_simple_;
  top_level_value_simple_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* StructTestCases::mutable_top_level_value_simple() {
  
  if (top_level_value_simple_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_simple_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_value_simple)
  return top_level_value_simple_;
}
inline void StructTestCases::set_allocated_top_level_value_simple(::google::protobuf::Value* top_level_value_simple) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_simple_);
  }
  if (top_level_value_simple) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_simple)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_simple = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_simple, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_simple_ = top_level_value_simple;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_value_simple)
}

// .google.protobuf.Value top_level_value_with_struct = 25;
inline bool StructTestCases::has_top_level_value_with_struct() const {
  return this != internal_default_instance() && top_level_value_with_struct_ != NULL;
}
inline const ::google::protobuf::Value& StructTestCases::_internal_top_level_value_with_struct() const {
  return *top_level_value_with_struct_;
}
inline const ::google::protobuf::Value& StructTestCases::top_level_value_with_struct() const {
  const ::google::protobuf::Value* p = top_level_value_with_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_value_with_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* StructTestCases::release_top_level_value_with_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_value_with_struct)
  
  ::google::protobuf::Value* temp = top_level_value_with_struct_;
  top_level_value_with_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* StructTestCases::mutable_top_level_value_with_struct() {
  
  if (top_level_value_with_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_with_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_value_with_struct)
  return top_level_value_with_struct_;
}
inline void StructTestCases::set_allocated_top_level_value_with_struct(::google::protobuf::Value* top_level_value_with_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_with_struct_);
  }
  if (top_level_value_with_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_with_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_with_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_with_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_with_struct_ = top_level_value_with_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_value_with_struct)
}

// .google.protobuf.Value top_level_value_with_list = 26;
inline bool StructTestCases::has_top_level_value_with_list() const {
  return this != internal_default_instance() && top_level_value_with_list_ != NULL;
}
inline const ::google::protobuf::Value& StructTestCases::_internal_top_level_value_with_list() const {
  return *top_level_value_with_list_;
}
inline const ::google::protobuf::Value& StructTestCases::top_level_value_with_list() const {
  const ::google::protobuf::Value* p = top_level_value_with_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_value_with_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* StructTestCases::release_top_level_value_with_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_value_with_list)
  
  ::google::protobuf::Value* temp = top_level_value_with_list_;
  top_level_value_with_list_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* StructTestCases::mutable_top_level_value_with_list() {
  
  if (top_level_value_with_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_with_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_value_with_list)
  return top_level_value_with_list_;
}
inline void StructTestCases::set_allocated_top_level_value_with_list(::google::protobuf::Value* top_level_value_with_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_with_list_);
  }
  if (top_level_value_with_list) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_with_list)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_with_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_with_list, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_with_list_ = top_level_value_with_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_value_with_list)
}

// .google.protobuf.Value top_level_value_with_empty_list = 27;
inline bool StructTestCases::has_top_level_value_with_empty_list() const {
  return this != internal_default_instance() && top_level_value_with_empty_list_ != NULL;
}
inline const ::google::protobuf::Value& StructTestCases::_internal_top_level_value_with_empty_list() const {
  return *top_level_value_with_empty_list_;
}
inline const ::google::protobuf::Value& StructTestCases::top_level_value_with_empty_list() const {
  const ::google::protobuf::Value* p = top_level_value_with_empty_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_value_with_empty_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* StructTestCases::release_top_level_value_with_empty_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_value_with_empty_list)
  
  ::google::protobuf::Value* temp = top_level_value_with_empty_list_;
  top_level_value_with_empty_list_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* StructTestCases::mutable_top_level_value_with_empty_list() {
  
  if (top_level_value_with_empty_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_with_empty_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_value_with_empty_list)
  return top_level_value_with_empty_list_;
}
inline void StructTestCases::set_allocated_top_level_value_with_empty_list(::google::protobuf::Value* top_level_value_with_empty_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_with_empty_list_);
  }
  if (top_level_value_with_empty_list) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_with_empty_list)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_with_empty_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_with_empty_list, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_with_empty_list_ = top_level_value_with_empty_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_value_with_empty_list)
}

// .google.protobuf.Value top_level_value_with_list_with_empty_struct = 28;
inline bool StructTestCases::has_top_level_value_with_list_with_empty_struct() const {
  return this != internal_default_instance() && top_level_value_with_list_with_empty_struct_ != NULL;
}
inline const ::google::protobuf::Value& StructTestCases::_internal_top_level_value_with_list_with_empty_struct() const {
  return *top_level_value_with_list_with_empty_struct_;
}
inline const ::google::protobuf::Value& StructTestCases::top_level_value_with_list_with_empty_struct() const {
  const ::google::protobuf::Value* p = top_level_value_with_list_with_empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_value_with_list_with_empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* StructTestCases::release_top_level_value_with_list_with_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_value_with_list_with_empty_struct)
  
  ::google::protobuf::Value* temp = top_level_value_with_list_with_empty_struct_;
  top_level_value_with_list_with_empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* StructTestCases::mutable_top_level_value_with_list_with_empty_struct() {
  
  if (top_level_value_with_list_with_empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_with_list_with_empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_value_with_list_with_empty_struct)
  return top_level_value_with_list_with_empty_struct_;
}
inline void StructTestCases::set_allocated_top_level_value_with_list_with_empty_struct(::google::protobuf::Value* top_level_value_with_list_with_empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_with_list_with_empty_struct_);
  }
  if (top_level_value_with_list_with_empty_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_with_list_with_empty_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_with_list_with_empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_with_list_with_empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_with_list_with_empty_struct_ = top_level_value_with_list_with_empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_value_with_list_with_empty_struct)
}

// .google.protobuf.ListValue top_level_listvalue = 29;
inline bool StructTestCases::has_top_level_listvalue() const {
  return this != internal_default_instance() && top_level_listvalue_ != NULL;
}
inline const ::google::protobuf::ListValue& StructTestCases::_internal_top_level_listvalue() const {
  return *top_level_listvalue_;
}
inline const ::google::protobuf::ListValue& StructTestCases::top_level_listvalue() const {
  const ::google::protobuf::ListValue* p = top_level_listvalue_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_listvalue)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::ListValue*>(
      &::google::protobuf::_ListValue_default_instance_);
}
inline ::google::protobuf::ListValue* StructTestCases::release_top_level_listvalue() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_listvalue)
  
  ::google::protobuf::ListValue* temp = top_level_listvalue_;
  top_level_listvalue_ = NULL;
  return temp;
}
inline ::google::protobuf::ListValue* StructTestCases::mutable_top_level_listvalue() {
  
  if (top_level_listvalue_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::ListValue>(GetArenaNoVirtual());
    top_level_listvalue_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_listvalue)
  return top_level_listvalue_;
}
inline void StructTestCases::set_allocated_top_level_listvalue(::google::protobuf::ListValue* top_level_listvalue) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_listvalue_);
  }
  if (top_level_listvalue) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_listvalue)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_listvalue = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_listvalue, submessage_arena);
    }
    
  } else {
    
  }
  top_level_listvalue_ = top_level_listvalue;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_listvalue)
}

// .google.protobuf.ListValue top_level_empty_listvalue = 30;
inline bool StructTestCases::has_top_level_empty_listvalue() const {
  return this != internal_default_instance() && top_level_empty_listvalue_ != NULL;
}
inline const ::google::protobuf::ListValue& StructTestCases::_internal_top_level_empty_listvalue() const {
  return *top_level_empty_listvalue_;
}
inline const ::google::protobuf::ListValue& StructTestCases::top_level_empty_listvalue() const {
  const ::google::protobuf::ListValue* p = top_level_empty_listvalue_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_empty_listvalue)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::ListValue*>(
      &::google::protobuf::_ListValue_default_instance_);
}
inline ::google::protobuf::ListValue* StructTestCases::release_top_level_empty_listvalue() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_empty_listvalue)
  
  ::google::protobuf::ListValue* temp = top_level_empty_listvalue_;
  top_level_empty_listvalue_ = NULL;
  return temp;
}
inline ::google::protobuf::ListValue* StructTestCases::mutable_top_level_empty_listvalue() {
  
  if (top_level_empty_listvalue_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::ListValue>(GetArenaNoVirtual());
    top_level_empty_listvalue_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_empty_listvalue)
  return top_level_empty_listvalue_;
}
inline void StructTestCases::set_allocated_top_level_empty_listvalue(::google::protobuf::ListValue* top_level_empty_listvalue) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_empty_listvalue_);
  }
  if (top_level_empty_listvalue) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_empty_listvalue)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_empty_listvalue = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_empty_listvalue, submessage_arena);
    }
    
  } else {
    
  }
  top_level_empty_listvalue_ = top_level_empty_listvalue;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_empty_listvalue)
}

// .google.protobuf.ListValue top_level_listvalue_with_empty_struct = 31;
inline bool StructTestCases::has_top_level_listvalue_with_empty_struct() const {
  return this != internal_default_instance() && top_level_listvalue_with_empty_struct_ != NULL;
}
inline const ::google::protobuf::ListValue& StructTestCases::_internal_top_level_listvalue_with_empty_struct() const {
  return *top_level_listvalue_with_empty_struct_;
}
inline const ::google::protobuf::ListValue& StructTestCases::top_level_listvalue_with_empty_struct() const {
  const ::google::protobuf::ListValue* p = top_level_listvalue_with_empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.top_level_listvalue_with_empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::ListValue*>(
      &::google::protobuf::_ListValue_default_instance_);
}
inline ::google::protobuf::ListValue* StructTestCases::release_top_level_listvalue_with_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.top_level_listvalue_with_empty_struct)
  
  ::google::protobuf::ListValue* temp = top_level_listvalue_with_empty_struct_;
  top_level_listvalue_with_empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::ListValue* StructTestCases::mutable_top_level_listvalue_with_empty_struct() {
  
  if (top_level_listvalue_with_empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::ListValue>(GetArenaNoVirtual());
    top_level_listvalue_with_empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.top_level_listvalue_with_empty_struct)
  return top_level_listvalue_with_empty_struct_;
}
inline void StructTestCases::set_allocated_top_level_listvalue_with_empty_struct(::google::protobuf::ListValue* top_level_listvalue_with_empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_listvalue_with_empty_struct_);
  }
  if (top_level_listvalue_with_empty_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_listvalue_with_empty_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_listvalue_with_empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_listvalue_with_empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_listvalue_with_empty_struct_ = top_level_listvalue_with_empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.top_level_listvalue_with_empty_struct)
}

// .google.protobuf.testing.RepeatedValueWrapper repeated_value = 32;
inline bool StructTestCases::has_repeated_value() const {
  return this != internal_default_instance() && repeated_value_ != NULL;
}
inline void StructTestCases::clear_repeated_value() {
  if (GetArenaNoVirtual() == NULL && repeated_value_ != NULL) {
    delete repeated_value_;
  }
  repeated_value_ = NULL;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::_internal_repeated_value() const {
  return *repeated_value_;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::repeated_value() const {
  const ::google::protobuf::testing::RepeatedValueWrapper* p = repeated_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.repeated_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::RepeatedValueWrapper*>(
      &::google::protobuf::testing::_RepeatedValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::release_repeated_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.repeated_value)
  
  ::google::protobuf::testing::RepeatedValueWrapper* temp = repeated_value_;
  repeated_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::mutable_repeated_value() {
  
  if (repeated_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::RepeatedValueWrapper>(GetArenaNoVirtual());
    repeated_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.repeated_value)
  return repeated_value_;
}
inline void StructTestCases::set_allocated_repeated_value(::google::protobuf::testing::RepeatedValueWrapper* repeated_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_value_;
  }
  if (repeated_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_value, submessage_arena);
    }
    
  } else {
    
  }
  repeated_value_ = repeated_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.repeated_value)
}

// .google.protobuf.testing.RepeatedValueWrapper repeated_value_nested_list = 33;
inline bool StructTestCases::has_repeated_value_nested_list() const {
  return this != internal_default_instance() && repeated_value_nested_list_ != NULL;
}
inline void StructTestCases::clear_repeated_value_nested_list() {
  if (GetArenaNoVirtual() == NULL && repeated_value_nested_list_ != NULL) {
    delete repeated_value_nested_list_;
  }
  repeated_value_nested_list_ = NULL;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::_internal_repeated_value_nested_list() const {
  return *repeated_value_nested_list_;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::repeated_value_nested_list() const {
  const ::google::protobuf::testing::RepeatedValueWrapper* p = repeated_value_nested_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.repeated_value_nested_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::RepeatedValueWrapper*>(
      &::google::protobuf::testing::_RepeatedValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::release_repeated_value_nested_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.repeated_value_nested_list)
  
  ::google::protobuf::testing::RepeatedValueWrapper* temp = repeated_value_nested_list_;
  repeated_value_nested_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::mutable_repeated_value_nested_list() {
  
  if (repeated_value_nested_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::RepeatedValueWrapper>(GetArenaNoVirtual());
    repeated_value_nested_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.repeated_value_nested_list)
  return repeated_value_nested_list_;
}
inline void StructTestCases::set_allocated_repeated_value_nested_list(::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_value_nested_list_;
  }
  if (repeated_value_nested_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_value_nested_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_value_nested_list, submessage_arena);
    }
    
  } else {
    
  }
  repeated_value_nested_list_ = repeated_value_nested_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.repeated_value_nested_list)
}

// .google.protobuf.testing.RepeatedValueWrapper repeated_value_nested_list2 = 34;
inline bool StructTestCases::has_repeated_value_nested_list2() const {
  return this != internal_default_instance() && repeated_value_nested_list2_ != NULL;
}
inline void StructTestCases::clear_repeated_value_nested_list2() {
  if (GetArenaNoVirtual() == NULL && repeated_value_nested_list2_ != NULL) {
    delete repeated_value_nested_list2_;
  }
  repeated_value_nested_list2_ = NULL;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::_internal_repeated_value_nested_list2() const {
  return *repeated_value_nested_list2_;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::repeated_value_nested_list2() const {
  const ::google::protobuf::testing::RepeatedValueWrapper* p = repeated_value_nested_list2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.repeated_value_nested_list2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::RepeatedValueWrapper*>(
      &::google::protobuf::testing::_RepeatedValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::release_repeated_value_nested_list2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.repeated_value_nested_list2)
  
  ::google::protobuf::testing::RepeatedValueWrapper* temp = repeated_value_nested_list2_;
  repeated_value_nested_list2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::mutable_repeated_value_nested_list2() {
  
  if (repeated_value_nested_list2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::RepeatedValueWrapper>(GetArenaNoVirtual());
    repeated_value_nested_list2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.repeated_value_nested_list2)
  return repeated_value_nested_list2_;
}
inline void StructTestCases::set_allocated_repeated_value_nested_list2(::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_value_nested_list2_;
  }
  if (repeated_value_nested_list2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_value_nested_list2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_value_nested_list2, submessage_arena);
    }
    
  } else {
    
  }
  repeated_value_nested_list2_ = repeated_value_nested_list2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.repeated_value_nested_list2)
}

// .google.protobuf.testing.RepeatedValueWrapper repeated_value_nested_list3 = 35;
inline bool StructTestCases::has_repeated_value_nested_list3() const {
  return this != internal_default_instance() && repeated_value_nested_list3_ != NULL;
}
inline void StructTestCases::clear_repeated_value_nested_list3() {
  if (GetArenaNoVirtual() == NULL && repeated_value_nested_list3_ != NULL) {
    delete repeated_value_nested_list3_;
  }
  repeated_value_nested_list3_ = NULL;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::_internal_repeated_value_nested_list3() const {
  return *repeated_value_nested_list3_;
}
inline const ::google::protobuf::testing::RepeatedValueWrapper& StructTestCases::repeated_value_nested_list3() const {
  const ::google::protobuf::testing::RepeatedValueWrapper* p = repeated_value_nested_list3_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.repeated_value_nested_list3)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::RepeatedValueWrapper*>(
      &::google::protobuf::testing::_RepeatedValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::release_repeated_value_nested_list3() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.repeated_value_nested_list3)
  
  ::google::protobuf::testing::RepeatedValueWrapper* temp = repeated_value_nested_list3_;
  repeated_value_nested_list3_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::RepeatedValueWrapper* StructTestCases::mutable_repeated_value_nested_list3() {
  
  if (repeated_value_nested_list3_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::RepeatedValueWrapper>(GetArenaNoVirtual());
    repeated_value_nested_list3_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.repeated_value_nested_list3)
  return repeated_value_nested_list3_;
}
inline void StructTestCases::set_allocated_repeated_value_nested_list3(::google::protobuf::testing::RepeatedValueWrapper* repeated_value_nested_list3) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_value_nested_list3_;
  }
  if (repeated_value_nested_list3) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_value_nested_list3 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_value_nested_list3, submessage_arena);
    }
    
  } else {
    
  }
  repeated_value_nested_list3_ = repeated_value_nested_list3;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.repeated_value_nested_list3)
}

// .google.protobuf.testing.RepeatedListValueWrapper repeated_listvalue = 36;
inline bool StructTestCases::has_repeated_listvalue() const {
  return this != internal_default_instance() && repeated_listvalue_ != NULL;
}
inline void StructTestCases::clear_repeated_listvalue() {
  if (GetArenaNoVirtual() == NULL && repeated_listvalue_ != NULL) {
    delete repeated_listvalue_;
  }
  repeated_listvalue_ = NULL;
}
inline const ::google::protobuf::testing::RepeatedListValueWrapper& StructTestCases::_internal_repeated_listvalue() const {
  return *repeated_listvalue_;
}
inline const ::google::protobuf::testing::RepeatedListValueWrapper& StructTestCases::repeated_listvalue() const {
  const ::google::protobuf::testing::RepeatedListValueWrapper* p = repeated_listvalue_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.repeated_listvalue)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::RepeatedListValueWrapper*>(
      &::google::protobuf::testing::_RepeatedListValueWrapper_default_instance_);
}
inline ::google::protobuf::testing::RepeatedListValueWrapper* StructTestCases::release_repeated_listvalue() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.repeated_listvalue)
  
  ::google::protobuf::testing::RepeatedListValueWrapper* temp = repeated_listvalue_;
  repeated_listvalue_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::RepeatedListValueWrapper* StructTestCases::mutable_repeated_listvalue() {
  
  if (repeated_listvalue_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::RepeatedListValueWrapper>(GetArenaNoVirtual());
    repeated_listvalue_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.repeated_listvalue)
  return repeated_listvalue_;
}
inline void StructTestCases::set_allocated_repeated_listvalue(::google::protobuf::testing::RepeatedListValueWrapper* repeated_listvalue) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_listvalue_;
  }
  if (repeated_listvalue) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_listvalue = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_listvalue, submessage_arena);
    }
    
  } else {
    
  }
  repeated_listvalue_ = repeated_listvalue;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.repeated_listvalue)
}

// .google.protobuf.testing.MapOfStruct map_of_struct = 37;
inline bool StructTestCases::has_map_of_struct() const {
  return this != internal_default_instance() && map_of_struct_ != NULL;
}
inline void StructTestCases::clear_map_of_struct() {
  if (GetArenaNoVirtual() == NULL && map_of_struct_ != NULL) {
    delete map_of_struct_;
  }
  map_of_struct_ = NULL;
}
inline const ::google::protobuf::testing::MapOfStruct& StructTestCases::_internal_map_of_struct() const {
  return *map_of_struct_;
}
inline const ::google::protobuf::testing::MapOfStruct& StructTestCases::map_of_struct() const {
  const ::google::protobuf::testing::MapOfStruct* p = map_of_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.map_of_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MapOfStruct*>(
      &::google::protobuf::testing::_MapOfStruct_default_instance_);
}
inline ::google::protobuf::testing::MapOfStruct* StructTestCases::release_map_of_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.map_of_struct)
  
  ::google::protobuf::testing::MapOfStruct* temp = map_of_struct_;
  map_of_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MapOfStruct* StructTestCases::mutable_map_of_struct() {
  
  if (map_of_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MapOfStruct>(GetArenaNoVirtual());
    map_of_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.map_of_struct)
  return map_of_struct_;
}
inline void StructTestCases::set_allocated_map_of_struct(::google::protobuf::testing::MapOfStruct* map_of_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_of_struct_;
  }
  if (map_of_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_of_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_of_struct, submessage_arena);
    }
    
  } else {
    
  }
  map_of_struct_ = map_of_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.map_of_struct)
}

// .google.protobuf.testing.MapOfStruct map_of_struct_value = 38;
inline bool StructTestCases::has_map_of_struct_value() const {
  return this != internal_default_instance() && map_of_struct_value_ != NULL;
}
inline void StructTestCases::clear_map_of_struct_value() {
  if (GetArenaNoVirtual() == NULL && map_of_struct_value_ != NULL) {
    delete map_of_struct_value_;
  }
  map_of_struct_value_ = NULL;
}
inline const ::google::protobuf::testing::MapOfStruct& StructTestCases::_internal_map_of_struct_value() const {
  return *map_of_struct_value_;
}
inline const ::google::protobuf::testing::MapOfStruct& StructTestCases::map_of_struct_value() const {
  const ::google::protobuf::testing::MapOfStruct* p = map_of_struct_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.map_of_struct_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MapOfStruct*>(
      &::google::protobuf::testing::_MapOfStruct_default_instance_);
}
inline ::google::protobuf::testing::MapOfStruct* StructTestCases::release_map_of_struct_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.map_of_struct_value)
  
  ::google::protobuf::testing::MapOfStruct* temp = map_of_struct_value_;
  map_of_struct_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MapOfStruct* StructTestCases::mutable_map_of_struct_value() {
  
  if (map_of_struct_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MapOfStruct>(GetArenaNoVirtual());
    map_of_struct_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.map_of_struct_value)
  return map_of_struct_value_;
}
inline void StructTestCases::set_allocated_map_of_struct_value(::google::protobuf::testing::MapOfStruct* map_of_struct_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_of_struct_value_;
  }
  if (map_of_struct_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_of_struct_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_of_struct_value, submessage_arena);
    }
    
  } else {
    
  }
  map_of_struct_value_ = map_of_struct_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.map_of_struct_value)
}

// .google.protobuf.testing.MapOfStruct map_of_listvalue = 39;
inline bool StructTestCases::has_map_of_listvalue() const {
  return this != internal_default_instance() && map_of_listvalue_ != NULL;
}
inline void StructTestCases::clear_map_of_listvalue() {
  if (GetArenaNoVirtual() == NULL && map_of_listvalue_ != NULL) {
    delete map_of_listvalue_;
  }
  map_of_listvalue_ = NULL;
}
inline const ::google::protobuf::testing::MapOfStruct& StructTestCases::_internal_map_of_listvalue() const {
  return *map_of_listvalue_;
}
inline const ::google::protobuf::testing::MapOfStruct& StructTestCases::map_of_listvalue() const {
  const ::google::protobuf::testing::MapOfStruct* p = map_of_listvalue_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructTestCases.map_of_listvalue)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MapOfStruct*>(
      &::google::protobuf::testing::_MapOfStruct_default_instance_);
}
inline ::google::protobuf::testing::MapOfStruct* StructTestCases::release_map_of_listvalue() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructTestCases.map_of_listvalue)
  
  ::google::protobuf::testing::MapOfStruct* temp = map_of_listvalue_;
  map_of_listvalue_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MapOfStruct* StructTestCases::mutable_map_of_listvalue() {
  
  if (map_of_listvalue_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MapOfStruct>(GetArenaNoVirtual());
    map_of_listvalue_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructTestCases.map_of_listvalue)
  return map_of_listvalue_;
}
inline void StructTestCases::set_allocated_map_of_listvalue(::google::protobuf::testing::MapOfStruct* map_of_listvalue) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_of_listvalue_;
  }
  if (map_of_listvalue) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_of_listvalue = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_of_listvalue, submessage_arena);
    }
    
  } else {
    
  }
  map_of_listvalue_ = map_of_listvalue;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructTestCases.map_of_listvalue)
}

// -------------------------------------------------------------------

// StructWrapper

// .google.protobuf.Struct struct = 1;
inline bool StructWrapper::has_struct_() const {
  return this != internal_default_instance() && struct__ != NULL;
}
inline const ::google::protobuf::Struct& StructWrapper::_internal_struct_() const {
  return *struct__;
}
inline const ::google::protobuf::Struct& StructWrapper::struct_() const {
  const ::google::protobuf::Struct* p = struct__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructWrapper.struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* StructWrapper::release_struct_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructWrapper.struct)
  
  ::google::protobuf::Struct* temp = struct__;
  struct__ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* StructWrapper::mutable_struct_() {
  
  if (struct__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    struct__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructWrapper.struct)
  return struct__;
}
inline void StructWrapper::set_allocated_struct_(::google::protobuf::Struct* struct_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(struct__);
  }
  if (struct_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_)->GetArena();
    if (message_arena != submessage_arena) {
      struct_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_, submessage_arena);
    }
    
  } else {
    
  }
  struct__ = struct_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructWrapper.struct)
}

// -------------------------------------------------------------------

// ValueWrapper

// .google.protobuf.Value value = 1;
inline bool ValueWrapper::has_value() const {
  return this != internal_default_instance() && value_ != NULL;
}
inline const ::google::protobuf::Value& ValueWrapper::_internal_value() const {
  return *value_;
}
inline const ::google::protobuf::Value& ValueWrapper::value() const {
  const ::google::protobuf::Value* p = value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.ValueWrapper.value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* ValueWrapper::release_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.ValueWrapper.value)
  
  ::google::protobuf::Value* temp = value_;
  value_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* ValueWrapper::mutable_value() {
  
  if (value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.ValueWrapper.value)
  return value_;
}
inline void ValueWrapper::set_allocated_value(::google::protobuf::Value* value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(value_);
  }
  if (value) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value, submessage_arena);
    }
    
  } else {
    
  }
  value_ = value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.ValueWrapper.value)
}

// -------------------------------------------------------------------

// RepeatedValueWrapper

// repeated .google.protobuf.Value values = 1;
inline int RepeatedValueWrapper::values_size() const {
  return values_.size();
}
inline ::google::protobuf::Value* RepeatedValueWrapper::mutable_values(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.RepeatedValueWrapper.values)
  return values_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >*
RepeatedValueWrapper::mutable_values() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.RepeatedValueWrapper.values)
  return &values_;
}
inline const ::google::protobuf::Value& RepeatedValueWrapper::values(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.RepeatedValueWrapper.values)
  return values_.Get(index);
}
inline ::google::protobuf::Value* RepeatedValueWrapper::add_values() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.RepeatedValueWrapper.values)
  return values_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >&
RepeatedValueWrapper::values() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.RepeatedValueWrapper.values)
  return values_;
}

// -------------------------------------------------------------------

// ListValueWrapper

// .google.protobuf.ListValue shopping_list = 1;
inline bool ListValueWrapper::has_shopping_list() const {
  return this != internal_default_instance() && shopping_list_ != NULL;
}
inline const ::google::protobuf::ListValue& ListValueWrapper::_internal_shopping_list() const {
  return *shopping_list_;
}
inline const ::google::protobuf::ListValue& ListValueWrapper::shopping_list() const {
  const ::google::protobuf::ListValue* p = shopping_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.ListValueWrapper.shopping_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::ListValue*>(
      &::google::protobuf::_ListValue_default_instance_);
}
inline ::google::protobuf::ListValue* ListValueWrapper::release_shopping_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.ListValueWrapper.shopping_list)
  
  ::google::protobuf::ListValue* temp = shopping_list_;
  shopping_list_ = NULL;
  return temp;
}
inline ::google::protobuf::ListValue* ListValueWrapper::mutable_shopping_list() {
  
  if (shopping_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::ListValue>(GetArenaNoVirtual());
    shopping_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.ListValueWrapper.shopping_list)
  return shopping_list_;
}
inline void ListValueWrapper::set_allocated_shopping_list(::google::protobuf::ListValue* shopping_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(shopping_list_);
  }
  if (shopping_list) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(shopping_list)->GetArena();
    if (message_arena != submessage_arena) {
      shopping_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, shopping_list, submessage_arena);
    }
    
  } else {
    
  }
  shopping_list_ = shopping_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.ListValueWrapper.shopping_list)
}

// -------------------------------------------------------------------

// RepeatedListValueWrapper

// repeated .google.protobuf.ListValue dimensions = 1;
inline int RepeatedListValueWrapper::dimensions_size() const {
  return dimensions_.size();
}
inline ::google::protobuf::ListValue* RepeatedListValueWrapper::mutable_dimensions(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.RepeatedListValueWrapper.dimensions)
  return dimensions_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::ListValue >*
RepeatedListValueWrapper::mutable_dimensions() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.RepeatedListValueWrapper.dimensions)
  return &dimensions_;
}
inline const ::google::protobuf::ListValue& RepeatedListValueWrapper::dimensions(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.RepeatedListValueWrapper.dimensions)
  return dimensions_.Get(index);
}
inline ::google::protobuf::ListValue* RepeatedListValueWrapper::add_dimensions() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.RepeatedListValueWrapper.dimensions)
  return dimensions_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::ListValue >&
RepeatedListValueWrapper::dimensions() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.RepeatedListValueWrapper.dimensions)
  return dimensions_;
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// MapOfStruct

// map<string, .google.protobuf.Struct> struct_map = 1;
inline int MapOfStruct::struct_map_size() const {
  return struct_map_.size();
}
inline const ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >&
MapOfStruct::struct_map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.MapOfStruct.struct_map)
  return struct_map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >*
MapOfStruct::mutable_struct_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.MapOfStruct.struct_map)
  return struct_map_.MutableMap();
}

// map<string, .google.protobuf.Value> value_map = 2;
inline int MapOfStruct::value_map_size() const {
  return value_map_.size();
}
inline const ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >&
MapOfStruct::value_map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.MapOfStruct.value_map)
  return value_map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >*
MapOfStruct::mutable_value_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.MapOfStruct.value_map)
  return value_map_.MutableMap();
}

// map<string, .google.protobuf.ListValue> listvalue_map = 3;
inline int MapOfStruct::listvalue_map_size() const {
  return listvalue_map_.size();
}
inline const ::google::protobuf::Map< ::std::string, ::google::protobuf::ListValue >&
MapOfStruct::listvalue_map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.MapOfStruct.listvalue_map)
  return listvalue_map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::protobuf::ListValue >*
MapOfStruct::mutable_listvalue_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.MapOfStruct.listvalue_map)
  return listvalue_map_.MutableMap();
}

// -------------------------------------------------------------------

// Dummy

// string text = 1;
inline void Dummy::clear_text() {
  text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& Dummy::text() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Dummy.text)
  return text_.GetNoArena();
}
inline void Dummy::set_text(const ::std::string& value) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.Dummy.text)
}
#if LANG_CXX11
inline void Dummy::set_text(::std::string&& value) {
  
  text_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.Dummy.text)
}
#endif
inline void Dummy::set_text(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.Dummy.text)
}
inline void Dummy::set_text(const char* value, size_t size) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.Dummy.text)
}
inline ::std::string* Dummy::mutable_text() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Dummy.text)
  return text_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Dummy::release_text() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Dummy.text)
  
  return text_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Dummy::set_allocated_text(::std::string* text) {
  if (text != NULL) {
    
  } else {
    
  }
  text_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), text);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Dummy.text)
}

// -------------------------------------------------------------------

// StructType

// .google.protobuf.Struct object = 1;
inline bool StructType::has_object() const {
  return this != internal_default_instance() && object_ != NULL;
}
inline const ::google::protobuf::Struct& StructType::_internal_object() const {
  return *object_;
}
inline const ::google::protobuf::Struct& StructType::object() const {
  const ::google::protobuf::Struct* p = object_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructType.object)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* StructType::release_object() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructType.object)
  
  ::google::protobuf::Struct* temp = object_;
  object_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* StructType::mutable_object() {
  
  if (object_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    object_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructType.object)
  return object_;
}
inline void StructType::set_allocated_object(::google::protobuf::Struct* object) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(object_);
  }
  if (object) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(object)->GetArena();
    if (message_arena != submessage_arena) {
      object = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, object, submessage_arena);
    }
    
  } else {
    
  }
  object_ = object;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructType.object)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace testing
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fstruct_2eproto
