// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/unittest_proto3_arena_lite.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_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_lite.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_util.h>
#include <google/protobuf/unittest_import.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto 

namespace protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_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[7];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
}  // namespace protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto
namespace proto3_arena_lite_unittest {
class ForeignMessage;
class ForeignMessageDefaultTypeInternal;
extern ForeignMessageDefaultTypeInternal _ForeignMessage_default_instance_;
class NestedTestAllTypes;
class NestedTestAllTypesDefaultTypeInternal;
extern NestedTestAllTypesDefaultTypeInternal _NestedTestAllTypes_default_instance_;
class TestAllTypes;
class TestAllTypesDefaultTypeInternal;
extern TestAllTypesDefaultTypeInternal _TestAllTypes_default_instance_;
class TestAllTypes_NestedMessage;
class TestAllTypes_NestedMessageDefaultTypeInternal;
extern TestAllTypes_NestedMessageDefaultTypeInternal _TestAllTypes_NestedMessage_default_instance_;
class TestEmptyMessage;
class TestEmptyMessageDefaultTypeInternal;
extern TestEmptyMessageDefaultTypeInternal _TestEmptyMessage_default_instance_;
class TestPackedTypes;
class TestPackedTypesDefaultTypeInternal;
extern TestPackedTypesDefaultTypeInternal _TestPackedTypes_default_instance_;
class TestUnpackedTypes;
class TestUnpackedTypesDefaultTypeInternal;
extern TestUnpackedTypesDefaultTypeInternal _TestUnpackedTypes_default_instance_;
}  // namespace proto3_arena_lite_unittest
namespace google {
namespace protobuf {
template<> ::proto3_arena_lite_unittest::ForeignMessage* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::ForeignMessage>(Arena*);
template<> ::proto3_arena_lite_unittest::NestedTestAllTypes* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::NestedTestAllTypes>(Arena*);
template<> ::proto3_arena_lite_unittest::TestAllTypes* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::TestAllTypes>(Arena*);
template<> ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::TestAllTypes_NestedMessage>(Arena*);
template<> ::proto3_arena_lite_unittest::TestEmptyMessage* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::TestEmptyMessage>(Arena*);
template<> ::proto3_arena_lite_unittest::TestPackedTypes* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::TestPackedTypes>(Arena*);
template<> ::proto3_arena_lite_unittest::TestUnpackedTypes* Arena::CreateMaybeMessage<::proto3_arena_lite_unittest::TestUnpackedTypes>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace proto3_arena_lite_unittest {

enum TestAllTypes_NestedEnum {
  TestAllTypes_NestedEnum_ZERO = 0,
  TestAllTypes_NestedEnum_FOO = 1,
  TestAllTypes_NestedEnum_BAR = 2,
  TestAllTypes_NestedEnum_BAZ = 3,
  TestAllTypes_NestedEnum_NEG = -1,
  TestAllTypes_NestedEnum_TestAllTypes_NestedEnum_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  TestAllTypes_NestedEnum_TestAllTypes_NestedEnum_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool TestAllTypes_NestedEnum_IsValid(int value);
const TestAllTypes_NestedEnum TestAllTypes_NestedEnum_NestedEnum_MIN = TestAllTypes_NestedEnum_NEG;
const TestAllTypes_NestedEnum TestAllTypes_NestedEnum_NestedEnum_MAX = TestAllTypes_NestedEnum_BAZ;
const int TestAllTypes_NestedEnum_NestedEnum_ARRAYSIZE = TestAllTypes_NestedEnum_NestedEnum_MAX + 1;

enum ForeignEnum {
  FOREIGN_ZERO = 0,
  FOREIGN_FOO = 4,
  FOREIGN_BAR = 5,
  FOREIGN_BAZ = 6,
  ForeignEnum_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  ForeignEnum_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool ForeignEnum_IsValid(int value);
const ForeignEnum ForeignEnum_MIN = FOREIGN_ZERO;
const ForeignEnum ForeignEnum_MAX = FOREIGN_BAZ;
const int ForeignEnum_ARRAYSIZE = ForeignEnum_MAX + 1;

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

class TestAllTypes_NestedMessage : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.TestAllTypes.NestedMessage) */ {
 public:
  TestAllTypes_NestedMessage();
  virtual ~TestAllTypes_NestedMessage();

  TestAllTypes_NestedMessage(const TestAllTypes_NestedMessage& from);

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

  inline TestAllTypes_NestedMessage& operator=(TestAllTypes_NestedMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestAllTypes_NestedMessage& default_instance();

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

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

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

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

  TestAllTypes_NestedMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllTypes_NestedMessage>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllTypes_NestedMessage& from);
  void MergeFrom(const TestAllTypes_NestedMessage& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllTypes_NestedMessage* other);
  protected:
  explicit TestAllTypes_NestedMessage(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

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

  // int32 bb = 1;
  void clear_bb();
  static const int kBbFieldNumber = 1;
  ::google::protobuf::int32 bb() const;
  void set_bb(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.TestAllTypes.NestedMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::int32 bb_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestAllTypes : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.TestAllTypes) */ {
 public:
  TestAllTypes();
  virtual ~TestAllTypes();

  TestAllTypes(const TestAllTypes& from);

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

  inline TestAllTypes& operator=(TestAllTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestAllTypes& default_instance();

  enum OneofFieldCase {
    kOneofUint32 = 111,
    kOneofNestedMessage = 112,
    kOneofString = 113,
    kOneofBytes = 114,
    ONEOF_FIELD_NOT_SET = 0,
  };

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

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

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

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

  TestAllTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllTypes>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllTypes& from);
  void MergeFrom(const TestAllTypes& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllTypes* other);
  protected:
  explicit TestAllTypes(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

  typedef TestAllTypes_NestedMessage NestedMessage;

  typedef TestAllTypes_NestedEnum NestedEnum;
  static const NestedEnum ZERO =
    TestAllTypes_NestedEnum_ZERO;
  static const NestedEnum FOO =
    TestAllTypes_NestedEnum_FOO;
  static const NestedEnum BAR =
    TestAllTypes_NestedEnum_BAR;
  static const NestedEnum BAZ =
    TestAllTypes_NestedEnum_BAZ;
  static const NestedEnum NEG =
    TestAllTypes_NestedEnum_NEG;
  static inline bool NestedEnum_IsValid(int value) {
    return TestAllTypes_NestedEnum_IsValid(value);
  }
  static const NestedEnum NestedEnum_MIN =
    TestAllTypes_NestedEnum_NestedEnum_MIN;
  static const NestedEnum NestedEnum_MAX =
    TestAllTypes_NestedEnum_NestedEnum_MAX;
  static const int NestedEnum_ARRAYSIZE =
    TestAllTypes_NestedEnum_NestedEnum_ARRAYSIZE;

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

  // repeated int32 repeated_int32 = 31;
  int repeated_int32_size() const;
  void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 31;
  ::google::protobuf::int32 repeated_int32(int index) const;
  void set_repeated_int32(int index, ::google::protobuf::int32 value);
  void add_repeated_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();

  // repeated int64 repeated_int64 = 32;
  int repeated_int64_size() const;
  void clear_repeated_int64();
  static const int kRepeatedInt64FieldNumber = 32;
  ::google::protobuf::int64 repeated_int64(int index) const;
  void set_repeated_int64(int index, ::google::protobuf::int64 value);
  void add_repeated_int64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_int64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_int64();

  // repeated uint32 repeated_uint32 = 33;
  int repeated_uint32_size() const;
  void clear_repeated_uint32();
  static const int kRepeatedUint32FieldNumber = 33;
  ::google::protobuf::uint32 repeated_uint32(int index) const;
  void set_repeated_uint32(int index, ::google::protobuf::uint32 value);
  void add_repeated_uint32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_uint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_uint32();

  // repeated uint64 repeated_uint64 = 34;
  int repeated_uint64_size() const;
  void clear_repeated_uint64();
  static const int kRepeatedUint64FieldNumber = 34;
  ::google::protobuf::uint64 repeated_uint64(int index) const;
  void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
  void add_repeated_uint64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_uint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_uint64();

  // repeated sint32 repeated_sint32 = 35;
  int repeated_sint32_size() const;
  void clear_repeated_sint32();
  static const int kRepeatedSint32FieldNumber = 35;
  ::google::protobuf::int32 repeated_sint32(int index) const;
  void set_repeated_sint32(int index, ::google::protobuf::int32 value);
  void add_repeated_sint32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sint32();

  // repeated sint64 repeated_sint64 = 36;
  int repeated_sint64_size() const;
  void clear_repeated_sint64();
  static const int kRepeatedSint64FieldNumber = 36;
  ::google::protobuf::int64 repeated_sint64(int index) const;
  void set_repeated_sint64(int index, ::google::protobuf::int64 value);
  void add_repeated_sint64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sint64();

  // repeated fixed32 repeated_fixed32 = 37;
  int repeated_fixed32_size() const;
  void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 37;
  ::google::protobuf::uint32 repeated_fixed32(int index) const;
  void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  void add_repeated_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();

  // repeated fixed64 repeated_fixed64 = 38;
  int repeated_fixed64_size() const;
  void clear_repeated_fixed64();
  static const int kRepeatedFixed64FieldNumber = 38;
  ::google::protobuf::uint64 repeated_fixed64(int index) const;
  void set_repeated_fixed64(int index, ::google::protobuf::uint64 value);
  void add_repeated_fixed64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_fixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_fixed64();

  // repeated sfixed32 repeated_sfixed32 = 39;
  int repeated_sfixed32_size() const;
  void clear_repeated_sfixed32();
  static const int kRepeatedSfixed32FieldNumber = 39;
  ::google::protobuf::int32 repeated_sfixed32(int index) const;
  void set_repeated_sfixed32(int index, ::google::protobuf::int32 value);
  void add_repeated_sfixed32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sfixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sfixed32();

  // repeated sfixed64 repeated_sfixed64 = 40;
  int repeated_sfixed64_size() const;
  void clear_repeated_sfixed64();
  static const int kRepeatedSfixed64FieldNumber = 40;
  ::google::protobuf::int64 repeated_sfixed64(int index) const;
  void set_repeated_sfixed64(int index, ::google::protobuf::int64 value);
  void add_repeated_sfixed64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sfixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sfixed64();

  // repeated float repeated_float = 41;
  int repeated_float_size() const;
  void clear_repeated_float();
  static const int kRepeatedFloatFieldNumber = 41;
  float repeated_float(int index) const;
  void set_repeated_float(int index, float value);
  void add_repeated_float(float value);
  const ::google::protobuf::RepeatedField< float >&
      repeated_float() const;
  ::google::protobuf::RepeatedField< float >*
      mutable_repeated_float();

  // repeated double repeated_double = 42;
  int repeated_double_size() const;
  void clear_repeated_double();
  static const int kRepeatedDoubleFieldNumber = 42;
  double repeated_double(int index) const;
  void set_repeated_double(int index, double value);
  void add_repeated_double(double value);
  const ::google::protobuf::RepeatedField< double >&
      repeated_double() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_repeated_double();

  // repeated bool repeated_bool = 43;
  int repeated_bool_size() const;
  void clear_repeated_bool();
  static const int kRepeatedBoolFieldNumber = 43;
  bool repeated_bool(int index) const;
  void set_repeated_bool(int index, bool value);
  void add_repeated_bool(bool value);
  const ::google::protobuf::RepeatedField< bool >&
      repeated_bool() const;
  ::google::protobuf::RepeatedField< bool >*
      mutable_repeated_bool();

  // repeated string repeated_string = 44;
  int repeated_string_size() const;
  void clear_repeated_string();
  static const int kRepeatedStringFieldNumber = 44;
  const ::std::string& repeated_string(int index) const;
  ::std::string* mutable_repeated_string(int index);
  void set_repeated_string(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_string(int index, ::std::string&& value);
  #endif
  void set_repeated_string(int index, const char* value);
  void set_repeated_string(int index, const char* value, size_t size);
  ::std::string* add_repeated_string();
  void add_repeated_string(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_string(::std::string&& value);
  #endif
  void add_repeated_string(const char* value);
  void add_repeated_string(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string();

  // repeated bytes repeated_bytes = 45;
  int repeated_bytes_size() const;
  void clear_repeated_bytes();
  static const int kRepeatedBytesFieldNumber = 45;
  const ::std::string& repeated_bytes(int index) const;
  ::std::string* mutable_repeated_bytes(int index);
  void set_repeated_bytes(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_bytes(int index, ::std::string&& value);
  #endif
  void set_repeated_bytes(int index, const char* value);
  void set_repeated_bytes(int index, const void* value, size_t size);
  ::std::string* add_repeated_bytes();
  void add_repeated_bytes(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_bytes(::std::string&& value);
  #endif
  void add_repeated_bytes(const char* value);
  void add_repeated_bytes(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_bytes() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_bytes();

  // repeated .proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48;
  int repeated_nested_message_size() const;
  void clear_repeated_nested_message();
  static const int kRepeatedNestedMessageFieldNumber = 48;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* mutable_repeated_nested_message(int index);
  ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >*
      mutable_repeated_nested_message();
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& repeated_nested_message(int index) const;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* add_repeated_nested_message();
  const ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >&
      repeated_nested_message() const;

  // repeated .proto3_arena_lite_unittest.ForeignMessage repeated_foreign_message = 49;
  int repeated_foreign_message_size() const;
  void clear_repeated_foreign_message();
  static const int kRepeatedForeignMessageFieldNumber = 49;
  ::proto3_arena_lite_unittest::ForeignMessage* mutable_repeated_foreign_message(int index);
  ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::ForeignMessage >*
      mutable_repeated_foreign_message();
  const ::proto3_arena_lite_unittest::ForeignMessage& repeated_foreign_message(int index) const;
  ::proto3_arena_lite_unittest::ForeignMessage* add_repeated_foreign_message();
  const ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::ForeignMessage >&
      repeated_foreign_message() const;

  // repeated .protobuf_unittest_import.ImportMessage repeated_import_message = 50;
  int repeated_import_message_size() const;
  void clear_repeated_import_message();
  static const int kRepeatedImportMessageFieldNumber = 50;
  ::protobuf_unittest_import::ImportMessage* mutable_repeated_import_message(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >*
      mutable_repeated_import_message();
  const ::protobuf_unittest_import::ImportMessage& repeated_import_message(int index) const;
  ::protobuf_unittest_import::ImportMessage* add_repeated_import_message();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >&
      repeated_import_message() const;

  // repeated .proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51;
  int repeated_nested_enum_size() const;
  void clear_repeated_nested_enum();
  static const int kRepeatedNestedEnumFieldNumber = 51;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum repeated_nested_enum(int index) const;
  void set_repeated_nested_enum(int index, ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value);
  void add_repeated_nested_enum(::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value);
  const ::google::protobuf::RepeatedField<int>& repeated_nested_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_repeated_nested_enum();

  // repeated .proto3_arena_lite_unittest.ForeignEnum repeated_foreign_enum = 52;
  int repeated_foreign_enum_size() const;
  void clear_repeated_foreign_enum();
  static const int kRepeatedForeignEnumFieldNumber = 52;
  ::proto3_arena_lite_unittest::ForeignEnum repeated_foreign_enum(int index) const;
  void set_repeated_foreign_enum(int index, ::proto3_arena_lite_unittest::ForeignEnum value);
  void add_repeated_foreign_enum(::proto3_arena_lite_unittest::ForeignEnum value);
  const ::google::protobuf::RepeatedField<int>& repeated_foreign_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_repeated_foreign_enum();

  // repeated string repeated_string_piece = 54 [ctype = STRING_PIECE];
  int repeated_string_piece_size() const;
  void clear_repeated_string_piece();
  static const int kRepeatedStringPieceFieldNumber = 54;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& repeated_string_piece(int index) const;
  ::std::string* mutable_repeated_string_piece(int index);
  void set_repeated_string_piece(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_string_piece(int index, ::std::string&& value);
  #endif
  void set_repeated_string_piece(int index, const char* value);
  void set_repeated_string_piece(int index, const char* value, size_t size);
  ::std::string* add_repeated_string_piece();
  void add_repeated_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_string_piece(::std::string&& value);
  #endif
  void add_repeated_string_piece(const char* value);
  void add_repeated_string_piece(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string_piece() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string_piece();
 public:

  // repeated string repeated_cord = 55 [ctype = CORD];
  int repeated_cord_size() const;
  void clear_repeated_cord();
  static const int kRepeatedCordFieldNumber = 55;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& repeated_cord(int index) const;
  ::std::string* mutable_repeated_cord(int index);
  void set_repeated_cord(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_cord(int index, ::std::string&& value);
  #endif
  void set_repeated_cord(int index, const char* value);
  void set_repeated_cord(int index, const char* value, size_t size);
  ::std::string* add_repeated_cord();
  void add_repeated_cord(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_cord(::std::string&& value);
  #endif
  void add_repeated_cord(const char* value);
  void add_repeated_cord(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_cord() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_cord();
 public:

  // repeated .proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57 [lazy = true];
  int repeated_lazy_message_size() const;
  void clear_repeated_lazy_message();
  static const int kRepeatedLazyMessageFieldNumber = 57;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* mutable_repeated_lazy_message(int index);
  ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >*
      mutable_repeated_lazy_message();
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& repeated_lazy_message(int index) const;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* add_repeated_lazy_message();
  const ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >&
      repeated_lazy_message() const;

  // string optional_string = 14;
  void clear_optional_string();
  static const int kOptionalStringFieldNumber = 14;
  const ::std::string& optional_string() const;
  void set_optional_string(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_string(::std::string&& value);
  #endif
  void set_optional_string(const char* value);
  void set_optional_string(const char* value, size_t size);
  ::std::string* mutable_optional_string();
  ::std::string* release_optional_string();
  void set_allocated_optional_string(::std::string* optional_string);
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  ::std::string* unsafe_arena_release_optional_string();
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_optional_string(
      ::std::string* optional_string);

  // bytes optional_bytes = 15;
  void clear_optional_bytes();
  static const int kOptionalBytesFieldNumber = 15;
  const ::std::string& optional_bytes() const;
  void set_optional_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_bytes(::std::string&& value);
  #endif
  void set_optional_bytes(const char* value);
  void set_optional_bytes(const void* value, size_t size);
  ::std::string* mutable_optional_bytes();
  ::std::string* release_optional_bytes();
  void set_allocated_optional_bytes(::std::string* optional_bytes);
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  ::std::string* unsafe_arena_release_optional_bytes();
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_optional_bytes(
      ::std::string* optional_bytes);

  // string optional_string_piece = 24 [ctype = STRING_PIECE];
  void clear_optional_string_piece();
  static const int kOptionalStringPieceFieldNumber = 24;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& optional_string_piece() const;
  void set_optional_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_string_piece(::std::string&& value);
  #endif
  void set_optional_string_piece(const char* value);
  void set_optional_string_piece(const char* value, size_t size);
  ::std::string* mutable_optional_string_piece();
  ::std::string* release_optional_string_piece();
  void set_allocated_optional_string_piece(::std::string* optional_string_piece);
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  ::std::string* unsafe_arena_release_optional_string_piece();
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_optional_string_piece(
      ::std::string* optional_string_piece);
 public:

  // string optional_cord = 25 [ctype = CORD];
  void clear_optional_cord();
  static const int kOptionalCordFieldNumber = 25;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& optional_cord() const;
  void set_optional_cord(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_cord(::std::string&& value);
  #endif
  void set_optional_cord(const char* value);
  void set_optional_cord(const char* value, size_t size);
  ::std::string* mutable_optional_cord();
  ::std::string* release_optional_cord();
  void set_allocated_optional_cord(::std::string* optional_cord);
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  ::std::string* unsafe_arena_release_optional_cord();
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_optional_cord(
      ::std::string* optional_cord);
 public:

  // .proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_nested_message = 18;
  bool has_optional_nested_message() const;
  void clear_optional_nested_message();
  static const int kOptionalNestedMessageFieldNumber = 18;
  private:
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& _internal_optional_nested_message() const;
  public:
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& optional_nested_message() const;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* release_optional_nested_message();
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* mutable_optional_nested_message();
  void set_allocated_optional_nested_message(::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_nested_message);
  void unsafe_arena_set_allocated_optional_nested_message(
      ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_nested_message);
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* unsafe_arena_release_optional_nested_message();

  // .proto3_arena_lite_unittest.ForeignMessage optional_foreign_message = 19;
  bool has_optional_foreign_message() const;
  void clear_optional_foreign_message();
  static const int kOptionalForeignMessageFieldNumber = 19;
  private:
  const ::proto3_arena_lite_unittest::ForeignMessage& _internal_optional_foreign_message() const;
  public:
  const ::proto3_arena_lite_unittest::ForeignMessage& optional_foreign_message() const;
  ::proto3_arena_lite_unittest::ForeignMessage* release_optional_foreign_message();
  ::proto3_arena_lite_unittest::ForeignMessage* mutable_optional_foreign_message();
  void set_allocated_optional_foreign_message(::proto3_arena_lite_unittest::ForeignMessage* optional_foreign_message);
  void unsafe_arena_set_allocated_optional_foreign_message(
      ::proto3_arena_lite_unittest::ForeignMessage* optional_foreign_message);
  ::proto3_arena_lite_unittest::ForeignMessage* unsafe_arena_release_optional_foreign_message();

  // .protobuf_unittest_import.ImportMessage optional_import_message = 20;
  bool has_optional_import_message() const;
  void clear_optional_import_message();
  static const int kOptionalImportMessageFieldNumber = 20;
  private:
  const ::protobuf_unittest_import::ImportMessage& _internal_optional_import_message() const;
  public:
  const ::protobuf_unittest_import::ImportMessage& optional_import_message() const;
  ::protobuf_unittest_import::ImportMessage* release_optional_import_message();
  ::protobuf_unittest_import::ImportMessage* mutable_optional_import_message();
  void set_allocated_optional_import_message(::protobuf_unittest_import::ImportMessage* optional_import_message);
  void unsafe_arena_set_allocated_optional_import_message(
      ::protobuf_unittest_import::ImportMessage* optional_import_message);
  ::protobuf_unittest_import::ImportMessage* unsafe_arena_release_optional_import_message();

  // .protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26;
  bool has_optional_public_import_message() const;
  void clear_optional_public_import_message();
  static const int kOptionalPublicImportMessageFieldNumber = 26;
  private:
  const ::protobuf_unittest_import::PublicImportMessage& _internal_optional_public_import_message() const;
  public:
  const ::protobuf_unittest_import::PublicImportMessage& optional_public_import_message() const;
  ::protobuf_unittest_import::PublicImportMessage* release_optional_public_import_message();
  ::protobuf_unittest_import::PublicImportMessage* mutable_optional_public_import_message();
  void set_allocated_optional_public_import_message(::protobuf_unittest_import::PublicImportMessage* optional_public_import_message);
  void unsafe_arena_set_allocated_optional_public_import_message(
      ::protobuf_unittest_import::PublicImportMessage* optional_public_import_message);
  ::protobuf_unittest_import::PublicImportMessage* unsafe_arena_release_optional_public_import_message();

  // .proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27 [lazy = true];
  bool has_optional_lazy_message() const;
  void clear_optional_lazy_message();
  static const int kOptionalLazyMessageFieldNumber = 27;
  private:
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& _internal_optional_lazy_message() const;
  public:
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& optional_lazy_message() const;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* release_optional_lazy_message();
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* mutable_optional_lazy_message();
  void set_allocated_optional_lazy_message(::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_lazy_message);
  void unsafe_arena_set_allocated_optional_lazy_message(
      ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_lazy_message);
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* unsafe_arena_release_optional_lazy_message();

  // int64 optional_int64 = 2;
  void clear_optional_int64();
  static const int kOptionalInt64FieldNumber = 2;
  ::google::protobuf::int64 optional_int64() const;
  void set_optional_int64(::google::protobuf::int64 value);

  // int32 optional_int32 = 1;
  void clear_optional_int32();
  static const int kOptionalInt32FieldNumber = 1;
  ::google::protobuf::int32 optional_int32() const;
  void set_optional_int32(::google::protobuf::int32 value);

  // uint32 optional_uint32 = 3;
  void clear_optional_uint32();
  static const int kOptionalUint32FieldNumber = 3;
  ::google::protobuf::uint32 optional_uint32() const;
  void set_optional_uint32(::google::protobuf::uint32 value);

  // uint64 optional_uint64 = 4;
  void clear_optional_uint64();
  static const int kOptionalUint64FieldNumber = 4;
  ::google::protobuf::uint64 optional_uint64() const;
  void set_optional_uint64(::google::protobuf::uint64 value);

  // sint64 optional_sint64 = 6;
  void clear_optional_sint64();
  static const int kOptionalSint64FieldNumber = 6;
  ::google::protobuf::int64 optional_sint64() const;
  void set_optional_sint64(::google::protobuf::int64 value);

  // sint32 optional_sint32 = 5;
  void clear_optional_sint32();
  static const int kOptionalSint32FieldNumber = 5;
  ::google::protobuf::int32 optional_sint32() const;
  void set_optional_sint32(::google::protobuf::int32 value);

  // fixed32 optional_fixed32 = 7;
  void clear_optional_fixed32();
  static const int kOptionalFixed32FieldNumber = 7;
  ::google::protobuf::uint32 optional_fixed32() const;
  void set_optional_fixed32(::google::protobuf::uint32 value);

  // fixed64 optional_fixed64 = 8;
  void clear_optional_fixed64();
  static const int kOptionalFixed64FieldNumber = 8;
  ::google::protobuf::uint64 optional_fixed64() const;
  void set_optional_fixed64(::google::protobuf::uint64 value);

  // sfixed64 optional_sfixed64 = 10;
  void clear_optional_sfixed64();
  static const int kOptionalSfixed64FieldNumber = 10;
  ::google::protobuf::int64 optional_sfixed64() const;
  void set_optional_sfixed64(::google::protobuf::int64 value);

  // sfixed32 optional_sfixed32 = 9;
  void clear_optional_sfixed32();
  static const int kOptionalSfixed32FieldNumber = 9;
  ::google::protobuf::int32 optional_sfixed32() const;
  void set_optional_sfixed32(::google::protobuf::int32 value);

  // float optional_float = 11;
  void clear_optional_float();
  static const int kOptionalFloatFieldNumber = 11;
  float optional_float() const;
  void set_optional_float(float value);

  // double optional_double = 12;
  void clear_optional_double();
  static const int kOptionalDoubleFieldNumber = 12;
  double optional_double() const;
  void set_optional_double(double value);

  // bool optional_bool = 13;
  void clear_optional_bool();
  static const int kOptionalBoolFieldNumber = 13;
  bool optional_bool() const;
  void set_optional_bool(bool value);

  // .proto3_arena_lite_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21;
  void clear_optional_nested_enum();
  static const int kOptionalNestedEnumFieldNumber = 21;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum optional_nested_enum() const;
  void set_optional_nested_enum(::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value);

  // .proto3_arena_lite_unittest.ForeignEnum optional_foreign_enum = 22;
  void clear_optional_foreign_enum();
  static const int kOptionalForeignEnumFieldNumber = 22;
  ::proto3_arena_lite_unittest::ForeignEnum optional_foreign_enum() const;
  void set_optional_foreign_enum(::proto3_arena_lite_unittest::ForeignEnum value);

  // uint32 oneof_uint32 = 111;
  private:
  bool has_oneof_uint32() const;
  public:
  void clear_oneof_uint32();
  static const int kOneofUint32FieldNumber = 111;
  ::google::protobuf::uint32 oneof_uint32() const;
  void set_oneof_uint32(::google::protobuf::uint32 value);

  // .proto3_arena_lite_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112;
  bool has_oneof_nested_message() const;
  void clear_oneof_nested_message();
  static const int kOneofNestedMessageFieldNumber = 112;
  private:
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& _internal_oneof_nested_message() const;
  public:
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& oneof_nested_message() const;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* release_oneof_nested_message();
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* mutable_oneof_nested_message();
  void set_allocated_oneof_nested_message(::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* oneof_nested_message);
  void unsafe_arena_set_allocated_oneof_nested_message(
      ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* oneof_nested_message);
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* unsafe_arena_release_oneof_nested_message();

  // string oneof_string = 113;
  private:
  bool has_oneof_string() const;
  public:
  void clear_oneof_string();
  static const int kOneofStringFieldNumber = 113;
  const ::std::string& oneof_string() const;
  void set_oneof_string(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_string(::std::string&& value);
  #endif
  void set_oneof_string(const char* value);
  void set_oneof_string(const char* value, size_t size);
  ::std::string* mutable_oneof_string();
  ::std::string* release_oneof_string();
  void set_allocated_oneof_string(::std::string* oneof_string);
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  ::std::string* unsafe_arena_release_oneof_string();
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_oneof_string(
      ::std::string* oneof_string);

  // bytes oneof_bytes = 114;
  private:
  bool has_oneof_bytes() const;
  public:
  void clear_oneof_bytes();
  static const int kOneofBytesFieldNumber = 114;
  const ::std::string& oneof_bytes() const;
  void set_oneof_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_bytes(::std::string&& value);
  #endif
  void set_oneof_bytes(const char* value);
  void set_oneof_bytes(const void* value, size_t size);
  ::std::string* mutable_oneof_bytes();
  ::std::string* release_oneof_bytes();
  void set_allocated_oneof_bytes(::std::string* oneof_bytes);
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  ::std::string* unsafe_arena_release_oneof_bytes();
  PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
  "    string fields are deprecated and will be removed in a"
  "    future release.")
  void unsafe_arena_set_allocated_oneof_bytes(
      ::std::string* oneof_bytes);

  void clear_oneof_field();
  OneofFieldCase oneof_field_case() const;
  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.TestAllTypes)
 private:
  void set_has_oneof_uint32();
  void set_has_oneof_nested_message();
  void set_has_oneof_string();
  void set_has_oneof_bytes();

  inline bool has_oneof_field() const;
  inline void clear_has_oneof_field();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  mutable int _repeated_int32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_int64_;
  mutable int _repeated_int64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_uint32_;
  mutable int _repeated_uint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_uint64_;
  mutable int _repeated_uint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sint32_;
  mutable int _repeated_sint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sint64_;
  mutable int _repeated_sint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  mutable int _repeated_fixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_fixed64_;
  mutable int _repeated_fixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sfixed32_;
  mutable int _repeated_sfixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sfixed64_;
  mutable int _repeated_sfixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< float > repeated_float_;
  mutable int _repeated_float_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > repeated_double_;
  mutable int _repeated_double_cached_byte_size_;
  ::google::protobuf::RepeatedField< bool > repeated_bool_;
  mutable int _repeated_bool_cached_byte_size_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_bytes_;
  ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage > repeated_nested_message_;
  ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::ForeignMessage > repeated_foreign_message_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage > repeated_import_message_;
  ::google::protobuf::RepeatedField<int> repeated_nested_enum_;
  mutable int _repeated_nested_enum_cached_byte_size_;
  ::google::protobuf::RepeatedField<int> repeated_foreign_enum_;
  mutable int _repeated_foreign_enum_cached_byte_size_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_piece_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_cord_;
  ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage > repeated_lazy_message_;
  ::google::protobuf::internal::ArenaStringPtr optional_string_;
  ::google::protobuf::internal::ArenaStringPtr optional_bytes_;
  ::google::protobuf::internal::ArenaStringPtr optional_string_piece_;
  ::google::protobuf::internal::ArenaStringPtr optional_cord_;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_nested_message_;
  ::proto3_arena_lite_unittest::ForeignMessage* optional_foreign_message_;
  ::protobuf_unittest_import::ImportMessage* optional_import_message_;
  ::protobuf_unittest_import::PublicImportMessage* optional_public_import_message_;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_lazy_message_;
  ::google::protobuf::int64 optional_int64_;
  ::google::protobuf::int32 optional_int32_;
  ::google::protobuf::uint32 optional_uint32_;
  ::google::protobuf::uint64 optional_uint64_;
  ::google::protobuf::int64 optional_sint64_;
  ::google::protobuf::int32 optional_sint32_;
  ::google::protobuf::uint32 optional_fixed32_;
  ::google::protobuf::uint64 optional_fixed64_;
  ::google::protobuf::int64 optional_sfixed64_;
  ::google::protobuf::int32 optional_sfixed32_;
  float optional_float_;
  double optional_double_;
  bool optional_bool_;
  int optional_nested_enum_;
  int optional_foreign_enum_;
  union OneofFieldUnion {
    OneofFieldUnion() {}
    ::google::protobuf::uint32 oneof_uint32_;
    ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* oneof_nested_message_;
    ::google::protobuf::internal::ArenaStringPtr oneof_string_;
    ::google::protobuf::internal::ArenaStringPtr oneof_bytes_;
  } oneof_field_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestPackedTypes : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.TestPackedTypes) */ {
 public:
  TestPackedTypes();
  virtual ~TestPackedTypes();

  TestPackedTypes(const TestPackedTypes& from);

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

  inline TestPackedTypes& operator=(TestPackedTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestPackedTypes& default_instance();

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

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

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

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

  TestPackedTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestPackedTypes>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestPackedTypes& from);
  void MergeFrom(const TestPackedTypes& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestPackedTypes* other);
  protected:
  explicit TestPackedTypes(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

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

  // repeated int32 packed_int32 = 90 [packed = true];
  int packed_int32_size() const;
  void clear_packed_int32();
  static const int kPackedInt32FieldNumber = 90;
  ::google::protobuf::int32 packed_int32(int index) const;
  void set_packed_int32(int index, ::google::protobuf::int32 value);
  void add_packed_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_int32();

  // repeated int64 packed_int64 = 91 [packed = true];
  int packed_int64_size() const;
  void clear_packed_int64();
  static const int kPackedInt64FieldNumber = 91;
  ::google::protobuf::int64 packed_int64(int index) const;
  void set_packed_int64(int index, ::google::protobuf::int64 value);
  void add_packed_int64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_int64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_int64();

  // repeated uint32 packed_uint32 = 92 [packed = true];
  int packed_uint32_size() const;
  void clear_packed_uint32();
  static const int kPackedUint32FieldNumber = 92;
  ::google::protobuf::uint32 packed_uint32(int index) const;
  void set_packed_uint32(int index, ::google::protobuf::uint32 value);
  void add_packed_uint32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      packed_uint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_packed_uint32();

  // repeated uint64 packed_uint64 = 93 [packed = true];
  int packed_uint64_size() const;
  void clear_packed_uint64();
  static const int kPackedUint64FieldNumber = 93;
  ::google::protobuf::uint64 packed_uint64(int index) const;
  void set_packed_uint64(int index, ::google::protobuf::uint64 value);
  void add_packed_uint64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      packed_uint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_packed_uint64();

  // repeated sint32 packed_sint32 = 94 [packed = true];
  int packed_sint32_size() const;
  void clear_packed_sint32();
  static const int kPackedSint32FieldNumber = 94;
  ::google::protobuf::int32 packed_sint32(int index) const;
  void set_packed_sint32(int index, ::google::protobuf::int32 value);
  void add_packed_sint32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_sint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_sint32();

  // repeated sint64 packed_sint64 = 95 [packed = true];
  int packed_sint64_size() const;
  void clear_packed_sint64();
  static const int kPackedSint64FieldNumber = 95;
  ::google::protobuf::int64 packed_sint64(int index) const;
  void set_packed_sint64(int index, ::google::protobuf::int64 value);
  void add_packed_sint64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_sint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_sint64();

  // repeated fixed32 packed_fixed32 = 96 [packed = true];
  int packed_fixed32_size() const;
  void clear_packed_fixed32();
  static const int kPackedFixed32FieldNumber = 96;
  ::google::protobuf::uint32 packed_fixed32(int index) const;
  void set_packed_fixed32(int index, ::google::protobuf::uint32 value);
  void add_packed_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      packed_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_packed_fixed32();

  // repeated fixed64 packed_fixed64 = 97 [packed = true];
  int packed_fixed64_size() const;
  void clear_packed_fixed64();
  static const int kPackedFixed64FieldNumber = 97;
  ::google::protobuf::uint64 packed_fixed64(int index) const;
  void set_packed_fixed64(int index, ::google::protobuf::uint64 value);
  void add_packed_fixed64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      packed_fixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_packed_fixed64();

  // repeated sfixed32 packed_sfixed32 = 98 [packed = true];
  int packed_sfixed32_size() const;
  void clear_packed_sfixed32();
  static const int kPackedSfixed32FieldNumber = 98;
  ::google::protobuf::int32 packed_sfixed32(int index) const;
  void set_packed_sfixed32(int index, ::google::protobuf::int32 value);
  void add_packed_sfixed32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_sfixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_sfixed32();

  // repeated sfixed64 packed_sfixed64 = 99 [packed = true];
  int packed_sfixed64_size() const;
  void clear_packed_sfixed64();
  static const int kPackedSfixed64FieldNumber = 99;
  ::google::protobuf::int64 packed_sfixed64(int index) const;
  void set_packed_sfixed64(int index, ::google::protobuf::int64 value);
  void add_packed_sfixed64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_sfixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_sfixed64();

  // repeated float packed_float = 100 [packed = true];
  int packed_float_size() const;
  void clear_packed_float();
  static const int kPackedFloatFieldNumber = 100;
  float packed_float(int index) const;
  void set_packed_float(int index, float value);
  void add_packed_float(float value);
  const ::google::protobuf::RepeatedField< float >&
      packed_float() const;
  ::google::protobuf::RepeatedField< float >*
      mutable_packed_float();

  // repeated double packed_double = 101 [packed = true];
  int packed_double_size() const;
  void clear_packed_double();
  static const int kPackedDoubleFieldNumber = 101;
  double packed_double(int index) const;
  void set_packed_double(int index, double value);
  void add_packed_double(double value);
  const ::google::protobuf::RepeatedField< double >&
      packed_double() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_packed_double();

  // repeated bool packed_bool = 102 [packed = true];
  int packed_bool_size() const;
  void clear_packed_bool();
  static const int kPackedBoolFieldNumber = 102;
  bool packed_bool(int index) const;
  void set_packed_bool(int index, bool value);
  void add_packed_bool(bool value);
  const ::google::protobuf::RepeatedField< bool >&
      packed_bool() const;
  ::google::protobuf::RepeatedField< bool >*
      mutable_packed_bool();

  // repeated .proto3_arena_lite_unittest.ForeignEnum packed_enum = 103 [packed = true];
  int packed_enum_size() const;
  void clear_packed_enum();
  static const int kPackedEnumFieldNumber = 103;
  ::proto3_arena_lite_unittest::ForeignEnum packed_enum(int index) const;
  void set_packed_enum(int index, ::proto3_arena_lite_unittest::ForeignEnum value);
  void add_packed_enum(::proto3_arena_lite_unittest::ForeignEnum value);
  const ::google::protobuf::RepeatedField<int>& packed_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_packed_enum();

  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.TestPackedTypes)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_int32_;
  mutable int _packed_int32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_int64_;
  mutable int _packed_int64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > packed_uint32_;
  mutable int _packed_uint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > packed_uint64_;
  mutable int _packed_uint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_sint32_;
  mutable int _packed_sint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_sint64_;
  mutable int _packed_sint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > packed_fixed32_;
  mutable int _packed_fixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > packed_fixed64_;
  mutable int _packed_fixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_sfixed32_;
  mutable int _packed_sfixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_sfixed64_;
  mutable int _packed_sfixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< float > packed_float_;
  mutable int _packed_float_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > packed_double_;
  mutable int _packed_double_cached_byte_size_;
  ::google::protobuf::RepeatedField< bool > packed_bool_;
  mutable int _packed_bool_cached_byte_size_;
  ::google::protobuf::RepeatedField<int> packed_enum_;
  mutable int _packed_enum_cached_byte_size_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestUnpackedTypes : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.TestUnpackedTypes) */ {
 public:
  TestUnpackedTypes();
  virtual ~TestUnpackedTypes();

  TestUnpackedTypes(const TestUnpackedTypes& from);

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

  inline TestUnpackedTypes& operator=(TestUnpackedTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestUnpackedTypes& default_instance();

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

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

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

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

  TestUnpackedTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestUnpackedTypes>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestUnpackedTypes& from);
  void MergeFrom(const TestUnpackedTypes& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestUnpackedTypes* other);
  protected:
  explicit TestUnpackedTypes(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

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

  // repeated int32 repeated_int32 = 1 [packed = false];
  int repeated_int32_size() const;
  void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 1;
  ::google::protobuf::int32 repeated_int32(int index) const;
  void set_repeated_int32(int index, ::google::protobuf::int32 value);
  void add_repeated_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();

  // repeated int64 repeated_int64 = 2 [packed = false];
  int repeated_int64_size() const;
  void clear_repeated_int64();
  static const int kRepeatedInt64FieldNumber = 2;
  ::google::protobuf::int64 repeated_int64(int index) const;
  void set_repeated_int64(int index, ::google::protobuf::int64 value);
  void add_repeated_int64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_int64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_int64();

  // repeated uint32 repeated_uint32 = 3 [packed = false];
  int repeated_uint32_size() const;
  void clear_repeated_uint32();
  static const int kRepeatedUint32FieldNumber = 3;
  ::google::protobuf::uint32 repeated_uint32(int index) const;
  void set_repeated_uint32(int index, ::google::protobuf::uint32 value);
  void add_repeated_uint32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_uint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_uint32();

  // repeated uint64 repeated_uint64 = 4 [packed = false];
  int repeated_uint64_size() const;
  void clear_repeated_uint64();
  static const int kRepeatedUint64FieldNumber = 4;
  ::google::protobuf::uint64 repeated_uint64(int index) const;
  void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
  void add_repeated_uint64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_uint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_uint64();

  // repeated sint32 repeated_sint32 = 5 [packed = false];
  int repeated_sint32_size() const;
  void clear_repeated_sint32();
  static const int kRepeatedSint32FieldNumber = 5;
  ::google::protobuf::int32 repeated_sint32(int index) const;
  void set_repeated_sint32(int index, ::google::protobuf::int32 value);
  void add_repeated_sint32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sint32();

  // repeated sint64 repeated_sint64 = 6 [packed = false];
  int repeated_sint64_size() const;
  void clear_repeated_sint64();
  static const int kRepeatedSint64FieldNumber = 6;
  ::google::protobuf::int64 repeated_sint64(int index) const;
  void set_repeated_sint64(int index, ::google::protobuf::int64 value);
  void add_repeated_sint64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sint64();

  // repeated fixed32 repeated_fixed32 = 7 [packed = false];
  int repeated_fixed32_size() const;
  void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 7;
  ::google::protobuf::uint32 repeated_fixed32(int index) const;
  void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  void add_repeated_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();

  // repeated fixed64 repeated_fixed64 = 8 [packed = false];
  int repeated_fixed64_size() const;
  void clear_repeated_fixed64();
  static const int kRepeatedFixed64FieldNumber = 8;
  ::google::protobuf::uint64 repeated_fixed64(int index) const;
  void set_repeated_fixed64(int index, ::google::protobuf::uint64 value);
  void add_repeated_fixed64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_fixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_fixed64();

  // repeated sfixed32 repeated_sfixed32 = 9 [packed = false];
  int repeated_sfixed32_size() const;
  void clear_repeated_sfixed32();
  static const int kRepeatedSfixed32FieldNumber = 9;
  ::google::protobuf::int32 repeated_sfixed32(int index) const;
  void set_repeated_sfixed32(int index, ::google::protobuf::int32 value);
  void add_repeated_sfixed32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sfixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sfixed32();

  // repeated sfixed64 repeated_sfixed64 = 10 [packed = false];
  int repeated_sfixed64_size() const;
  void clear_repeated_sfixed64();
  static const int kRepeatedSfixed64FieldNumber = 10;
  ::google::protobuf::int64 repeated_sfixed64(int index) const;
  void set_repeated_sfixed64(int index, ::google::protobuf::int64 value);
  void add_repeated_sfixed64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sfixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sfixed64();

  // repeated float repeated_float = 11 [packed = false];
  int repeated_float_size() const;
  void clear_repeated_float();
  static const int kRepeatedFloatFieldNumber = 11;
  float repeated_float(int index) const;
  void set_repeated_float(int index, float value);
  void add_repeated_float(float value);
  const ::google::protobuf::RepeatedField< float >&
      repeated_float() const;
  ::google::protobuf::RepeatedField< float >*
      mutable_repeated_float();

  // repeated double repeated_double = 12 [packed = false];
  int repeated_double_size() const;
  void clear_repeated_double();
  static const int kRepeatedDoubleFieldNumber = 12;
  double repeated_double(int index) const;
  void set_repeated_double(int index, double value);
  void add_repeated_double(double value);
  const ::google::protobuf::RepeatedField< double >&
      repeated_double() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_repeated_double();

  // repeated bool repeated_bool = 13 [packed = false];
  int repeated_bool_size() const;
  void clear_repeated_bool();
  static const int kRepeatedBoolFieldNumber = 13;
  bool repeated_bool(int index) const;
  void set_repeated_bool(int index, bool value);
  void add_repeated_bool(bool value);
  const ::google::protobuf::RepeatedField< bool >&
      repeated_bool() const;
  ::google::protobuf::RepeatedField< bool >*
      mutable_repeated_bool();

  // repeated .proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false];
  int repeated_nested_enum_size() const;
  void clear_repeated_nested_enum();
  static const int kRepeatedNestedEnumFieldNumber = 14;
  ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum repeated_nested_enum(int index) const;
  void set_repeated_nested_enum(int index, ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value);
  void add_repeated_nested_enum(::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value);
  const ::google::protobuf::RepeatedField<int>& repeated_nested_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_repeated_nested_enum();

  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.TestUnpackedTypes)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_int64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_uint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_uint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_fixed64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sfixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sfixed64_;
  ::google::protobuf::RepeatedField< float > repeated_float_;
  ::google::protobuf::RepeatedField< double > repeated_double_;
  ::google::protobuf::RepeatedField< bool > repeated_bool_;
  ::google::protobuf::RepeatedField<int> repeated_nested_enum_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NestedTestAllTypes : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.NestedTestAllTypes) */ {
 public:
  NestedTestAllTypes();
  virtual ~NestedTestAllTypes();

  NestedTestAllTypes(const NestedTestAllTypes& from);

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

  inline NestedTestAllTypes& operator=(NestedTestAllTypes&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const NestedTestAllTypes& default_instance();

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

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

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

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

  NestedTestAllTypes* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<NestedTestAllTypes>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const NestedTestAllTypes& from);
  void MergeFrom(const NestedTestAllTypes& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(NestedTestAllTypes* other);
  protected:
  explicit NestedTestAllTypes(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

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

  // .proto3_arena_lite_unittest.NestedTestAllTypes child = 1;
  bool has_child() const;
  void clear_child();
  static const int kChildFieldNumber = 1;
  private:
  const ::proto3_arena_lite_unittest::NestedTestAllTypes& _internal_child() const;
  public:
  const ::proto3_arena_lite_unittest::NestedTestAllTypes& child() const;
  ::proto3_arena_lite_unittest::NestedTestAllTypes* release_child();
  ::proto3_arena_lite_unittest::NestedTestAllTypes* mutable_child();
  void set_allocated_child(::proto3_arena_lite_unittest::NestedTestAllTypes* child);
  void unsafe_arena_set_allocated_child(
      ::proto3_arena_lite_unittest::NestedTestAllTypes* child);
  ::proto3_arena_lite_unittest::NestedTestAllTypes* unsafe_arena_release_child();

  // .proto3_arena_lite_unittest.TestAllTypes payload = 2;
  bool has_payload() const;
  void clear_payload();
  static const int kPayloadFieldNumber = 2;
  private:
  const ::proto3_arena_lite_unittest::TestAllTypes& _internal_payload() const;
  public:
  const ::proto3_arena_lite_unittest::TestAllTypes& payload() const;
  ::proto3_arena_lite_unittest::TestAllTypes* release_payload();
  ::proto3_arena_lite_unittest::TestAllTypes* mutable_payload();
  void set_allocated_payload(::proto3_arena_lite_unittest::TestAllTypes* payload);
  void unsafe_arena_set_allocated_payload(
      ::proto3_arena_lite_unittest::TestAllTypes* payload);
  ::proto3_arena_lite_unittest::TestAllTypes* unsafe_arena_release_payload();

  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.NestedTestAllTypes)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::proto3_arena_lite_unittest::NestedTestAllTypes* child_;
  ::proto3_arena_lite_unittest::TestAllTypes* payload_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ForeignMessage : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.ForeignMessage) */ {
 public:
  ForeignMessage();
  virtual ~ForeignMessage();

  ForeignMessage(const ForeignMessage& from);

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

  inline ForeignMessage& operator=(ForeignMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const ForeignMessage& default_instance();

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

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

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

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

  ForeignMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ForeignMessage>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const ForeignMessage& from);
  void MergeFrom(const ForeignMessage& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ForeignMessage* other);
  protected:
  explicit ForeignMessage(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

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

  // int32 c = 1;
  void clear_c();
  static const int kCFieldNumber = 1;
  ::google::protobuf::int32 c() const;
  void set_c(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.ForeignMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::int32 c_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestEmptyMessage : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:proto3_arena_lite_unittest.TestEmptyMessage) */ {
 public:
  TestEmptyMessage();
  virtual ~TestEmptyMessage();

  TestEmptyMessage(const TestEmptyMessage& from);

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

  inline TestEmptyMessage& operator=(TestEmptyMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestEmptyMessage& default_instance();

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

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

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

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

  TestEmptyMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestEmptyMessage>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestEmptyMessage& from);
  void MergeFrom(const TestEmptyMessage& 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;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestEmptyMessage* other);
  protected:
  explicit TestEmptyMessage(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:proto3_arena_lite_unittest.TestEmptyMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto::TableStruct;
};
// ===================================================================


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

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

// int32 bb = 1;
inline void TestAllTypes_NestedMessage::clear_bb() {
  bb_ = 0;
}
inline ::google::protobuf::int32 TestAllTypes_NestedMessage::bb() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.NestedMessage.bb)
  return bb_;
}
inline void TestAllTypes_NestedMessage::set_bb(::google::protobuf::int32 value) {
  
  bb_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.NestedMessage.bb)
}

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

// TestAllTypes

// int32 optional_int32 = 1;
inline void TestAllTypes::clear_optional_int32() {
  optional_int32_ = 0;
}
inline ::google::protobuf::int32 TestAllTypes::optional_int32() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_int32)
  return optional_int32_;
}
inline void TestAllTypes::set_optional_int32(::google::protobuf::int32 value) {
  
  optional_int32_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_int32)
}

// int64 optional_int64 = 2;
inline void TestAllTypes::clear_optional_int64() {
  optional_int64_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 TestAllTypes::optional_int64() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_int64)
  return optional_int64_;
}
inline void TestAllTypes::set_optional_int64(::google::protobuf::int64 value) {
  
  optional_int64_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_int64)
}

// uint32 optional_uint32 = 3;
inline void TestAllTypes::clear_optional_uint32() {
  optional_uint32_ = 0u;
}
inline ::google::protobuf::uint32 TestAllTypes::optional_uint32() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_uint32)
  return optional_uint32_;
}
inline void TestAllTypes::set_optional_uint32(::google::protobuf::uint32 value) {
  
  optional_uint32_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_uint32)
}

// uint64 optional_uint64 = 4;
inline void TestAllTypes::clear_optional_uint64() {
  optional_uint64_ = GOOGLE_ULONGLONG(0);
}
inline ::google::protobuf::uint64 TestAllTypes::optional_uint64() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_uint64)
  return optional_uint64_;
}
inline void TestAllTypes::set_optional_uint64(::google::protobuf::uint64 value) {
  
  optional_uint64_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_uint64)
}

// sint32 optional_sint32 = 5;
inline void TestAllTypes::clear_optional_sint32() {
  optional_sint32_ = 0;
}
inline ::google::protobuf::int32 TestAllTypes::optional_sint32() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_sint32)
  return optional_sint32_;
}
inline void TestAllTypes::set_optional_sint32(::google::protobuf::int32 value) {
  
  optional_sint32_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_sint32)
}

// sint64 optional_sint64 = 6;
inline void TestAllTypes::clear_optional_sint64() {
  optional_sint64_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 TestAllTypes::optional_sint64() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_sint64)
  return optional_sint64_;
}
inline void TestAllTypes::set_optional_sint64(::google::protobuf::int64 value) {
  
  optional_sint64_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_sint64)
}

// fixed32 optional_fixed32 = 7;
inline void TestAllTypes::clear_optional_fixed32() {
  optional_fixed32_ = 0u;
}
inline ::google::protobuf::uint32 TestAllTypes::optional_fixed32() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_fixed32)
  return optional_fixed32_;
}
inline void TestAllTypes::set_optional_fixed32(::google::protobuf::uint32 value) {
  
  optional_fixed32_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_fixed32)
}

// fixed64 optional_fixed64 = 8;
inline void TestAllTypes::clear_optional_fixed64() {
  optional_fixed64_ = GOOGLE_ULONGLONG(0);
}
inline ::google::protobuf::uint64 TestAllTypes::optional_fixed64() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_fixed64)
  return optional_fixed64_;
}
inline void TestAllTypes::set_optional_fixed64(::google::protobuf::uint64 value) {
  
  optional_fixed64_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_fixed64)
}

// sfixed32 optional_sfixed32 = 9;
inline void TestAllTypes::clear_optional_sfixed32() {
  optional_sfixed32_ = 0;
}
inline ::google::protobuf::int32 TestAllTypes::optional_sfixed32() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_sfixed32)
  return optional_sfixed32_;
}
inline void TestAllTypes::set_optional_sfixed32(::google::protobuf::int32 value) {
  
  optional_sfixed32_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_sfixed32)
}

// sfixed64 optional_sfixed64 = 10;
inline void TestAllTypes::clear_optional_sfixed64() {
  optional_sfixed64_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 TestAllTypes::optional_sfixed64() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_sfixed64)
  return optional_sfixed64_;
}
inline void TestAllTypes::set_optional_sfixed64(::google::protobuf::int64 value) {
  
  optional_sfixed64_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_sfixed64)
}

// float optional_float = 11;
inline void TestAllTypes::clear_optional_float() {
  optional_float_ = 0;
}
inline float TestAllTypes::optional_float() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_float)
  return optional_float_;
}
inline void TestAllTypes::set_optional_float(float value) {
  
  optional_float_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_float)
}

// double optional_double = 12;
inline void TestAllTypes::clear_optional_double() {
  optional_double_ = 0;
}
inline double TestAllTypes::optional_double() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_double)
  return optional_double_;
}
inline void TestAllTypes::set_optional_double(double value) {
  
  optional_double_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_double)
}

// bool optional_bool = 13;
inline void TestAllTypes::clear_optional_bool() {
  optional_bool_ = false;
}
inline bool TestAllTypes::optional_bool() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_bool)
  return optional_bool_;
}
inline void TestAllTypes::set_optional_bool(bool value) {
  
  optional_bool_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_bool)
}

// string optional_string = 14;
inline void TestAllTypes::clear_optional_string() {
  optional_string_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& TestAllTypes::optional_string() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_string)
  return optional_string_.Get();
}
inline void TestAllTypes::set_optional_string(const ::std::string& value) {
  
  optional_string_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_string)
}
#if LANG_CXX11
inline void TestAllTypes::set_optional_string(::std::string&& value) {
  
  optional_string_.SetLite(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_rvalue:proto3_arena_lite_unittest.TestAllTypes.optional_string)
}
#endif
inline void TestAllTypes::set_optional_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  optional_string_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.optional_string)
}
inline void TestAllTypes::set_optional_string(const char* value,
    size_t size) {
  
  optional_string_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.optional_string)
}
inline ::std::string* TestAllTypes::mutable_optional_string() {
  
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_string)
  return optional_string_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* TestAllTypes::release_optional_string() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_string)
  
  return optional_string_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline void TestAllTypes::set_allocated_optional_string(::std::string* optional_string) {
  if (optional_string != NULL) {
    
  } else {
    
  }
  optional_string_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_string,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_string)
}
inline ::std::string* TestAllTypes::unsafe_arena_release_optional_string() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_string)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return optional_string_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void TestAllTypes::unsafe_arena_set_allocated_optional_string(
    ::std::string* optional_string) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (optional_string != NULL) {
    
  } else {
    
  }
  optional_string_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      optional_string, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_string)
}

// bytes optional_bytes = 15;
inline void TestAllTypes::clear_optional_bytes() {
  optional_bytes_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& TestAllTypes::optional_bytes() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
  return optional_bytes_.Get();
}
inline void TestAllTypes::set_optional_bytes(const ::std::string& value) {
  
  optional_bytes_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
}
#if LANG_CXX11
inline void TestAllTypes::set_optional_bytes(::std::string&& value) {
  
  optional_bytes_.SetLite(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_rvalue:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
}
#endif
inline void TestAllTypes::set_optional_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  optional_bytes_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
}
inline void TestAllTypes::set_optional_bytes(const void* value,
    size_t size) {
  
  optional_bytes_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
}
inline ::std::string* TestAllTypes::mutable_optional_bytes() {
  
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
  return optional_bytes_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* TestAllTypes::release_optional_bytes() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
  
  return optional_bytes_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline void TestAllTypes::set_allocated_optional_bytes(::std::string* optional_bytes) {
  if (optional_bytes != NULL) {
    
  } else {
    
  }
  optional_bytes_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_bytes,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
}
inline ::std::string* TestAllTypes::unsafe_arena_release_optional_bytes() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return optional_bytes_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void TestAllTypes::unsafe_arena_set_allocated_optional_bytes(
    ::std::string* optional_bytes) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (optional_bytes != NULL) {
    
  } else {
    
  }
  optional_bytes_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      optional_bytes, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_bytes)
}

// .proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_nested_message = 18;
inline bool TestAllTypes::has_optional_nested_message() const {
  return this != internal_default_instance() && optional_nested_message_ != NULL;
}
inline void TestAllTypes::clear_optional_nested_message() {
  if (GetArenaNoVirtual() == NULL && optional_nested_message_ != NULL) {
    delete optional_nested_message_;
  }
  optional_nested_message_ = NULL;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::_internal_optional_nested_message() const {
  return *optional_nested_message_;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::optional_nested_message() const {
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* p = optional_nested_message_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage*>(
      &::proto3_arena_lite_unittest::_TestAllTypes_NestedMessage_default_instance_);
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::release_optional_nested_message() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_nested_message)
  
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* temp = optional_nested_message_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  optional_nested_message_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::unsafe_arena_release_optional_nested_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_nested_message)
  
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* temp = optional_nested_message_;
  optional_nested_message_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_optional_nested_message() {
  
  if (optional_nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::proto3_arena_lite_unittest::TestAllTypes_NestedMessage>(GetArenaNoVirtual());
    optional_nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_nested_message)
  return optional_nested_message_;
}
inline void TestAllTypes::set_allocated_optional_nested_message(::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_nested_message_;
  }
  if (optional_nested_message) {
    ::google::protobuf::Arena* submessage_arena =
      ::google::protobuf::Arena::GetArena(optional_nested_message);
    if (message_arena != submessage_arena) {
      optional_nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_nested_message, submessage_arena);
    }
    
  } else {
    
  }
  optional_nested_message_ = optional_nested_message;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_nested_message)
}

// .proto3_arena_lite_unittest.ForeignMessage optional_foreign_message = 19;
inline bool TestAllTypes::has_optional_foreign_message() const {
  return this != internal_default_instance() && optional_foreign_message_ != NULL;
}
inline void TestAllTypes::clear_optional_foreign_message() {
  if (GetArenaNoVirtual() == NULL && optional_foreign_message_ != NULL) {
    delete optional_foreign_message_;
  }
  optional_foreign_message_ = NULL;
}
inline const ::proto3_arena_lite_unittest::ForeignMessage& TestAllTypes::_internal_optional_foreign_message() const {
  return *optional_foreign_message_;
}
inline const ::proto3_arena_lite_unittest::ForeignMessage& TestAllTypes::optional_foreign_message() const {
  const ::proto3_arena_lite_unittest::ForeignMessage* p = optional_foreign_message_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_message)
  return p != NULL ? *p : *reinterpret_cast<const ::proto3_arena_lite_unittest::ForeignMessage*>(
      &::proto3_arena_lite_unittest::_ForeignMessage_default_instance_);
}
inline ::proto3_arena_lite_unittest::ForeignMessage* TestAllTypes::release_optional_foreign_message() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_message)
  
  ::proto3_arena_lite_unittest::ForeignMessage* temp = optional_foreign_message_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  optional_foreign_message_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::ForeignMessage* TestAllTypes::unsafe_arena_release_optional_foreign_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_message)
  
  ::proto3_arena_lite_unittest::ForeignMessage* temp = optional_foreign_message_;
  optional_foreign_message_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::ForeignMessage* TestAllTypes::mutable_optional_foreign_message() {
  
  if (optional_foreign_message_ == NULL) {
    auto* p = CreateMaybeMessage<::proto3_arena_lite_unittest::ForeignMessage>(GetArenaNoVirtual());
    optional_foreign_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_message)
  return optional_foreign_message_;
}
inline void TestAllTypes::set_allocated_optional_foreign_message(::proto3_arena_lite_unittest::ForeignMessage* optional_foreign_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_foreign_message_;
  }
  if (optional_foreign_message) {
    ::google::protobuf::Arena* submessage_arena =
      ::google::protobuf::Arena::GetArena(optional_foreign_message);
    if (message_arena != submessage_arena) {
      optional_foreign_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_foreign_message, submessage_arena);
    }
    
  } else {
    
  }
  optional_foreign_message_ = optional_foreign_message;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_message)
}

// .protobuf_unittest_import.ImportMessage optional_import_message = 20;
inline bool TestAllTypes::has_optional_import_message() const {
  return this != internal_default_instance() && optional_import_message_ != NULL;
}
inline const ::protobuf_unittest_import::ImportMessage& TestAllTypes::_internal_optional_import_message() const {
  return *optional_import_message_;
}
inline const ::protobuf_unittest_import::ImportMessage& TestAllTypes::optional_import_message() const {
  const ::protobuf_unittest_import::ImportMessage* p = optional_import_message_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_import_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest_import::ImportMessage*>(
      &::protobuf_unittest_import::_ImportMessage_default_instance_);
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::release_optional_import_message() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_import_message)
  
  ::protobuf_unittest_import::ImportMessage* temp = optional_import_message_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  optional_import_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::unsafe_arena_release_optional_import_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_import_message)
  
  ::protobuf_unittest_import::ImportMessage* temp = optional_import_message_;
  optional_import_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::mutable_optional_import_message() {
  
  if (optional_import_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest_import::ImportMessage>(GetArenaNoVirtual());
    optional_import_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_import_message)
  return optional_import_message_;
}
inline void TestAllTypes::set_allocated_optional_import_message(::protobuf_unittest_import::ImportMessage* optional_import_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(optional_import_message_);
  }
  if (optional_import_message) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(optional_import_message)->GetArena();
    if (message_arena != submessage_arena) {
      optional_import_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_import_message, submessage_arena);
    }
    
  } else {
    
  }
  optional_import_message_ = optional_import_message;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_import_message)
}

// .proto3_arena_lite_unittest.TestAllTypes.NestedEnum optional_nested_enum = 21;
inline void TestAllTypes::clear_optional_nested_enum() {
  optional_nested_enum_ = 0;
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum TestAllTypes::optional_nested_enum() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_nested_enum)
  return static_cast< ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum >(optional_nested_enum_);
}
inline void TestAllTypes::set_optional_nested_enum(::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value) {
  
  optional_nested_enum_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_nested_enum)
}

// .proto3_arena_lite_unittest.ForeignEnum optional_foreign_enum = 22;
inline void TestAllTypes::clear_optional_foreign_enum() {
  optional_foreign_enum_ = 0;
}
inline ::proto3_arena_lite_unittest::ForeignEnum TestAllTypes::optional_foreign_enum() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_enum)
  return static_cast< ::proto3_arena_lite_unittest::ForeignEnum >(optional_foreign_enum_);
}
inline void TestAllTypes::set_optional_foreign_enum(::proto3_arena_lite_unittest::ForeignEnum value) {
  
  optional_foreign_enum_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_foreign_enum)
}

// string optional_string_piece = 24 [ctype = STRING_PIECE];
inline void TestAllTypes::clear_optional_string_piece() {
  optional_string_piece_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& TestAllTypes::optional_string_piece() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
  return optional_string_piece_.Get();
}
inline void TestAllTypes::set_optional_string_piece(const ::std::string& value) {
  
  optional_string_piece_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
}
#if LANG_CXX11
inline void TestAllTypes::set_optional_string_piece(::std::string&& value) {
  
  optional_string_piece_.SetLite(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_rvalue:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
}
#endif
inline void TestAllTypes::set_optional_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  optional_string_piece_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
}
inline void TestAllTypes::set_optional_string_piece(const char* value,
    size_t size) {
  
  optional_string_piece_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
}
inline ::std::string* TestAllTypes::mutable_optional_string_piece() {
  
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
  return optional_string_piece_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* TestAllTypes::release_optional_string_piece() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
  
  return optional_string_piece_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline void TestAllTypes::set_allocated_optional_string_piece(::std::string* optional_string_piece) {
  if (optional_string_piece != NULL) {
    
  } else {
    
  }
  optional_string_piece_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_string_piece,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
}
inline ::std::string* TestAllTypes::unsafe_arena_release_optional_string_piece() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return optional_string_piece_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void TestAllTypes::unsafe_arena_set_allocated_optional_string_piece(
    ::std::string* optional_string_piece) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (optional_string_piece != NULL) {
    
  } else {
    
  }
  optional_string_piece_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      optional_string_piece, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_string_piece)
}

// string optional_cord = 25 [ctype = CORD];
inline void TestAllTypes::clear_optional_cord() {
  optional_cord_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& TestAllTypes::optional_cord() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
  return optional_cord_.Get();
}
inline void TestAllTypes::set_optional_cord(const ::std::string& value) {
  
  optional_cord_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
}
#if LANG_CXX11
inline void TestAllTypes::set_optional_cord(::std::string&& value) {
  
  optional_cord_.SetLite(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_rvalue:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
}
#endif
inline void TestAllTypes::set_optional_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  optional_cord_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
}
inline void TestAllTypes::set_optional_cord(const char* value,
    size_t size) {
  
  optional_cord_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
}
inline ::std::string* TestAllTypes::mutable_optional_cord() {
  
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
  return optional_cord_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* TestAllTypes::release_optional_cord() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
  
  return optional_cord_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline void TestAllTypes::set_allocated_optional_cord(::std::string* optional_cord) {
  if (optional_cord != NULL) {
    
  } else {
    
  }
  optional_cord_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_cord,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
}
inline ::std::string* TestAllTypes::unsafe_arena_release_optional_cord() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return optional_cord_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void TestAllTypes::unsafe_arena_set_allocated_optional_cord(
    ::std::string* optional_cord) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (optional_cord != NULL) {
    
  } else {
    
  }
  optional_cord_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      optional_cord, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_cord)
}

// .protobuf_unittest_import.PublicImportMessage optional_public_import_message = 26;
inline bool TestAllTypes::has_optional_public_import_message() const {
  return this != internal_default_instance() && optional_public_import_message_ != NULL;
}
inline const ::protobuf_unittest_import::PublicImportMessage& TestAllTypes::_internal_optional_public_import_message() const {
  return *optional_public_import_message_;
}
inline const ::protobuf_unittest_import::PublicImportMessage& TestAllTypes::optional_public_import_message() const {
  const ::protobuf_unittest_import::PublicImportMessage* p = optional_public_import_message_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_public_import_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest_import::PublicImportMessage*>(
      &::protobuf_unittest_import::_PublicImportMessage_default_instance_);
}
inline ::protobuf_unittest_import::PublicImportMessage* TestAllTypes::release_optional_public_import_message() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_public_import_message)
  
  ::protobuf_unittest_import::PublicImportMessage* temp = optional_public_import_message_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  optional_public_import_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest_import::PublicImportMessage* TestAllTypes::unsafe_arena_release_optional_public_import_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_public_import_message)
  
  ::protobuf_unittest_import::PublicImportMessage* temp = optional_public_import_message_;
  optional_public_import_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest_import::PublicImportMessage* TestAllTypes::mutable_optional_public_import_message() {
  
  if (optional_public_import_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest_import::PublicImportMessage>(GetArenaNoVirtual());
    optional_public_import_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_public_import_message)
  return optional_public_import_message_;
}
inline void TestAllTypes::set_allocated_optional_public_import_message(::protobuf_unittest_import::PublicImportMessage* optional_public_import_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(optional_public_import_message_);
  }
  if (optional_public_import_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_public_import_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_public_import_message, submessage_arena);
    }
    
  } else {
    
  }
  optional_public_import_message_ = optional_public_import_message;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_public_import_message)
}

// .proto3_arena_lite_unittest.TestAllTypes.NestedMessage optional_lazy_message = 27 [lazy = true];
inline bool TestAllTypes::has_optional_lazy_message() const {
  return this != internal_default_instance() && optional_lazy_message_ != NULL;
}
inline void TestAllTypes::clear_optional_lazy_message() {
  if (GetArenaNoVirtual() == NULL && optional_lazy_message_ != NULL) {
    delete optional_lazy_message_;
  }
  optional_lazy_message_ = NULL;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::_internal_optional_lazy_message() const {
  return *optional_lazy_message_;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::optional_lazy_message() const {
  const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* p = optional_lazy_message_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.optional_lazy_message)
  return p != NULL ? *p : *reinterpret_cast<const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage*>(
      &::proto3_arena_lite_unittest::_TestAllTypes_NestedMessage_default_instance_);
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::release_optional_lazy_message() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.optional_lazy_message)
  
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* temp = optional_lazy_message_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  optional_lazy_message_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::unsafe_arena_release_optional_lazy_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.optional_lazy_message)
  
  ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* temp = optional_lazy_message_;
  optional_lazy_message_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_optional_lazy_message() {
  
  if (optional_lazy_message_ == NULL) {
    auto* p = CreateMaybeMessage<::proto3_arena_lite_unittest::TestAllTypes_NestedMessage>(GetArenaNoVirtual());
    optional_lazy_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.optional_lazy_message)
  return optional_lazy_message_;
}
inline void TestAllTypes::set_allocated_optional_lazy_message(::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* optional_lazy_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_lazy_message_;
  }
  if (optional_lazy_message) {
    ::google::protobuf::Arena* submessage_arena =
      ::google::protobuf::Arena::GetArena(optional_lazy_message);
    if (message_arena != submessage_arena) {
      optional_lazy_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_lazy_message, submessage_arena);
    }
    
  } else {
    
  }
  optional_lazy_message_ = optional_lazy_message;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.optional_lazy_message)
}

// repeated int32 repeated_int32 = 31;
inline int TestAllTypes::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void TestAllTypes::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypes::repeated_int32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_int32)
  return repeated_int32_.Get(index);
}
inline void TestAllTypes::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_int32)
}
inline void TestAllTypes::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypes::repeated_int32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_int32)
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypes::mutable_repeated_int32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_int32)
  return &repeated_int32_;
}

// repeated int64 repeated_int64 = 32;
inline int TestAllTypes::repeated_int64_size() const {
  return repeated_int64_.size();
}
inline void TestAllTypes::clear_repeated_int64() {
  repeated_int64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypes::repeated_int64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_int64)
  return repeated_int64_.Get(index);
}
inline void TestAllTypes::set_repeated_int64(int index, ::google::protobuf::int64 value) {
  repeated_int64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_int64)
}
inline void TestAllTypes::add_repeated_int64(::google::protobuf::int64 value) {
  repeated_int64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_int64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypes::repeated_int64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_int64)
  return repeated_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypes::mutable_repeated_int64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_int64)
  return &repeated_int64_;
}

// repeated uint32 repeated_uint32 = 33;
inline int TestAllTypes::repeated_uint32_size() const {
  return repeated_uint32_.size();
}
inline void TestAllTypes::clear_repeated_uint32() {
  repeated_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestAllTypes::repeated_uint32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_uint32)
  return repeated_uint32_.Get(index);
}
inline void TestAllTypes::set_repeated_uint32(int index, ::google::protobuf::uint32 value) {
  repeated_uint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_uint32)
}
inline void TestAllTypes::add_repeated_uint32(::google::protobuf::uint32 value) {
  repeated_uint32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_uint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestAllTypes::repeated_uint32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_uint32)
  return repeated_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestAllTypes::mutable_repeated_uint32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_uint32)
  return &repeated_uint32_;
}

// repeated uint64 repeated_uint64 = 34;
inline int TestAllTypes::repeated_uint64_size() const {
  return repeated_uint64_.size();
}
inline void TestAllTypes::clear_repeated_uint64() {
  repeated_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestAllTypes::repeated_uint64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_uint64)
  return repeated_uint64_.Get(index);
}
inline void TestAllTypes::set_repeated_uint64(int index, ::google::protobuf::uint64 value) {
  repeated_uint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_uint64)
}
inline void TestAllTypes::add_repeated_uint64(::google::protobuf::uint64 value) {
  repeated_uint64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_uint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestAllTypes::repeated_uint64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_uint64)
  return repeated_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestAllTypes::mutable_repeated_uint64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_uint64)
  return &repeated_uint64_;
}

// repeated sint32 repeated_sint32 = 35;
inline int TestAllTypes::repeated_sint32_size() const {
  return repeated_sint32_.size();
}
inline void TestAllTypes::clear_repeated_sint32() {
  repeated_sint32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypes::repeated_sint32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_sint32)
  return repeated_sint32_.Get(index);
}
inline void TestAllTypes::set_repeated_sint32(int index, ::google::protobuf::int32 value) {
  repeated_sint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_sint32)
}
inline void TestAllTypes::add_repeated_sint32(::google::protobuf::int32 value) {
  repeated_sint32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_sint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypes::repeated_sint32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sint32)
  return repeated_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypes::mutable_repeated_sint32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sint32)
  return &repeated_sint32_;
}

// repeated sint64 repeated_sint64 = 36;
inline int TestAllTypes::repeated_sint64_size() const {
  return repeated_sint64_.size();
}
inline void TestAllTypes::clear_repeated_sint64() {
  repeated_sint64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypes::repeated_sint64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_sint64)
  return repeated_sint64_.Get(index);
}
inline void TestAllTypes::set_repeated_sint64(int index, ::google::protobuf::int64 value) {
  repeated_sint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_sint64)
}
inline void TestAllTypes::add_repeated_sint64(::google::protobuf::int64 value) {
  repeated_sint64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_sint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypes::repeated_sint64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sint64)
  return repeated_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypes::mutable_repeated_sint64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sint64)
  return &repeated_sint64_;
}

// repeated fixed32 repeated_fixed32 = 37;
inline int TestAllTypes::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void TestAllTypes::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestAllTypes::repeated_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed32)
  return repeated_fixed32_.Get(index);
}
inline void TestAllTypes::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed32)
}
inline void TestAllTypes::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestAllTypes::repeated_fixed32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed32)
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestAllTypes::mutable_repeated_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed32)
  return &repeated_fixed32_;
}

// repeated fixed64 repeated_fixed64 = 38;
inline int TestAllTypes::repeated_fixed64_size() const {
  return repeated_fixed64_.size();
}
inline void TestAllTypes::clear_repeated_fixed64() {
  repeated_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestAllTypes::repeated_fixed64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed64)
  return repeated_fixed64_.Get(index);
}
inline void TestAllTypes::set_repeated_fixed64(int index, ::google::protobuf::uint64 value) {
  repeated_fixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed64)
}
inline void TestAllTypes::add_repeated_fixed64(::google::protobuf::uint64 value) {
  repeated_fixed64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestAllTypes::repeated_fixed64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed64)
  return repeated_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestAllTypes::mutable_repeated_fixed64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_fixed64)
  return &repeated_fixed64_;
}

// repeated sfixed32 repeated_sfixed32 = 39;
inline int TestAllTypes::repeated_sfixed32_size() const {
  return repeated_sfixed32_.size();
}
inline void TestAllTypes::clear_repeated_sfixed32() {
  repeated_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypes::repeated_sfixed32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed32)
  return repeated_sfixed32_.Get(index);
}
inline void TestAllTypes::set_repeated_sfixed32(int index, ::google::protobuf::int32 value) {
  repeated_sfixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed32)
}
inline void TestAllTypes::add_repeated_sfixed32(::google::protobuf::int32 value) {
  repeated_sfixed32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypes::repeated_sfixed32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed32)
  return repeated_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypes::mutable_repeated_sfixed32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed32)
  return &repeated_sfixed32_;
}

// repeated sfixed64 repeated_sfixed64 = 40;
inline int TestAllTypes::repeated_sfixed64_size() const {
  return repeated_sfixed64_.size();
}
inline void TestAllTypes::clear_repeated_sfixed64() {
  repeated_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypes::repeated_sfixed64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed64)
  return repeated_sfixed64_.Get(index);
}
inline void TestAllTypes::set_repeated_sfixed64(int index, ::google::protobuf::int64 value) {
  repeated_sfixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed64)
}
inline void TestAllTypes::add_repeated_sfixed64(::google::protobuf::int64 value) {
  repeated_sfixed64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypes::repeated_sfixed64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed64)
  return repeated_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypes::mutable_repeated_sfixed64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_sfixed64)
  return &repeated_sfixed64_;
}

// repeated float repeated_float = 41;
inline int TestAllTypes::repeated_float_size() const {
  return repeated_float_.size();
}
inline void TestAllTypes::clear_repeated_float() {
  repeated_float_.Clear();
}
inline float TestAllTypes::repeated_float(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_float)
  return repeated_float_.Get(index);
}
inline void TestAllTypes::set_repeated_float(int index, float value) {
  repeated_float_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_float)
}
inline void TestAllTypes::add_repeated_float(float value) {
  repeated_float_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_float)
}
inline const ::google::protobuf::RepeatedField< float >&
TestAllTypes::repeated_float() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_float)
  return repeated_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestAllTypes::mutable_repeated_float() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_float)
  return &repeated_float_;
}

// repeated double repeated_double = 42;
inline int TestAllTypes::repeated_double_size() const {
  return repeated_double_.size();
}
inline void TestAllTypes::clear_repeated_double() {
  repeated_double_.Clear();
}
inline double TestAllTypes::repeated_double(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_double)
  return repeated_double_.Get(index);
}
inline void TestAllTypes::set_repeated_double(int index, double value) {
  repeated_double_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_double)
}
inline void TestAllTypes::add_repeated_double(double value) {
  repeated_double_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_double)
}
inline const ::google::protobuf::RepeatedField< double >&
TestAllTypes::repeated_double() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_double)
  return repeated_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestAllTypes::mutable_repeated_double() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_double)
  return &repeated_double_;
}

// repeated bool repeated_bool = 43;
inline int TestAllTypes::repeated_bool_size() const {
  return repeated_bool_.size();
}
inline void TestAllTypes::clear_repeated_bool() {
  repeated_bool_.Clear();
}
inline bool TestAllTypes::repeated_bool(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_bool)
  return repeated_bool_.Get(index);
}
inline void TestAllTypes::set_repeated_bool(int index, bool value) {
  repeated_bool_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_bool)
}
inline void TestAllTypes::add_repeated_bool(bool value) {
  repeated_bool_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_bool)
}
inline const ::google::protobuf::RepeatedField< bool >&
TestAllTypes::repeated_bool() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_bool)
  return repeated_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestAllTypes::mutable_repeated_bool() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_bool)
  return &repeated_bool_;
}

// repeated string repeated_string = 44;
inline int TestAllTypes::repeated_string_size() const {
  return repeated_string_.size();
}
inline void TestAllTypes::clear_repeated_string() {
  repeated_string_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_string(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  return repeated_string_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_string(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  return repeated_string_.Mutable(index);
}
inline void TestAllTypes::set_repeated_string(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  repeated_string_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypes::set_repeated_string(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  repeated_string_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypes::set_repeated_string(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
}
inline void TestAllTypes::set_repeated_string(int index, const char* value, size_t size) {
  repeated_string_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
}
inline ::std::string* TestAllTypes::add_repeated_string() {
  // @@protoc_insertion_point(field_add_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  return repeated_string_.Add();
}
inline void TestAllTypes::add_repeated_string(const ::std::string& value) {
  repeated_string_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
}
#if LANG_CXX11
inline void TestAllTypes::add_repeated_string(::std::string&& value) {
  repeated_string_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
}
#endif
inline void TestAllTypes::add_repeated_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
}
inline void TestAllTypes::add_repeated_string(const char* value, size_t size) {
  repeated_string_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_string() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  return repeated_string_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_string() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_string)
  return &repeated_string_;
}

// repeated bytes repeated_bytes = 45;
inline int TestAllTypes::repeated_bytes_size() const {
  return repeated_bytes_.size();
}
inline void TestAllTypes::clear_repeated_bytes() {
  repeated_bytes_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_bytes(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  return repeated_bytes_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_bytes(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  return repeated_bytes_.Mutable(index);
}
inline void TestAllTypes::set_repeated_bytes(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  repeated_bytes_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypes::set_repeated_bytes(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  repeated_bytes_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypes::set_repeated_bytes(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_bytes_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
}
inline void TestAllTypes::set_repeated_bytes(int index, const void* value, size_t size) {
  repeated_bytes_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
}
inline ::std::string* TestAllTypes::add_repeated_bytes() {
  // @@protoc_insertion_point(field_add_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  return repeated_bytes_.Add();
}
inline void TestAllTypes::add_repeated_bytes(const ::std::string& value) {
  repeated_bytes_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
}
#if LANG_CXX11
inline void TestAllTypes::add_repeated_bytes(::std::string&& value) {
  repeated_bytes_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
}
#endif
inline void TestAllTypes::add_repeated_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_bytes_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
}
inline void TestAllTypes::add_repeated_bytes(const void* value, size_t size) {
  repeated_bytes_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_bytes() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  return repeated_bytes_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_bytes() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_bytes)
  return &repeated_bytes_;
}

// repeated .proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_nested_message = 48;
inline int TestAllTypes::repeated_nested_message_size() const {
  return repeated_nested_message_.size();
}
inline void TestAllTypes::clear_repeated_nested_message() {
  repeated_nested_message_.Clear();
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_repeated_nested_message(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_message)
  return repeated_nested_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >*
TestAllTypes::mutable_repeated_nested_message() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_message)
  return &repeated_nested_message_;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::repeated_nested_message(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_message)
  return repeated_nested_message_.Get(index);
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::add_repeated_nested_message() {
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_message)
  return repeated_nested_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >&
TestAllTypes::repeated_nested_message() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_message)
  return repeated_nested_message_;
}

// repeated .proto3_arena_lite_unittest.ForeignMessage repeated_foreign_message = 49;
inline int TestAllTypes::repeated_foreign_message_size() const {
  return repeated_foreign_message_.size();
}
inline void TestAllTypes::clear_repeated_foreign_message() {
  repeated_foreign_message_.Clear();
}
inline ::proto3_arena_lite_unittest::ForeignMessage* TestAllTypes::mutable_repeated_foreign_message(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_message)
  return repeated_foreign_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::ForeignMessage >*
TestAllTypes::mutable_repeated_foreign_message() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_message)
  return &repeated_foreign_message_;
}
inline const ::proto3_arena_lite_unittest::ForeignMessage& TestAllTypes::repeated_foreign_message(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_message)
  return repeated_foreign_message_.Get(index);
}
inline ::proto3_arena_lite_unittest::ForeignMessage* TestAllTypes::add_repeated_foreign_message() {
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_message)
  return repeated_foreign_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::ForeignMessage >&
TestAllTypes::repeated_foreign_message() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_message)
  return repeated_foreign_message_;
}

// repeated .protobuf_unittest_import.ImportMessage repeated_import_message = 50;
inline int TestAllTypes::repeated_import_message_size() const {
  return repeated_import_message_.size();
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::mutable_repeated_import_message(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_import_message)
  return repeated_import_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >*
TestAllTypes::mutable_repeated_import_message() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_import_message)
  return &repeated_import_message_;
}
inline const ::protobuf_unittest_import::ImportMessage& TestAllTypes::repeated_import_message(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_import_message)
  return repeated_import_message_.Get(index);
}
inline ::protobuf_unittest_import::ImportMessage* TestAllTypes::add_repeated_import_message() {
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_import_message)
  return repeated_import_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessage >&
TestAllTypes::repeated_import_message() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_import_message)
  return repeated_import_message_;
}

// repeated .proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 51;
inline int TestAllTypes::repeated_nested_enum_size() const {
  return repeated_nested_enum_.size();
}
inline void TestAllTypes::clear_repeated_nested_enum() {
  repeated_nested_enum_.Clear();
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum TestAllTypes::repeated_nested_enum(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_enum)
  return static_cast< ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum >(repeated_nested_enum_.Get(index));
}
inline void TestAllTypes::set_repeated_nested_enum(int index, ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value) {
  repeated_nested_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_enum)
}
inline void TestAllTypes::add_repeated_nested_enum(::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value) {
  repeated_nested_enum_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypes::repeated_nested_enum() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_enum)
  return repeated_nested_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypes::mutable_repeated_nested_enum() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_nested_enum)
  return &repeated_nested_enum_;
}

// repeated .proto3_arena_lite_unittest.ForeignEnum repeated_foreign_enum = 52;
inline int TestAllTypes::repeated_foreign_enum_size() const {
  return repeated_foreign_enum_.size();
}
inline void TestAllTypes::clear_repeated_foreign_enum() {
  repeated_foreign_enum_.Clear();
}
inline ::proto3_arena_lite_unittest::ForeignEnum TestAllTypes::repeated_foreign_enum(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_enum)
  return static_cast< ::proto3_arena_lite_unittest::ForeignEnum >(repeated_foreign_enum_.Get(index));
}
inline void TestAllTypes::set_repeated_foreign_enum(int index, ::proto3_arena_lite_unittest::ForeignEnum value) {
  repeated_foreign_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_enum)
}
inline void TestAllTypes::add_repeated_foreign_enum(::proto3_arena_lite_unittest::ForeignEnum value) {
  repeated_foreign_enum_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypes::repeated_foreign_enum() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_enum)
  return repeated_foreign_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypes::mutable_repeated_foreign_enum() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_foreign_enum)
  return &repeated_foreign_enum_;
}

// repeated string repeated_string_piece = 54 [ctype = STRING_PIECE];
inline int TestAllTypes::repeated_string_piece_size() const {
  return repeated_string_piece_.size();
}
inline void TestAllTypes::clear_repeated_string_piece() {
  repeated_string_piece_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_string_piece(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  return repeated_string_piece_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_string_piece(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  return repeated_string_piece_.Mutable(index);
}
inline void TestAllTypes::set_repeated_string_piece(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  repeated_string_piece_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypes::set_repeated_string_piece(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  repeated_string_piece_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypes::set_repeated_string_piece(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_piece_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
}
inline void TestAllTypes::set_repeated_string_piece(int index, const char* value, size_t size) {
  repeated_string_piece_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
}
inline ::std::string* TestAllTypes::add_repeated_string_piece() {
  // @@protoc_insertion_point(field_add_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  return repeated_string_piece_.Add();
}
inline void TestAllTypes::add_repeated_string_piece(const ::std::string& value) {
  repeated_string_piece_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
}
#if LANG_CXX11
inline void TestAllTypes::add_repeated_string_piece(::std::string&& value) {
  repeated_string_piece_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
}
#endif
inline void TestAllTypes::add_repeated_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_piece_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
}
inline void TestAllTypes::add_repeated_string_piece(const char* value, size_t size) {
  repeated_string_piece_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_string_piece() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  return repeated_string_piece_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_string_piece() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_string_piece)
  return &repeated_string_piece_;
}

// repeated string repeated_cord = 55 [ctype = CORD];
inline int TestAllTypes::repeated_cord_size() const {
  return repeated_cord_.size();
}
inline void TestAllTypes::clear_repeated_cord() {
  repeated_cord_.Clear();
}
inline const ::std::string& TestAllTypes::repeated_cord(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  return repeated_cord_.Get(index);
}
inline ::std::string* TestAllTypes::mutable_repeated_cord(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  return repeated_cord_.Mutable(index);
}
inline void TestAllTypes::set_repeated_cord(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  repeated_cord_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypes::set_repeated_cord(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  repeated_cord_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypes::set_repeated_cord(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_cord_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
}
inline void TestAllTypes::set_repeated_cord(int index, const char* value, size_t size) {
  repeated_cord_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
}
inline ::std::string* TestAllTypes::add_repeated_cord() {
  // @@protoc_insertion_point(field_add_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  return repeated_cord_.Add();
}
inline void TestAllTypes::add_repeated_cord(const ::std::string& value) {
  repeated_cord_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
}
#if LANG_CXX11
inline void TestAllTypes::add_repeated_cord(::std::string&& value) {
  repeated_cord_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
}
#endif
inline void TestAllTypes::add_repeated_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_cord_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
}
inline void TestAllTypes::add_repeated_cord(const char* value, size_t size) {
  repeated_cord_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypes::repeated_cord() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  return repeated_cord_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypes::mutable_repeated_cord() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_cord)
  return &repeated_cord_;
}

// repeated .proto3_arena_lite_unittest.TestAllTypes.NestedMessage repeated_lazy_message = 57 [lazy = true];
inline int TestAllTypes::repeated_lazy_message_size() const {
  return repeated_lazy_message_.size();
}
inline void TestAllTypes::clear_repeated_lazy_message() {
  repeated_lazy_message_.Clear();
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_repeated_lazy_message(int index) {
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.repeated_lazy_message)
  return repeated_lazy_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >*
TestAllTypes::mutable_repeated_lazy_message() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestAllTypes.repeated_lazy_message)
  return &repeated_lazy_message_;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::repeated_lazy_message(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.repeated_lazy_message)
  return repeated_lazy_message_.Get(index);
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::add_repeated_lazy_message() {
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestAllTypes.repeated_lazy_message)
  return repeated_lazy_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >&
TestAllTypes::repeated_lazy_message() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestAllTypes.repeated_lazy_message)
  return repeated_lazy_message_;
}

// uint32 oneof_uint32 = 111;
inline bool TestAllTypes::has_oneof_uint32() const {
  return oneof_field_case() == kOneofUint32;
}
inline void TestAllTypes::set_has_oneof_uint32() {
  _oneof_case_[0] = kOneofUint32;
}
inline void TestAllTypes::clear_oneof_uint32() {
  if (has_oneof_uint32()) {
    oneof_field_.oneof_uint32_ = 0u;
    clear_has_oneof_field();
  }
}
inline ::google::protobuf::uint32 TestAllTypes::oneof_uint32() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.oneof_uint32)
  if (has_oneof_uint32()) {
    return oneof_field_.oneof_uint32_;
  }
  return 0u;
}
inline void TestAllTypes::set_oneof_uint32(::google::protobuf::uint32 value) {
  if (!has_oneof_uint32()) {
    clear_oneof_field();
    set_has_oneof_uint32();
  }
  oneof_field_.oneof_uint32_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.oneof_uint32)
}

// .proto3_arena_lite_unittest.TestAllTypes.NestedMessage oneof_nested_message = 112;
inline bool TestAllTypes::has_oneof_nested_message() const {
  return oneof_field_case() == kOneofNestedMessage;
}
inline void TestAllTypes::set_has_oneof_nested_message() {
  _oneof_case_[0] = kOneofNestedMessage;
}
inline void TestAllTypes::clear_oneof_nested_message() {
  if (has_oneof_nested_message()) {
    if (GetArenaNoVirtual() == NULL) {
      delete oneof_field_.oneof_nested_message_;
    }
    clear_has_oneof_field();
  }
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::_internal_oneof_nested_message() const {
  return *oneof_field_.oneof_nested_message_;
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::release_oneof_nested_message() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.oneof_nested_message)
  if (has_oneof_nested_message()) {
    clear_has_oneof_field();
      ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* temp = oneof_field_.oneof_nested_message_;
    if (GetArenaNoVirtual() != NULL) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    oneof_field_.oneof_nested_message_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage& TestAllTypes::oneof_nested_message() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.oneof_nested_message)
  return has_oneof_nested_message()
      ? *oneof_field_.oneof_nested_message_
      : *reinterpret_cast< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage*>(&::proto3_arena_lite_unittest::_TestAllTypes_NestedMessage_default_instance_);
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::unsafe_arena_release_oneof_nested_message() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.oneof_nested_message)
  if (has_oneof_nested_message()) {
    clear_has_oneof_field();
    ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* temp = oneof_field_.oneof_nested_message_;
    oneof_field_.oneof_nested_message_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline void TestAllTypes::unsafe_arena_set_allocated_oneof_nested_message(::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* oneof_nested_message) {
  clear_oneof_field();
  if (oneof_nested_message) {
    set_has_oneof_nested_message();
    oneof_field_.oneof_nested_message_ = oneof_nested_message;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.oneof_nested_message)
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage* TestAllTypes::mutable_oneof_nested_message() {
  if (!has_oneof_nested_message()) {
    clear_oneof_field();
    set_has_oneof_nested_message();
    oneof_field_.oneof_nested_message_ = CreateMaybeMessage< ::proto3_arena_lite_unittest::TestAllTypes_NestedMessage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.oneof_nested_message)
  return oneof_field_.oneof_nested_message_;
}

// string oneof_string = 113;
inline bool TestAllTypes::has_oneof_string() const {
  return oneof_field_case() == kOneofString;
}
inline void TestAllTypes::set_has_oneof_string() {
  _oneof_case_[0] = kOneofString;
}
inline void TestAllTypes::clear_oneof_string() {
  if (has_oneof_string()) {
    oneof_field_.oneof_string_.Destroy(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        GetArenaNoVirtual());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestAllTypes::oneof_string() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
  if (has_oneof_string()) {
    return oneof_field_.oneof_string_.Get();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestAllTypes::set_oneof_string(const ::std::string& value) {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}
#if LANG_CXX11
inline void TestAllTypes::set_oneof_string(::std::string&& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetLite(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_rvalue:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}
#endif
inline void TestAllTypes::set_oneof_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}
inline void TestAllTypes::set_oneof_string(const char* value,
                             size_t size) {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetLite(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}
inline ::std::string* TestAllTypes::mutable_oneof_string() {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  return oneof_field_.oneof_string_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}
inline ::std::string* TestAllTypes::release_oneof_string() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
  if (has_oneof_string()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        GetArenaNoVirtual());
  } else {
    return NULL;
  }
}
inline void TestAllTypes::set_allocated_oneof_string(::std::string* oneof_string) {
  if (!has_oneof_string()) {
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_string != NULL) {
    set_has_oneof_string();
    oneof_field_.oneof_string_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_string,
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}
inline ::std::string* TestAllTypes::unsafe_arena_release_oneof_string() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (has_oneof_string()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_.UnsafeArenaRelease(
        &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
  } else {
    return NULL;
  }
}
inline void TestAllTypes::unsafe_arena_set_allocated_oneof_string(::std::string* oneof_string) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (!has_oneof_string()) {
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_string) {
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_string, GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.oneof_string)
}

// bytes oneof_bytes = 114;
inline bool TestAllTypes::has_oneof_bytes() const {
  return oneof_field_case() == kOneofBytes;
}
inline void TestAllTypes::set_has_oneof_bytes() {
  _oneof_case_[0] = kOneofBytes;
}
inline void TestAllTypes::clear_oneof_bytes() {
  if (has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.Destroy(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        GetArenaNoVirtual());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestAllTypes::oneof_bytes() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
  if (has_oneof_bytes()) {
    return oneof_field_.oneof_bytes_.Get();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestAllTypes::set_oneof_bytes(const ::std::string& value) {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}
#if LANG_CXX11
inline void TestAllTypes::set_oneof_bytes(::std::string&& value) {
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetLite(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_rvalue:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}
#endif
inline void TestAllTypes::set_oneof_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetLite(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}
inline void TestAllTypes::set_oneof_bytes(const void* value,
                             size_t size) {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetLite(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size),
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}
inline ::std::string* TestAllTypes::mutable_oneof_bytes() {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  return oneof_field_.oneof_bytes_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}
inline ::std::string* TestAllTypes::release_oneof_bytes() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
  if (has_oneof_bytes()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        GetArenaNoVirtual());
  } else {
    return NULL;
  }
}
inline void TestAllTypes::set_allocated_oneof_bytes(::std::string* oneof_bytes) {
  if (!has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_bytes != NULL) {
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_bytes,
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}
inline ::std::string* TestAllTypes::unsafe_arena_release_oneof_bytes() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (has_oneof_bytes()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_.UnsafeArenaRelease(
        &::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
  } else {
    return NULL;
  }
}
inline void TestAllTypes::unsafe_arena_set_allocated_oneof_bytes(::std::string* oneof_bytes) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (!has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_bytes) {
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_bytes, GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:proto3_arena_lite_unittest.TestAllTypes.oneof_bytes)
}

inline bool TestAllTypes::has_oneof_field() const {
  return oneof_field_case() != ONEOF_FIELD_NOT_SET;
}
inline void TestAllTypes::clear_has_oneof_field() {
  _oneof_case_[0] = ONEOF_FIELD_NOT_SET;
}
inline TestAllTypes::OneofFieldCase TestAllTypes::oneof_field_case() const {
  return TestAllTypes::OneofFieldCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// TestPackedTypes

// repeated int32 packed_int32 = 90 [packed = true];
inline int TestPackedTypes::packed_int32_size() const {
  return packed_int32_.size();
}
inline void TestPackedTypes::clear_packed_int32() {
  packed_int32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypes::packed_int32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_int32)
  return packed_int32_.Get(index);
}
inline void TestPackedTypes::set_packed_int32(int index, ::google::protobuf::int32 value) {
  packed_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_int32)
}
inline void TestPackedTypes::add_packed_int32(::google::protobuf::int32 value) {
  packed_int32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypes::packed_int32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_int32)
  return packed_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypes::mutable_packed_int32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_int32)
  return &packed_int32_;
}

// repeated int64 packed_int64 = 91 [packed = true];
inline int TestPackedTypes::packed_int64_size() const {
  return packed_int64_.size();
}
inline void TestPackedTypes::clear_packed_int64() {
  packed_int64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypes::packed_int64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_int64)
  return packed_int64_.Get(index);
}
inline void TestPackedTypes::set_packed_int64(int index, ::google::protobuf::int64 value) {
  packed_int64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_int64)
}
inline void TestPackedTypes::add_packed_int64(::google::protobuf::int64 value) {
  packed_int64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_int64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypes::packed_int64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_int64)
  return packed_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypes::mutable_packed_int64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_int64)
  return &packed_int64_;
}

// repeated uint32 packed_uint32 = 92 [packed = true];
inline int TestPackedTypes::packed_uint32_size() const {
  return packed_uint32_.size();
}
inline void TestPackedTypes::clear_packed_uint32() {
  packed_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestPackedTypes::packed_uint32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_uint32)
  return packed_uint32_.Get(index);
}
inline void TestPackedTypes::set_packed_uint32(int index, ::google::protobuf::uint32 value) {
  packed_uint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_uint32)
}
inline void TestPackedTypes::add_packed_uint32(::google::protobuf::uint32 value) {
  packed_uint32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_uint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestPackedTypes::packed_uint32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_uint32)
  return packed_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestPackedTypes::mutable_packed_uint32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_uint32)
  return &packed_uint32_;
}

// repeated uint64 packed_uint64 = 93 [packed = true];
inline int TestPackedTypes::packed_uint64_size() const {
  return packed_uint64_.size();
}
inline void TestPackedTypes::clear_packed_uint64() {
  packed_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestPackedTypes::packed_uint64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_uint64)
  return packed_uint64_.Get(index);
}
inline void TestPackedTypes::set_packed_uint64(int index, ::google::protobuf::uint64 value) {
  packed_uint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_uint64)
}
inline void TestPackedTypes::add_packed_uint64(::google::protobuf::uint64 value) {
  packed_uint64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_uint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestPackedTypes::packed_uint64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_uint64)
  return packed_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestPackedTypes::mutable_packed_uint64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_uint64)
  return &packed_uint64_;
}

// repeated sint32 packed_sint32 = 94 [packed = true];
inline int TestPackedTypes::packed_sint32_size() const {
  return packed_sint32_.size();
}
inline void TestPackedTypes::clear_packed_sint32() {
  packed_sint32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypes::packed_sint32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_sint32)
  return packed_sint32_.Get(index);
}
inline void TestPackedTypes::set_packed_sint32(int index, ::google::protobuf::int32 value) {
  packed_sint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_sint32)
}
inline void TestPackedTypes::add_packed_sint32(::google::protobuf::int32 value) {
  packed_sint32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_sint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypes::packed_sint32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sint32)
  return packed_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypes::mutable_packed_sint32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sint32)
  return &packed_sint32_;
}

// repeated sint64 packed_sint64 = 95 [packed = true];
inline int TestPackedTypes::packed_sint64_size() const {
  return packed_sint64_.size();
}
inline void TestPackedTypes::clear_packed_sint64() {
  packed_sint64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypes::packed_sint64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_sint64)
  return packed_sint64_.Get(index);
}
inline void TestPackedTypes::set_packed_sint64(int index, ::google::protobuf::int64 value) {
  packed_sint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_sint64)
}
inline void TestPackedTypes::add_packed_sint64(::google::protobuf::int64 value) {
  packed_sint64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_sint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypes::packed_sint64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sint64)
  return packed_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypes::mutable_packed_sint64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sint64)
  return &packed_sint64_;
}

// repeated fixed32 packed_fixed32 = 96 [packed = true];
inline int TestPackedTypes::packed_fixed32_size() const {
  return packed_fixed32_.size();
}
inline void TestPackedTypes::clear_packed_fixed32() {
  packed_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestPackedTypes::packed_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed32)
  return packed_fixed32_.Get(index);
}
inline void TestPackedTypes::set_packed_fixed32(int index, ::google::protobuf::uint32 value) {
  packed_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed32)
}
inline void TestPackedTypes::add_packed_fixed32(::google::protobuf::uint32 value) {
  packed_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestPackedTypes::packed_fixed32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed32)
  return packed_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestPackedTypes::mutable_packed_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed32)
  return &packed_fixed32_;
}

// repeated fixed64 packed_fixed64 = 97 [packed = true];
inline int TestPackedTypes::packed_fixed64_size() const {
  return packed_fixed64_.size();
}
inline void TestPackedTypes::clear_packed_fixed64() {
  packed_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestPackedTypes::packed_fixed64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed64)
  return packed_fixed64_.Get(index);
}
inline void TestPackedTypes::set_packed_fixed64(int index, ::google::protobuf::uint64 value) {
  packed_fixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed64)
}
inline void TestPackedTypes::add_packed_fixed64(::google::protobuf::uint64 value) {
  packed_fixed64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestPackedTypes::packed_fixed64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed64)
  return packed_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestPackedTypes::mutable_packed_fixed64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_fixed64)
  return &packed_fixed64_;
}

// repeated sfixed32 packed_sfixed32 = 98 [packed = true];
inline int TestPackedTypes::packed_sfixed32_size() const {
  return packed_sfixed32_.size();
}
inline void TestPackedTypes::clear_packed_sfixed32() {
  packed_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypes::packed_sfixed32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed32)
  return packed_sfixed32_.Get(index);
}
inline void TestPackedTypes::set_packed_sfixed32(int index, ::google::protobuf::int32 value) {
  packed_sfixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed32)
}
inline void TestPackedTypes::add_packed_sfixed32(::google::protobuf::int32 value) {
  packed_sfixed32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypes::packed_sfixed32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed32)
  return packed_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypes::mutable_packed_sfixed32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed32)
  return &packed_sfixed32_;
}

// repeated sfixed64 packed_sfixed64 = 99 [packed = true];
inline int TestPackedTypes::packed_sfixed64_size() const {
  return packed_sfixed64_.size();
}
inline void TestPackedTypes::clear_packed_sfixed64() {
  packed_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypes::packed_sfixed64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed64)
  return packed_sfixed64_.Get(index);
}
inline void TestPackedTypes::set_packed_sfixed64(int index, ::google::protobuf::int64 value) {
  packed_sfixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed64)
}
inline void TestPackedTypes::add_packed_sfixed64(::google::protobuf::int64 value) {
  packed_sfixed64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypes::packed_sfixed64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed64)
  return packed_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypes::mutable_packed_sfixed64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_sfixed64)
  return &packed_sfixed64_;
}

// repeated float packed_float = 100 [packed = true];
inline int TestPackedTypes::packed_float_size() const {
  return packed_float_.size();
}
inline void TestPackedTypes::clear_packed_float() {
  packed_float_.Clear();
}
inline float TestPackedTypes::packed_float(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_float)
  return packed_float_.Get(index);
}
inline void TestPackedTypes::set_packed_float(int index, float value) {
  packed_float_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_float)
}
inline void TestPackedTypes::add_packed_float(float value) {
  packed_float_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_float)
}
inline const ::google::protobuf::RepeatedField< float >&
TestPackedTypes::packed_float() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_float)
  return packed_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestPackedTypes::mutable_packed_float() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_float)
  return &packed_float_;
}

// repeated double packed_double = 101 [packed = true];
inline int TestPackedTypes::packed_double_size() const {
  return packed_double_.size();
}
inline void TestPackedTypes::clear_packed_double() {
  packed_double_.Clear();
}
inline double TestPackedTypes::packed_double(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_double)
  return packed_double_.Get(index);
}
inline void TestPackedTypes::set_packed_double(int index, double value) {
  packed_double_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_double)
}
inline void TestPackedTypes::add_packed_double(double value) {
  packed_double_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_double)
}
inline const ::google::protobuf::RepeatedField< double >&
TestPackedTypes::packed_double() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_double)
  return packed_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestPackedTypes::mutable_packed_double() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_double)
  return &packed_double_;
}

// repeated bool packed_bool = 102 [packed = true];
inline int TestPackedTypes::packed_bool_size() const {
  return packed_bool_.size();
}
inline void TestPackedTypes::clear_packed_bool() {
  packed_bool_.Clear();
}
inline bool TestPackedTypes::packed_bool(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_bool)
  return packed_bool_.Get(index);
}
inline void TestPackedTypes::set_packed_bool(int index, bool value) {
  packed_bool_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_bool)
}
inline void TestPackedTypes::add_packed_bool(bool value) {
  packed_bool_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_bool)
}
inline const ::google::protobuf::RepeatedField< bool >&
TestPackedTypes::packed_bool() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_bool)
  return packed_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestPackedTypes::mutable_packed_bool() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_bool)
  return &packed_bool_;
}

// repeated .proto3_arena_lite_unittest.ForeignEnum packed_enum = 103 [packed = true];
inline int TestPackedTypes::packed_enum_size() const {
  return packed_enum_.size();
}
inline void TestPackedTypes::clear_packed_enum() {
  packed_enum_.Clear();
}
inline ::proto3_arena_lite_unittest::ForeignEnum TestPackedTypes::packed_enum(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestPackedTypes.packed_enum)
  return static_cast< ::proto3_arena_lite_unittest::ForeignEnum >(packed_enum_.Get(index));
}
inline void TestPackedTypes::set_packed_enum(int index, ::proto3_arena_lite_unittest::ForeignEnum value) {
  packed_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestPackedTypes.packed_enum)
}
inline void TestPackedTypes::add_packed_enum(::proto3_arena_lite_unittest::ForeignEnum value) {
  packed_enum_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestPackedTypes.packed_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestPackedTypes::packed_enum() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestPackedTypes.packed_enum)
  return packed_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestPackedTypes::mutable_packed_enum() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestPackedTypes.packed_enum)
  return &packed_enum_;
}

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

// TestUnpackedTypes

// repeated int32 repeated_int32 = 1 [packed = false];
inline int TestUnpackedTypes::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void TestUnpackedTypes::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestUnpackedTypes::repeated_int32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int32)
  return repeated_int32_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int32)
}
inline void TestUnpackedTypes::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestUnpackedTypes::repeated_int32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int32)
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestUnpackedTypes::mutable_repeated_int32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int32)
  return &repeated_int32_;
}

// repeated int64 repeated_int64 = 2 [packed = false];
inline int TestUnpackedTypes::repeated_int64_size() const {
  return repeated_int64_.size();
}
inline void TestUnpackedTypes::clear_repeated_int64() {
  repeated_int64_.Clear();
}
inline ::google::protobuf::int64 TestUnpackedTypes::repeated_int64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int64)
  return repeated_int64_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_int64(int index, ::google::protobuf::int64 value) {
  repeated_int64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int64)
}
inline void TestUnpackedTypes::add_repeated_int64(::google::protobuf::int64 value) {
  repeated_int64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestUnpackedTypes::repeated_int64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int64)
  return repeated_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestUnpackedTypes::mutable_repeated_int64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_int64)
  return &repeated_int64_;
}

// repeated uint32 repeated_uint32 = 3 [packed = false];
inline int TestUnpackedTypes::repeated_uint32_size() const {
  return repeated_uint32_.size();
}
inline void TestUnpackedTypes::clear_repeated_uint32() {
  repeated_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestUnpackedTypes::repeated_uint32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint32)
  return repeated_uint32_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_uint32(int index, ::google::protobuf::uint32 value) {
  repeated_uint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint32)
}
inline void TestUnpackedTypes::add_repeated_uint32(::google::protobuf::uint32 value) {
  repeated_uint32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestUnpackedTypes::repeated_uint32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint32)
  return repeated_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestUnpackedTypes::mutable_repeated_uint32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint32)
  return &repeated_uint32_;
}

// repeated uint64 repeated_uint64 = 4 [packed = false];
inline int TestUnpackedTypes::repeated_uint64_size() const {
  return repeated_uint64_.size();
}
inline void TestUnpackedTypes::clear_repeated_uint64() {
  repeated_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestUnpackedTypes::repeated_uint64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint64)
  return repeated_uint64_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_uint64(int index, ::google::protobuf::uint64 value) {
  repeated_uint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint64)
}
inline void TestUnpackedTypes::add_repeated_uint64(::google::protobuf::uint64 value) {
  repeated_uint64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestUnpackedTypes::repeated_uint64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint64)
  return repeated_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestUnpackedTypes::mutable_repeated_uint64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_uint64)
  return &repeated_uint64_;
}

// repeated sint32 repeated_sint32 = 5 [packed = false];
inline int TestUnpackedTypes::repeated_sint32_size() const {
  return repeated_sint32_.size();
}
inline void TestUnpackedTypes::clear_repeated_sint32() {
  repeated_sint32_.Clear();
}
inline ::google::protobuf::int32 TestUnpackedTypes::repeated_sint32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint32)
  return repeated_sint32_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_sint32(int index, ::google::protobuf::int32 value) {
  repeated_sint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint32)
}
inline void TestUnpackedTypes::add_repeated_sint32(::google::protobuf::int32 value) {
  repeated_sint32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestUnpackedTypes::repeated_sint32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint32)
  return repeated_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestUnpackedTypes::mutable_repeated_sint32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint32)
  return &repeated_sint32_;
}

// repeated sint64 repeated_sint64 = 6 [packed = false];
inline int TestUnpackedTypes::repeated_sint64_size() const {
  return repeated_sint64_.size();
}
inline void TestUnpackedTypes::clear_repeated_sint64() {
  repeated_sint64_.Clear();
}
inline ::google::protobuf::int64 TestUnpackedTypes::repeated_sint64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint64)
  return repeated_sint64_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_sint64(int index, ::google::protobuf::int64 value) {
  repeated_sint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint64)
}
inline void TestUnpackedTypes::add_repeated_sint64(::google::protobuf::int64 value) {
  repeated_sint64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestUnpackedTypes::repeated_sint64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint64)
  return repeated_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestUnpackedTypes::mutable_repeated_sint64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sint64)
  return &repeated_sint64_;
}

// repeated fixed32 repeated_fixed32 = 7 [packed = false];
inline int TestUnpackedTypes::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void TestUnpackedTypes::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestUnpackedTypes::repeated_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed32)
  return repeated_fixed32_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed32)
}
inline void TestUnpackedTypes::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestUnpackedTypes::repeated_fixed32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed32)
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestUnpackedTypes::mutable_repeated_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed32)
  return &repeated_fixed32_;
}

// repeated fixed64 repeated_fixed64 = 8 [packed = false];
inline int TestUnpackedTypes::repeated_fixed64_size() const {
  return repeated_fixed64_.size();
}
inline void TestUnpackedTypes::clear_repeated_fixed64() {
  repeated_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestUnpackedTypes::repeated_fixed64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed64)
  return repeated_fixed64_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_fixed64(int index, ::google::protobuf::uint64 value) {
  repeated_fixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed64)
}
inline void TestUnpackedTypes::add_repeated_fixed64(::google::protobuf::uint64 value) {
  repeated_fixed64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestUnpackedTypes::repeated_fixed64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed64)
  return repeated_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestUnpackedTypes::mutable_repeated_fixed64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_fixed64)
  return &repeated_fixed64_;
}

// repeated sfixed32 repeated_sfixed32 = 9 [packed = false];
inline int TestUnpackedTypes::repeated_sfixed32_size() const {
  return repeated_sfixed32_.size();
}
inline void TestUnpackedTypes::clear_repeated_sfixed32() {
  repeated_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestUnpackedTypes::repeated_sfixed32(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed32)
  return repeated_sfixed32_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_sfixed32(int index, ::google::protobuf::int32 value) {
  repeated_sfixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed32)
}
inline void TestUnpackedTypes::add_repeated_sfixed32(::google::protobuf::int32 value) {
  repeated_sfixed32_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestUnpackedTypes::repeated_sfixed32() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed32)
  return repeated_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestUnpackedTypes::mutable_repeated_sfixed32() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed32)
  return &repeated_sfixed32_;
}

// repeated sfixed64 repeated_sfixed64 = 10 [packed = false];
inline int TestUnpackedTypes::repeated_sfixed64_size() const {
  return repeated_sfixed64_.size();
}
inline void TestUnpackedTypes::clear_repeated_sfixed64() {
  repeated_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestUnpackedTypes::repeated_sfixed64(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed64)
  return repeated_sfixed64_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_sfixed64(int index, ::google::protobuf::int64 value) {
  repeated_sfixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed64)
}
inline void TestUnpackedTypes::add_repeated_sfixed64(::google::protobuf::int64 value) {
  repeated_sfixed64_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestUnpackedTypes::repeated_sfixed64() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed64)
  return repeated_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestUnpackedTypes::mutable_repeated_sfixed64() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_sfixed64)
  return &repeated_sfixed64_;
}

// repeated float repeated_float = 11 [packed = false];
inline int TestUnpackedTypes::repeated_float_size() const {
  return repeated_float_.size();
}
inline void TestUnpackedTypes::clear_repeated_float() {
  repeated_float_.Clear();
}
inline float TestUnpackedTypes::repeated_float(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_float)
  return repeated_float_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_float(int index, float value) {
  repeated_float_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_float)
}
inline void TestUnpackedTypes::add_repeated_float(float value) {
  repeated_float_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_float)
}
inline const ::google::protobuf::RepeatedField< float >&
TestUnpackedTypes::repeated_float() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_float)
  return repeated_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestUnpackedTypes::mutable_repeated_float() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_float)
  return &repeated_float_;
}

// repeated double repeated_double = 12 [packed = false];
inline int TestUnpackedTypes::repeated_double_size() const {
  return repeated_double_.size();
}
inline void TestUnpackedTypes::clear_repeated_double() {
  repeated_double_.Clear();
}
inline double TestUnpackedTypes::repeated_double(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_double)
  return repeated_double_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_double(int index, double value) {
  repeated_double_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_double)
}
inline void TestUnpackedTypes::add_repeated_double(double value) {
  repeated_double_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_double)
}
inline const ::google::protobuf::RepeatedField< double >&
TestUnpackedTypes::repeated_double() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_double)
  return repeated_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestUnpackedTypes::mutable_repeated_double() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_double)
  return &repeated_double_;
}

// repeated bool repeated_bool = 13 [packed = false];
inline int TestUnpackedTypes::repeated_bool_size() const {
  return repeated_bool_.size();
}
inline void TestUnpackedTypes::clear_repeated_bool() {
  repeated_bool_.Clear();
}
inline bool TestUnpackedTypes::repeated_bool(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_bool)
  return repeated_bool_.Get(index);
}
inline void TestUnpackedTypes::set_repeated_bool(int index, bool value) {
  repeated_bool_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_bool)
}
inline void TestUnpackedTypes::add_repeated_bool(bool value) {
  repeated_bool_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_bool)
}
inline const ::google::protobuf::RepeatedField< bool >&
TestUnpackedTypes::repeated_bool() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_bool)
  return repeated_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestUnpackedTypes::mutable_repeated_bool() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_bool)
  return &repeated_bool_;
}

// repeated .proto3_arena_lite_unittest.TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false];
inline int TestUnpackedTypes::repeated_nested_enum_size() const {
  return repeated_nested_enum_.size();
}
inline void TestUnpackedTypes::clear_repeated_nested_enum() {
  repeated_nested_enum_.Clear();
}
inline ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum TestUnpackedTypes::repeated_nested_enum(int index) const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_nested_enum)
  return static_cast< ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum >(repeated_nested_enum_.Get(index));
}
inline void TestUnpackedTypes::set_repeated_nested_enum(int index, ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value) {
  repeated_nested_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_nested_enum)
}
inline void TestUnpackedTypes::add_repeated_nested_enum(::proto3_arena_lite_unittest::TestAllTypes_NestedEnum value) {
  repeated_nested_enum_.Add(value);
  // @@protoc_insertion_point(field_add:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_nested_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestUnpackedTypes::repeated_nested_enum() const {
  // @@protoc_insertion_point(field_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_nested_enum)
  return repeated_nested_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestUnpackedTypes::mutable_repeated_nested_enum() {
  // @@protoc_insertion_point(field_mutable_list:proto3_arena_lite_unittest.TestUnpackedTypes.repeated_nested_enum)
  return &repeated_nested_enum_;
}

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

// NestedTestAllTypes

// .proto3_arena_lite_unittest.NestedTestAllTypes child = 1;
inline bool NestedTestAllTypes::has_child() const {
  return this != internal_default_instance() && child_ != NULL;
}
inline void NestedTestAllTypes::clear_child() {
  if (GetArenaNoVirtual() == NULL && child_ != NULL) {
    delete child_;
  }
  child_ = NULL;
}
inline const ::proto3_arena_lite_unittest::NestedTestAllTypes& NestedTestAllTypes::_internal_child() const {
  return *child_;
}
inline const ::proto3_arena_lite_unittest::NestedTestAllTypes& NestedTestAllTypes::child() const {
  const ::proto3_arena_lite_unittest::NestedTestAllTypes* p = child_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.NestedTestAllTypes.child)
  return p != NULL ? *p : *reinterpret_cast<const ::proto3_arena_lite_unittest::NestedTestAllTypes*>(
      &::proto3_arena_lite_unittest::_NestedTestAllTypes_default_instance_);
}
inline ::proto3_arena_lite_unittest::NestedTestAllTypes* NestedTestAllTypes::release_child() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.NestedTestAllTypes.child)
  
  ::proto3_arena_lite_unittest::NestedTestAllTypes* temp = child_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  child_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::NestedTestAllTypes* NestedTestAllTypes::unsafe_arena_release_child() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.NestedTestAllTypes.child)
  
  ::proto3_arena_lite_unittest::NestedTestAllTypes* temp = child_;
  child_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::NestedTestAllTypes* NestedTestAllTypes::mutable_child() {
  
  if (child_ == NULL) {
    auto* p = CreateMaybeMessage<::proto3_arena_lite_unittest::NestedTestAllTypes>(GetArenaNoVirtual());
    child_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.NestedTestAllTypes.child)
  return child_;
}
inline void NestedTestAllTypes::set_allocated_child(::proto3_arena_lite_unittest::NestedTestAllTypes* child) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete child_;
  }
  if (child) {
    ::google::protobuf::Arena* submessage_arena =
      ::google::protobuf::Arena::GetArena(child);
    if (message_arena != submessage_arena) {
      child = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, child, submessage_arena);
    }
    
  } else {
    
  }
  child_ = child;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.NestedTestAllTypes.child)
}

// .proto3_arena_lite_unittest.TestAllTypes payload = 2;
inline bool NestedTestAllTypes::has_payload() const {
  return this != internal_default_instance() && payload_ != NULL;
}
inline void NestedTestAllTypes::clear_payload() {
  if (GetArenaNoVirtual() == NULL && payload_ != NULL) {
    delete payload_;
  }
  payload_ = NULL;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes& NestedTestAllTypes::_internal_payload() const {
  return *payload_;
}
inline const ::proto3_arena_lite_unittest::TestAllTypes& NestedTestAllTypes::payload() const {
  const ::proto3_arena_lite_unittest::TestAllTypes* p = payload_;
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.NestedTestAllTypes.payload)
  return p != NULL ? *p : *reinterpret_cast<const ::proto3_arena_lite_unittest::TestAllTypes*>(
      &::proto3_arena_lite_unittest::_TestAllTypes_default_instance_);
}
inline ::proto3_arena_lite_unittest::TestAllTypes* NestedTestAllTypes::release_payload() {
  // @@protoc_insertion_point(field_release:proto3_arena_lite_unittest.NestedTestAllTypes.payload)
  
  ::proto3_arena_lite_unittest::TestAllTypes* temp = payload_;
  if (GetArenaNoVirtual() != NULL) {
    temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
  }
  payload_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::TestAllTypes* NestedTestAllTypes::unsafe_arena_release_payload() {
  // @@protoc_insertion_point(field_unsafe_arena_release:proto3_arena_lite_unittest.NestedTestAllTypes.payload)
  
  ::proto3_arena_lite_unittest::TestAllTypes* temp = payload_;
  payload_ = NULL;
  return temp;
}
inline ::proto3_arena_lite_unittest::TestAllTypes* NestedTestAllTypes::mutable_payload() {
  
  if (payload_ == NULL) {
    auto* p = CreateMaybeMessage<::proto3_arena_lite_unittest::TestAllTypes>(GetArenaNoVirtual());
    payload_ = p;
  }
  // @@protoc_insertion_point(field_mutable:proto3_arena_lite_unittest.NestedTestAllTypes.payload)
  return payload_;
}
inline void NestedTestAllTypes::set_allocated_payload(::proto3_arena_lite_unittest::TestAllTypes* payload) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete payload_;
  }
  if (payload) {
    ::google::protobuf::Arena* submessage_arena =
      ::google::protobuf::Arena::GetArena(payload);
    if (message_arena != submessage_arena) {
      payload = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, payload, submessage_arena);
    }
    
  } else {
    
  }
  payload_ = payload;
  // @@protoc_insertion_point(field_set_allocated:proto3_arena_lite_unittest.NestedTestAllTypes.payload)
}

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

// ForeignMessage

// int32 c = 1;
inline void ForeignMessage::clear_c() {
  c_ = 0;
}
inline ::google::protobuf::int32 ForeignMessage::c() const {
  // @@protoc_insertion_point(field_get:proto3_arena_lite_unittest.ForeignMessage.c)
  return c_;
}
inline void ForeignMessage::set_c(::google::protobuf::int32 value) {
  
  c_ = value;
  // @@protoc_insertion_point(field_set:proto3_arena_lite_unittest.ForeignMessage.c)
}

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

// TestEmptyMessage

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace proto3_arena_lite_unittest

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::proto3_arena_lite_unittest::TestAllTypes_NestedEnum> : ::std::true_type {};
template <> struct is_proto_enum< ::proto3_arena_lite_unittest::ForeignEnum> : ::std::true_type {};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5fproto3_5farena_5flite_2eproto
