// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: krpc.proto
// Protobuf C++ Version: 6.33.1

#ifndef krpc_2eproto_2epb_2eh
#define krpc_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 6033001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.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"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_krpc_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_krpc_2eproto {
  static const ::uint32_t offsets[];
};
namespace krpc {
namespace schema {
enum ConnectionRequest_Type : int;
extern const uint32_t ConnectionRequest_Type_internal_data_[];
enum ConnectionResponse_Status : int;
extern const uint32_t ConnectionResponse_Status_internal_data_[];
enum Procedure_GameScene : int;
extern const uint32_t Procedure_GameScene_internal_data_[];
enum Type_TypeCode : int;
extern const uint32_t Type_TypeCode_internal_data_[];
class Argument;
struct ArgumentDefaultTypeInternal;
extern ArgumentDefaultTypeInternal _Argument_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<21> Argument_class_data_;
class Class;
struct ClassDefaultTypeInternal;
extern ClassDefaultTypeInternal _Class_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<18> Class_class_data_;
class ConnectionRequest;
struct ConnectionRequestDefaultTypeInternal;
extern ConnectionRequestDefaultTypeInternal _ConnectionRequest_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<30> ConnectionRequest_class_data_;
class ConnectionResponse;
struct ConnectionResponseDefaultTypeInternal;
extern ConnectionResponseDefaultTypeInternal _ConnectionResponse_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<31> ConnectionResponse_class_data_;
class Dictionary;
struct DictionaryDefaultTypeInternal;
extern DictionaryDefaultTypeInternal _Dictionary_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<23> Dictionary_class_data_;
class DictionaryEntry;
struct DictionaryEntryDefaultTypeInternal;
extern DictionaryEntryDefaultTypeInternal _DictionaryEntry_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<28> DictionaryEntry_class_data_;
class Enumeration;
struct EnumerationDefaultTypeInternal;
extern EnumerationDefaultTypeInternal _Enumeration_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<24> Enumeration_class_data_;
class EnumerationValue;
struct EnumerationValueDefaultTypeInternal;
extern EnumerationValueDefaultTypeInternal _EnumerationValue_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<29> EnumerationValue_class_data_;
class Error;
struct ErrorDefaultTypeInternal;
extern ErrorDefaultTypeInternal _Error_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<18> Error_class_data_;
class Event;
struct EventDefaultTypeInternal;
extern EventDefaultTypeInternal _Event_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<18> Event_class_data_;
class Exception;
struct ExceptionDefaultTypeInternal;
extern ExceptionDefaultTypeInternal _Exception_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<22> Exception_class_data_;
class List;
struct ListDefaultTypeInternal;
extern ListDefaultTypeInternal _List_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<17> List_class_data_;
class MultiplexedRequest;
struct MultiplexedRequestDefaultTypeInternal;
extern MultiplexedRequestDefaultTypeInternal _MultiplexedRequest_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<31> MultiplexedRequest_class_data_;
class MultiplexedResponse;
struct MultiplexedResponseDefaultTypeInternal;
extern MultiplexedResponseDefaultTypeInternal _MultiplexedResponse_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<32> MultiplexedResponse_class_data_;
class Parameter;
struct ParameterDefaultTypeInternal;
extern ParameterDefaultTypeInternal _Parameter_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<22> Parameter_class_data_;
class Procedure;
struct ProcedureDefaultTypeInternal;
extern ProcedureDefaultTypeInternal _Procedure_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<22> Procedure_class_data_;
class ProcedureCall;
struct ProcedureCallDefaultTypeInternal;
extern ProcedureCallDefaultTypeInternal _ProcedureCall_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<26> ProcedureCall_class_data_;
class ProcedureResult;
struct ProcedureResultDefaultTypeInternal;
extern ProcedureResultDefaultTypeInternal _ProcedureResult_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<28> ProcedureResult_class_data_;
class Request;
struct RequestDefaultTypeInternal;
extern RequestDefaultTypeInternal _Request_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<20> Request_class_data_;
class Response;
struct ResponseDefaultTypeInternal;
extern ResponseDefaultTypeInternal _Response_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<21> Response_class_data_;
class Service;
struct ServiceDefaultTypeInternal;
extern ServiceDefaultTypeInternal _Service_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<20> Service_class_data_;
class Services;
struct ServicesDefaultTypeInternal;
extern ServicesDefaultTypeInternal _Services_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<21> Services_class_data_;
class Set;
struct SetDefaultTypeInternal;
extern SetDefaultTypeInternal _Set_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<16> Set_class_data_;
class Status;
struct StatusDefaultTypeInternal;
extern StatusDefaultTypeInternal _Status_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<19> Status_class_data_;
class Stream;
struct StreamDefaultTypeInternal;
extern StreamDefaultTypeInternal _Stream_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<19> Stream_class_data_;
class StreamResult;
struct StreamResultDefaultTypeInternal;
extern StreamResultDefaultTypeInternal _StreamResult_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<25> StreamResult_class_data_;
class StreamUpdate;
struct StreamUpdateDefaultTypeInternal;
extern StreamUpdateDefaultTypeInternal _StreamUpdate_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<25> StreamUpdate_class_data_;
class Tuple;
struct TupleDefaultTypeInternal;
extern TupleDefaultTypeInternal _Tuple_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<18> Tuple_class_data_;
class Type;
struct TypeDefaultTypeInternal;
extern TypeDefaultTypeInternal _Type_default_instance_;
extern const ::google::protobuf::internal::ClassDataLite<17> Type_class_data_;
}  // namespace schema
}  // namespace krpc
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::krpc::schema::ConnectionRequest_Type_internal_data_>
    internal::EnumTraitsImpl::value<::krpc::schema::ConnectionRequest_Type>;
template <>
internal::EnumTraitsT<::krpc::schema::ConnectionResponse_Status_internal_data_>
    internal::EnumTraitsImpl::value<::krpc::schema::ConnectionResponse_Status>;
template <>
internal::EnumTraitsT<::krpc::schema::Procedure_GameScene_internal_data_>
    internal::EnumTraitsImpl::value<::krpc::schema::Procedure_GameScene>;
template <>
internal::EnumTraitsT<::krpc::schema::Type_TypeCode_internal_data_>
    internal::EnumTraitsImpl::value<::krpc::schema::Type_TypeCode>;
}  // namespace protobuf
}  // namespace google

namespace krpc {
namespace schema {
enum ConnectionRequest_Type : int {
  ConnectionRequest_Type_RPC = 0,
  ConnectionRequest_Type_STREAM = 1,
  ConnectionRequest_Type_ConnectionRequest_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  ConnectionRequest_Type_ConnectionRequest_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t ConnectionRequest_Type_internal_data_[];
inline constexpr ConnectionRequest_Type ConnectionRequest_Type_Type_MIN =
    static_cast<ConnectionRequest_Type>(0);
inline constexpr ConnectionRequest_Type ConnectionRequest_Type_Type_MAX =
    static_cast<ConnectionRequest_Type>(1);
inline bool ConnectionRequest_Type_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int ConnectionRequest_Type_Type_ARRAYSIZE = 1 + 1;
const ::std::string& ConnectionRequest_Type_Name(ConnectionRequest_Type value);
template <typename T>
const ::std::string& ConnectionRequest_Type_Name(T value) {
  static_assert(::std::is_same<T, ConnectionRequest_Type>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return ConnectionRequest_Type_Name(static_cast<ConnectionRequest_Type>(value));
}
bool ConnectionRequest_Type_Parse(
    ::absl::string_view name, ConnectionRequest_Type* PROTOBUF_NONNULL value);
enum ConnectionResponse_Status : int {
  ConnectionResponse_Status_OK = 0,
  ConnectionResponse_Status_MALFORMED_MESSAGE = 1,
  ConnectionResponse_Status_TIMEOUT = 2,
  ConnectionResponse_Status_WRONG_TYPE = 3,
  ConnectionResponse_Status_ConnectionResponse_Status_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  ConnectionResponse_Status_ConnectionResponse_Status_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t ConnectionResponse_Status_internal_data_[];
inline constexpr ConnectionResponse_Status ConnectionResponse_Status_Status_MIN =
    static_cast<ConnectionResponse_Status>(0);
inline constexpr ConnectionResponse_Status ConnectionResponse_Status_Status_MAX =
    static_cast<ConnectionResponse_Status>(3);
inline bool ConnectionResponse_Status_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int ConnectionResponse_Status_Status_ARRAYSIZE = 3 + 1;
const ::std::string& ConnectionResponse_Status_Name(ConnectionResponse_Status value);
template <typename T>
const ::std::string& ConnectionResponse_Status_Name(T value) {
  static_assert(::std::is_same<T, ConnectionResponse_Status>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Status_Name().");
  return ConnectionResponse_Status_Name(static_cast<ConnectionResponse_Status>(value));
}
bool ConnectionResponse_Status_Parse(
    ::absl::string_view name, ConnectionResponse_Status* PROTOBUF_NONNULL value);
enum Procedure_GameScene : int {
  Procedure_GameScene_SPACE_CENTER = 0,
  Procedure_GameScene_FLIGHT = 1,
  Procedure_GameScene_TRACKING_STATION = 2,
  Procedure_GameScene_EDITOR_VAB = 3,
  Procedure_GameScene_EDITOR_SPH = 4,
  Procedure_GameScene_MISSION_BUILDER = 5,
  Procedure_GameScene_Procedure_GameScene_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Procedure_GameScene_Procedure_GameScene_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Procedure_GameScene_internal_data_[];
inline constexpr Procedure_GameScene Procedure_GameScene_GameScene_MIN =
    static_cast<Procedure_GameScene>(0);
inline constexpr Procedure_GameScene Procedure_GameScene_GameScene_MAX =
    static_cast<Procedure_GameScene>(5);
inline bool Procedure_GameScene_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int Procedure_GameScene_GameScene_ARRAYSIZE = 5 + 1;
const ::std::string& Procedure_GameScene_Name(Procedure_GameScene value);
template <typename T>
const ::std::string& Procedure_GameScene_Name(T value) {
  static_assert(::std::is_same<T, Procedure_GameScene>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to GameScene_Name().");
  return Procedure_GameScene_Name(static_cast<Procedure_GameScene>(value));
}
bool Procedure_GameScene_Parse(
    ::absl::string_view name, Procedure_GameScene* PROTOBUF_NONNULL value);
enum Type_TypeCode : int {
  Type_TypeCode_NONE = 0,
  Type_TypeCode_DOUBLE = 1,
  Type_TypeCode_FLOAT = 2,
  Type_TypeCode_SINT32 = 3,
  Type_TypeCode_SINT64 = 4,
  Type_TypeCode_UINT32 = 5,
  Type_TypeCode_UINT64 = 6,
  Type_TypeCode_BOOL = 7,
  Type_TypeCode_STRING = 8,
  Type_TypeCode_BYTES = 9,
  Type_TypeCode_CLASS = 100,
  Type_TypeCode_ENUMERATION = 101,
  Type_TypeCode_EVENT = 200,
  Type_TypeCode_PROCEDURE_CALL = 201,
  Type_TypeCode_STREAM = 202,
  Type_TypeCode_STATUS = 203,
  Type_TypeCode_SERVICES = 204,
  Type_TypeCode_TUPLE = 300,
  Type_TypeCode_LIST = 301,
  Type_TypeCode_SET = 302,
  Type_TypeCode_DICTIONARY = 303,
  Type_TypeCode_Type_TypeCode_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Type_TypeCode_Type_TypeCode_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Type_TypeCode_internal_data_[];
inline constexpr Type_TypeCode Type_TypeCode_TypeCode_MIN =
    static_cast<Type_TypeCode>(0);
inline constexpr Type_TypeCode Type_TypeCode_TypeCode_MAX =
    static_cast<Type_TypeCode>(303);
inline bool Type_TypeCode_IsValid(int value) {
  return ::google::protobuf::internal::ValidateEnum(value, Type_TypeCode_internal_data_);
}
inline constexpr int Type_TypeCode_TypeCode_ARRAYSIZE = 303 + 1;
const ::std::string& Type_TypeCode_Name(Type_TypeCode value);
template <typename T>
const ::std::string& Type_TypeCode_Name(T value) {
  static_assert(::std::is_same<T, Type_TypeCode>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to TypeCode_Name().");
  return Type_TypeCode_Name(static_cast<Type_TypeCode>(value));
}
bool Type_TypeCode_Parse(
    ::absl::string_view name, Type_TypeCode* PROTOBUF_NONNULL value);

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


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

class Type final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Type) */ {
 public:
  inline Type() : Type(nullptr) {}
  ~Type() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Type* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Type));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Type(::google::protobuf::internal::ConstantInitialized);

  inline Type(const Type& from) : Type(nullptr, from) {}
  inline Type(Type&& from) noexcept
      : Type(nullptr, ::std::move(from)) {}
  inline Type& operator=(const Type& from) {
    CopyFrom(from);
    return *this;
  }
  inline Type& operator=(Type&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Type& default_instance() {
    return *reinterpret_cast<const Type*>(
        &_Type_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 18;
  friend void swap(Type& a, Type& b) { a.Swap(&b); }
  inline void Swap(Type* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Type* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Type* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Type>(arena);
  }
  void CopyFrom(const Type& from);
  void MergeFrom(const Type& from) { Type::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Type* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Type"; }

  explicit Type(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Type(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Type& from);
  Type(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Type&& from) noexcept
      : Type(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

  // nested types ----------------------------------------------------
  using TypeCode = Type_TypeCode;
  static constexpr TypeCode NONE = Type_TypeCode_NONE;
  static constexpr TypeCode DOUBLE = Type_TypeCode_DOUBLE;
  static constexpr TypeCode FLOAT = Type_TypeCode_FLOAT;
  static constexpr TypeCode SINT32 = Type_TypeCode_SINT32;
  static constexpr TypeCode SINT64 = Type_TypeCode_SINT64;
  static constexpr TypeCode UINT32 = Type_TypeCode_UINT32;
  static constexpr TypeCode UINT64 = Type_TypeCode_UINT64;
  static constexpr TypeCode BOOL = Type_TypeCode_BOOL;
  static constexpr TypeCode STRING = Type_TypeCode_STRING;
  static constexpr TypeCode BYTES = Type_TypeCode_BYTES;
  static constexpr TypeCode CLASS = Type_TypeCode_CLASS;
  static constexpr TypeCode ENUMERATION = Type_TypeCode_ENUMERATION;
  static constexpr TypeCode EVENT = Type_TypeCode_EVENT;
  static constexpr TypeCode PROCEDURE_CALL = Type_TypeCode_PROCEDURE_CALL;
  static constexpr TypeCode STREAM = Type_TypeCode_STREAM;
  static constexpr TypeCode STATUS = Type_TypeCode_STATUS;
  static constexpr TypeCode SERVICES = Type_TypeCode_SERVICES;
  static constexpr TypeCode TUPLE = Type_TypeCode_TUPLE;
  static constexpr TypeCode LIST = Type_TypeCode_LIST;
  static constexpr TypeCode SET = Type_TypeCode_SET;
  static constexpr TypeCode DICTIONARY = Type_TypeCode_DICTIONARY;
  static inline bool TypeCode_IsValid(int value) {
    return Type_TypeCode_IsValid(value);
  }
  static constexpr TypeCode TypeCode_MIN = Type_TypeCode_TypeCode_MIN;
  static constexpr TypeCode TypeCode_MAX = Type_TypeCode_TypeCode_MAX;
  static constexpr int TypeCode_ARRAYSIZE = Type_TypeCode_TypeCode_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& TypeCode_Name(T value) {
    return Type_TypeCode_Name(value);
  }
  static inline bool TypeCode_Parse(
      ::absl::string_view name, TypeCode* PROTOBUF_NONNULL value) {
    return Type_TypeCode_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kTypesFieldNumber = 4,
    kServiceFieldNumber = 2,
    kNameFieldNumber = 3,
    kCodeFieldNumber = 1,
  };
  // repeated .krpc.schema.Type types = 4;
  int types_size() const;
  private:
  int _internal_types_size() const;

  public:
  void clear_types() ;
  ::krpc::schema::Type* PROTOBUF_NONNULL mutable_types(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>* PROTOBUF_NONNULL mutable_types();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>& _internal_types() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>* PROTOBUF_NONNULL _internal_mutable_types();
  public:
  const ::krpc::schema::Type& types(int index) const;
  ::krpc::schema::Type* PROTOBUF_NONNULL add_types();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>& types() const;
  // string service = 2;
  void clear_service() ;
  const ::std::string& service() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_service(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_service();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_service();
  void set_allocated_service(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_service() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_service(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_service();

  public:
  // string name = 3;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // .krpc.schema.Type.TypeCode code = 1;
  void clear_code() ;
  ::krpc::schema::Type_TypeCode code() const;
  void set_code(::krpc::schema::Type_TypeCode value);

  private:
  ::krpc::schema::Type_TypeCode _internal_code() const;
  void _internal_set_code(::krpc::schema::Type_TypeCode value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Type)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 4,
                                   1, 36,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Type& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Type > types_;
    ::google::protobuf::internal::ArenaStringPtr service_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    int code_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<17> Type_class_data_;
// -------------------------------------------------------------------

class Tuple final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Tuple) */ {
 public:
  inline Tuple() : Tuple(nullptr) {}
  ~Tuple() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Tuple* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Tuple));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Tuple(::google::protobuf::internal::ConstantInitialized);

  inline Tuple(const Tuple& from) : Tuple(nullptr, from) {}
  inline Tuple(Tuple&& from) noexcept
      : Tuple(nullptr, ::std::move(from)) {}
  inline Tuple& operator=(const Tuple& from) {
    CopyFrom(from);
    return *this;
  }
  inline Tuple& operator=(Tuple&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Tuple& default_instance() {
    return *reinterpret_cast<const Tuple*>(
        &_Tuple_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 19;
  friend void swap(Tuple& a, Tuple& b) { a.Swap(&b); }
  inline void Swap(Tuple* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Tuple* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Tuple* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Tuple>(arena);
  }
  void CopyFrom(const Tuple& from);
  void MergeFrom(const Tuple& from) { Tuple::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Tuple* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Tuple"; }

  explicit Tuple(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Tuple(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Tuple& from);
  Tuple(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Tuple&& from) noexcept
      : Tuple(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kItemsFieldNumber = 1,
  };
  // repeated bytes items = 1;
  int items_size() const;
  private:
  int _internal_items_size() const;

  public:
  void clear_items() ;
  const ::std::string& items(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_items(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_items(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_items();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_items(Arg_&& value, Args_... args);
  const ::google::protobuf::RepeatedPtrField<::std::string>& items() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL mutable_items();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_items() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_items();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Tuple)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Tuple& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> items_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<18> Tuple_class_data_;
// -------------------------------------------------------------------

class Stream final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Stream) */ {
 public:
  inline Stream() : Stream(nullptr) {}
  ~Stream() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Stream* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Stream));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Stream(::google::protobuf::internal::ConstantInitialized);

  inline Stream(const Stream& from) : Stream(nullptr, from) {}
  inline Stream(Stream&& from) noexcept
      : Stream(nullptr, ::std::move(from)) {}
  inline Stream& operator=(const Stream& from) {
    CopyFrom(from);
    return *this;
  }
  inline Stream& operator=(Stream&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Stream& default_instance() {
    return *reinterpret_cast<const Stream*>(
        &_Stream_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 24;
  friend void swap(Stream& a, Stream& b) { a.Swap(&b); }
  inline void Swap(Stream* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Stream* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Stream* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Stream>(arena);
  }
  void CopyFrom(const Stream& from);
  void MergeFrom(const Stream& from) { Stream::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Stream* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Stream"; }

  explicit Stream(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Stream(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Stream& from);
  Stream(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Stream&& from) noexcept
      : Stream(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kIdFieldNumber = 1,
  };
  // uint64 id = 1;
  void clear_id() ;
  ::uint64_t id() const;
  void set_id(::uint64_t value);

  private:
  ::uint64_t _internal_id() const;
  void _internal_set_id(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Stream)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Stream& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint64_t id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<19> Stream_class_data_;
// -------------------------------------------------------------------

class Status final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Status) */ {
 public:
  inline Status() : Status(nullptr) {}
  ~Status() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Status* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Status));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Status(::google::protobuf::internal::ConstantInitialized);

  inline Status(const Status& from) : Status(nullptr, from) {}
  inline Status(Status&& from) noexcept
      : Status(nullptr, ::std::move(from)) {}
  inline Status& operator=(const Status& from) {
    CopyFrom(from);
    return *this;
  }
  inline Status& operator=(Status&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Status& default_instance() {
    return *reinterpret_cast<const Status*>(
        &_Status_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 26;
  friend void swap(Status& a, Status& b) { a.Swap(&b); }
  inline void Swap(Status* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Status* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Status* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Status>(arena);
  }
  void CopyFrom(const Status& from);
  void MergeFrom(const Status& from) { Status::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Status* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Status"; }

  explicit Status(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Status(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Status& from);
  Status(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Status&& from) noexcept
      : Status(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kVersionFieldNumber = 1,
    kBytesReadFieldNumber = 2,
    kBytesWrittenFieldNumber = 3,
    kBytesReadRateFieldNumber = 4,
    kBytesWrittenRateFieldNumber = 5,
    kRpcsExecutedFieldNumber = 6,
    kRpcRateFieldNumber = 7,
    kMaxTimePerUpdateFieldNumber = 9,
    kOneRpcPerUpdateFieldNumber = 8,
    kAdaptiveRateControlFieldNumber = 10,
    kBlockingRecvFieldNumber = 11,
    kRecvTimeoutFieldNumber = 12,
    kTimePerRpcUpdateFieldNumber = 13,
    kPollTimePerRpcUpdateFieldNumber = 14,
    kExecTimePerRpcUpdateFieldNumber = 15,
    kStreamRpcsFieldNumber = 16,
    kStreamRpcsExecutedFieldNumber = 17,
    kStreamRpcRateFieldNumber = 18,
    kTimePerStreamUpdateFieldNumber = 19,
  };
  // string version = 1;
  void clear_version() ;
  const ::std::string& version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_version();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_version();
  void set_allocated_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_version();

  public:
  // uint64 bytes_read = 2;
  void clear_bytes_read() ;
  ::uint64_t bytes_read() const;
  void set_bytes_read(::uint64_t value);

  private:
  ::uint64_t _internal_bytes_read() const;
  void _internal_set_bytes_read(::uint64_t value);

  public:
  // uint64 bytes_written = 3;
  void clear_bytes_written() ;
  ::uint64_t bytes_written() const;
  void set_bytes_written(::uint64_t value);

  private:
  ::uint64_t _internal_bytes_written() const;
  void _internal_set_bytes_written(::uint64_t value);

  public:
  // float bytes_read_rate = 4;
  void clear_bytes_read_rate() ;
  float bytes_read_rate() const;
  void set_bytes_read_rate(float value);

  private:
  float _internal_bytes_read_rate() const;
  void _internal_set_bytes_read_rate(float value);

  public:
  // float bytes_written_rate = 5;
  void clear_bytes_written_rate() ;
  float bytes_written_rate() const;
  void set_bytes_written_rate(float value);

  private:
  float _internal_bytes_written_rate() const;
  void _internal_set_bytes_written_rate(float value);

  public:
  // uint64 rpcs_executed = 6;
  void clear_rpcs_executed() ;
  ::uint64_t rpcs_executed() const;
  void set_rpcs_executed(::uint64_t value);

  private:
  ::uint64_t _internal_rpcs_executed() const;
  void _internal_set_rpcs_executed(::uint64_t value);

  public:
  // float rpc_rate = 7;
  void clear_rpc_rate() ;
  float rpc_rate() const;
  void set_rpc_rate(float value);

  private:
  float _internal_rpc_rate() const;
  void _internal_set_rpc_rate(float value);

  public:
  // uint32 max_time_per_update = 9;
  void clear_max_time_per_update() ;
  ::uint32_t max_time_per_update() const;
  void set_max_time_per_update(::uint32_t value);

  private:
  ::uint32_t _internal_max_time_per_update() const;
  void _internal_set_max_time_per_update(::uint32_t value);

  public:
  // bool one_rpc_per_update = 8;
  void clear_one_rpc_per_update() ;
  bool one_rpc_per_update() const;
  void set_one_rpc_per_update(bool value);

  private:
  bool _internal_one_rpc_per_update() const;
  void _internal_set_one_rpc_per_update(bool value);

  public:
  // bool adaptive_rate_control = 10;
  void clear_adaptive_rate_control() ;
  bool adaptive_rate_control() const;
  void set_adaptive_rate_control(bool value);

  private:
  bool _internal_adaptive_rate_control() const;
  void _internal_set_adaptive_rate_control(bool value);

  public:
  // bool blocking_recv = 11;
  void clear_blocking_recv() ;
  bool blocking_recv() const;
  void set_blocking_recv(bool value);

  private:
  bool _internal_blocking_recv() const;
  void _internal_set_blocking_recv(bool value);

  public:
  // uint32 recv_timeout = 12;
  void clear_recv_timeout() ;
  ::uint32_t recv_timeout() const;
  void set_recv_timeout(::uint32_t value);

  private:
  ::uint32_t _internal_recv_timeout() const;
  void _internal_set_recv_timeout(::uint32_t value);

  public:
  // float time_per_rpc_update = 13;
  void clear_time_per_rpc_update() ;
  float time_per_rpc_update() const;
  void set_time_per_rpc_update(float value);

  private:
  float _internal_time_per_rpc_update() const;
  void _internal_set_time_per_rpc_update(float value);

  public:
  // float poll_time_per_rpc_update = 14;
  void clear_poll_time_per_rpc_update() ;
  float poll_time_per_rpc_update() const;
  void set_poll_time_per_rpc_update(float value);

  private:
  float _internal_poll_time_per_rpc_update() const;
  void _internal_set_poll_time_per_rpc_update(float value);

  public:
  // float exec_time_per_rpc_update = 15;
  void clear_exec_time_per_rpc_update() ;
  float exec_time_per_rpc_update() const;
  void set_exec_time_per_rpc_update(float value);

  private:
  float _internal_exec_time_per_rpc_update() const;
  void _internal_set_exec_time_per_rpc_update(float value);

  public:
  // uint32 stream_rpcs = 16;
  void clear_stream_rpcs() ;
  ::uint32_t stream_rpcs() const;
  void set_stream_rpcs(::uint32_t value);

  private:
  ::uint32_t _internal_stream_rpcs() const;
  void _internal_set_stream_rpcs(::uint32_t value);

  public:
  // uint64 stream_rpcs_executed = 17;
  void clear_stream_rpcs_executed() ;
  ::uint64_t stream_rpcs_executed() const;
  void set_stream_rpcs_executed(::uint64_t value);

  private:
  ::uint64_t _internal_stream_rpcs_executed() const;
  void _internal_set_stream_rpcs_executed(::uint64_t value);

  public:
  // float stream_rpc_rate = 18;
  void clear_stream_rpc_rate() ;
  float stream_rpc_rate() const;
  void set_stream_rpc_rate(float value);

  private:
  float _internal_stream_rpc_rate() const;
  void _internal_set_stream_rpc_rate(float value);

  public:
  // float time_per_stream_update = 19;
  void clear_time_per_stream_update() ;
  float time_per_stream_update() const;
  void set_time_per_stream_update(float value);

  private:
  float _internal_time_per_stream_update() const;
  void _internal_set_time_per_stream_update(float value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Status)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<5, 19,
                                   0, 50,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Status& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr version_;
    ::uint64_t bytes_read_;
    ::uint64_t bytes_written_;
    float bytes_read_rate_;
    float bytes_written_rate_;
    ::uint64_t rpcs_executed_;
    float rpc_rate_;
    ::uint32_t max_time_per_update_;
    bool one_rpc_per_update_;
    bool adaptive_rate_control_;
    bool blocking_recv_;
    ::uint32_t recv_timeout_;
    float time_per_rpc_update_;
    float poll_time_per_rpc_update_;
    float exec_time_per_rpc_update_;
    ::uint32_t stream_rpcs_;
    ::uint64_t stream_rpcs_executed_;
    float stream_rpc_rate_;
    float time_per_stream_update_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<19> Status_class_data_;
// -------------------------------------------------------------------

class Set final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Set) */ {
 public:
  inline Set() : Set(nullptr) {}
  ~Set() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Set* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Set));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Set(::google::protobuf::internal::ConstantInitialized);

  inline Set(const Set& from) : Set(nullptr, from) {}
  inline Set(Set&& from) noexcept
      : Set(nullptr, ::std::move(from)) {}
  inline Set& operator=(const Set& from) {
    CopyFrom(from);
    return *this;
  }
  inline Set& operator=(Set&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Set& default_instance() {
    return *reinterpret_cast<const Set*>(
        &_Set_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 21;
  friend void swap(Set& a, Set& b) { a.Swap(&b); }
  inline void Swap(Set* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Set* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Set* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Set>(arena);
  }
  void CopyFrom(const Set& from);
  void MergeFrom(const Set& from) { Set::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Set* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Set"; }

  explicit Set(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Set(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Set& from);
  Set(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Set&& from) noexcept
      : Set(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kItemsFieldNumber = 1,
  };
  // repeated bytes items = 1;
  int items_size() const;
  private:
  int _internal_items_size() const;

  public:
  void clear_items() ;
  const ::std::string& items(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_items(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_items(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_items();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_items(Arg_&& value, Args_... args);
  const ::google::protobuf::RepeatedPtrField<::std::string>& items() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL mutable_items();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_items() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_items();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Set)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Set& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> items_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<16> Set_class_data_;
// -------------------------------------------------------------------

class List final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.List) */ {
 public:
  inline List() : List(nullptr) {}
  ~List() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(List* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(List));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR List(::google::protobuf::internal::ConstantInitialized);

  inline List(const List& from) : List(nullptr, from) {}
  inline List(List&& from) noexcept
      : List(nullptr, ::std::move(from)) {}
  inline List& operator=(const List& from) {
    CopyFrom(from);
    return *this;
  }
  inline List& operator=(List&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const List& default_instance() {
    return *reinterpret_cast<const List*>(
        &_List_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 20;
  friend void swap(List& a, List& b) { a.Swap(&b); }
  inline void Swap(List* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(List* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  List* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<List>(arena);
  }
  void CopyFrom(const List& from);
  void MergeFrom(const List& from) { List::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(List* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.List"; }

  explicit List(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  List(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const List& from);
  List(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, List&& from) noexcept
      : List(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kItemsFieldNumber = 1,
  };
  // repeated bytes items = 1;
  int items_size() const;
  private:
  int _internal_items_size() const;

  public:
  void clear_items() ;
  const ::std::string& items(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_items(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_items(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_items();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_items(Arg_&& value, Args_... args);
  const ::google::protobuf::RepeatedPtrField<::std::string>& items() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL mutable_items();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_items() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_items();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.List)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const List& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> items_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<17> List_class_data_;
// -------------------------------------------------------------------

class Exception final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Exception) */ {
 public:
  inline Exception() : Exception(nullptr) {}
  ~Exception() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Exception* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Exception));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Exception(::google::protobuf::internal::ConstantInitialized);

  inline Exception(const Exception& from) : Exception(nullptr, from) {}
  inline Exception(Exception&& from) noexcept
      : Exception(nullptr, ::std::move(from)) {}
  inline Exception& operator=(const Exception& from) {
    CopyFrom(from);
    return *this;
  }
  inline Exception& operator=(Exception&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Exception& default_instance() {
    return *reinterpret_cast<const Exception*>(
        &_Exception_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 17;
  friend void swap(Exception& a, Exception& b) { a.Swap(&b); }
  inline void Swap(Exception* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Exception* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Exception* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Exception>(arena);
  }
  void CopyFrom(const Exception& from);
  void MergeFrom(const Exception& from) { Exception::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Exception* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Exception"; }

  explicit Exception(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Exception(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Exception& from);
  Exception(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Exception&& from) noexcept
      : Exception(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kDocumentationFieldNumber = 2,
  };
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string documentation = 2;
  void clear_documentation() ;
  const ::std::string& documentation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_documentation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_documentation();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_documentation();
  void set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_documentation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_documentation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_documentation();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Exception)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   0, 47,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Exception& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr documentation_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<22> Exception_class_data_;
// -------------------------------------------------------------------

class Error final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Error) */ {
 public:
  inline Error() : Error(nullptr) {}
  ~Error() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Error* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Error));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Error(::google::protobuf::internal::ConstantInitialized);

  inline Error(const Error& from) : Error(nullptr, from) {}
  inline Error(Error&& from) noexcept
      : Error(nullptr, ::std::move(from)) {}
  inline Error& operator=(const Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline Error& operator=(Error&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Error& default_instance() {
    return *reinterpret_cast<const Error*>(
        &_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(Error& a, Error& b) { a.Swap(&b); }
  inline void Swap(Error* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Error* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Error* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Error>(arena);
  }
  void CopyFrom(const Error& from);
  void MergeFrom(const Error& from) { Error::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Error* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Error"; }

  explicit Error(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Error(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Error& from);
  Error(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Error&& from) noexcept
      : Error(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kServiceFieldNumber = 1,
    kNameFieldNumber = 2,
    kDescriptionFieldNumber = 3,
    kStackTraceFieldNumber = 4,
  };
  // string service = 1;
  void clear_service() ;
  const ::std::string& service() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_service(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_service();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_service();
  void set_allocated_service(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_service() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_service(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_service();

  public:
  // string name = 2;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string description = 3;
  void clear_description() ;
  const ::std::string& description() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_description();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_description();
  void set_allocated_description(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_description() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_description(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // string stack_trace = 4;
  void clear_stack_trace() ;
  const ::std::string& stack_trace() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_stack_trace(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_stack_trace();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_stack_trace();
  void set_allocated_stack_trace(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_stack_trace() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_stack_trace(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_stack_trace();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Error)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 4,
                                   0, 59,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Error& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr service_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr stack_trace_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<18> Error_class_data_;
// -------------------------------------------------------------------

class EnumerationValue final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.EnumerationValue) */ {
 public:
  inline EnumerationValue() : EnumerationValue(nullptr) {}
  ~EnumerationValue() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(EnumerationValue* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(EnumerationValue));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR EnumerationValue(::google::protobuf::internal::ConstantInitialized);

  inline EnumerationValue(const EnumerationValue& from) : EnumerationValue(nullptr, from) {}
  inline EnumerationValue(EnumerationValue&& from) noexcept
      : EnumerationValue(nullptr, ::std::move(from)) {}
  inline EnumerationValue& operator=(const EnumerationValue& from) {
    CopyFrom(from);
    return *this;
  }
  inline EnumerationValue& operator=(EnumerationValue&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const EnumerationValue& default_instance() {
    return *reinterpret_cast<const EnumerationValue*>(
        &_EnumerationValue_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 16;
  friend void swap(EnumerationValue& a, EnumerationValue& b) { a.Swap(&b); }
  inline void Swap(EnumerationValue* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EnumerationValue* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  EnumerationValue* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<EnumerationValue>(arena);
  }
  void CopyFrom(const EnumerationValue& from);
  void MergeFrom(const EnumerationValue& from) { EnumerationValue::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(EnumerationValue* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.EnumerationValue"; }

  explicit EnumerationValue(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  EnumerationValue(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EnumerationValue& from);
  EnumerationValue(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, EnumerationValue&& from) noexcept
      : EnumerationValue(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kDocumentationFieldNumber = 3,
    kValueFieldNumber = 2,
  };
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string documentation = 3;
  void clear_documentation() ;
  const ::std::string& documentation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_documentation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_documentation();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_documentation();
  void set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_documentation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_documentation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_documentation();

  public:
  // int32 value = 2;
  void clear_value() ;
  ::int32_t value() const;
  void set_value(::int32_t value);

  private:
  ::int32_t _internal_value() const;
  void _internal_set_value(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.EnumerationValue)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 3,
                                   0, 54,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const EnumerationValue& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr documentation_;
    ::int32_t value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<29> EnumerationValue_class_data_;
// -------------------------------------------------------------------

class DictionaryEntry final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.DictionaryEntry) */ {
 public:
  inline DictionaryEntry() : DictionaryEntry(nullptr) {}
  ~DictionaryEntry() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DictionaryEntry* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DictionaryEntry));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR DictionaryEntry(::google::protobuf::internal::ConstantInitialized);

  inline DictionaryEntry(const DictionaryEntry& from) : DictionaryEntry(nullptr, from) {}
  inline DictionaryEntry(DictionaryEntry&& from) noexcept
      : DictionaryEntry(nullptr, ::std::move(from)) {}
  inline DictionaryEntry& operator=(const DictionaryEntry& from) {
    CopyFrom(from);
    return *this;
  }
  inline DictionaryEntry& operator=(DictionaryEntry&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const DictionaryEntry& default_instance() {
    return *reinterpret_cast<const DictionaryEntry*>(
        &_DictionaryEntry_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 23;
  friend void swap(DictionaryEntry& a, DictionaryEntry& b) { a.Swap(&b); }
  inline void Swap(DictionaryEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DictionaryEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  DictionaryEntry* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<DictionaryEntry>(arena);
  }
  void CopyFrom(const DictionaryEntry& from);
  void MergeFrom(const DictionaryEntry& from) { DictionaryEntry::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DictionaryEntry* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.DictionaryEntry"; }

  explicit DictionaryEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DictionaryEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DictionaryEntry& from);
  DictionaryEntry(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DictionaryEntry&& from) noexcept
      : DictionaryEntry(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kKeyFieldNumber = 1,
    kValueFieldNumber = 2,
  };
  // bytes key = 1;
  void clear_key() ;
  const ::std::string& key() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_key(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_key();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_key();
  void set_allocated_key(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_key() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_key(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_key();

  public:
  // bytes value = 2;
  void clear_value() ;
  const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.DictionaryEntry)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DictionaryEntry& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr key_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<28> DictionaryEntry_class_data_;
// -------------------------------------------------------------------

class ConnectionResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.ConnectionResponse) */ {
 public:
  inline ConnectionResponse() : ConnectionResponse(nullptr) {}
  ~ConnectionResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ConnectionResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ConnectionResponse));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ConnectionResponse(::google::protobuf::internal::ConstantInitialized);

  inline ConnectionResponse(const ConnectionResponse& from) : ConnectionResponse(nullptr, from) {}
  inline ConnectionResponse(ConnectionResponse&& from) noexcept
      : ConnectionResponse(nullptr, ::std::move(from)) {}
  inline ConnectionResponse& operator=(const ConnectionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionResponse& operator=(ConnectionResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ConnectionResponse& default_instance() {
    return *reinterpret_cast<const ConnectionResponse*>(
        &_ConnectionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(ConnectionResponse& a, ConnectionResponse& b) { a.Swap(&b); }
  inline void Swap(ConnectionResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ConnectionResponse* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ConnectionResponse>(arena);
  }
  void CopyFrom(const ConnectionResponse& from);
  void MergeFrom(const ConnectionResponse& from) { ConnectionResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ConnectionResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.ConnectionResponse"; }

  explicit ConnectionResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ConnectionResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ConnectionResponse& from);
  ConnectionResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ConnectionResponse&& from) noexcept
      : ConnectionResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

  // nested types ----------------------------------------------------
  using Status = ConnectionResponse_Status;
  static constexpr Status OK = ConnectionResponse_Status_OK;
  static constexpr Status MALFORMED_MESSAGE = ConnectionResponse_Status_MALFORMED_MESSAGE;
  static constexpr Status TIMEOUT = ConnectionResponse_Status_TIMEOUT;
  static constexpr Status WRONG_TYPE = ConnectionResponse_Status_WRONG_TYPE;
  static inline bool Status_IsValid(int value) {
    return ConnectionResponse_Status_IsValid(value);
  }
  static constexpr Status Status_MIN = ConnectionResponse_Status_Status_MIN;
  static constexpr Status Status_MAX = ConnectionResponse_Status_Status_MAX;
  static constexpr int Status_ARRAYSIZE = ConnectionResponse_Status_Status_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& Status_Name(T value) {
    return ConnectionResponse_Status_Name(value);
  }
  static inline bool Status_Parse(
      ::absl::string_view name, Status* PROTOBUF_NONNULL value) {
    return ConnectionResponse_Status_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kMessageFieldNumber = 2,
    kClientIdentifierFieldNumber = 3,
    kStatusFieldNumber = 1,
  };
  // string message = 2;
  void clear_message() ;
  const ::std::string& message() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_message(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_message();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_message();
  void set_allocated_message(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_message() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_message(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_message();

  public:
  // bytes client_identifier = 3;
  void clear_client_identifier() ;
  const ::std::string& client_identifier() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_identifier(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_client_identifier();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_client_identifier();
  void set_allocated_client_identifier(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_client_identifier() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_client_identifier(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_client_identifier();

  public:
  // .krpc.schema.ConnectionResponse.Status status = 1;
  void clear_status() ;
  ::krpc::schema::ConnectionResponse_Status status() const;
  void set_status(::krpc::schema::ConnectionResponse_Status value);

  private:
  ::krpc::schema::ConnectionResponse_Status _internal_status() const;
  void _internal_set_status(::krpc::schema::ConnectionResponse_Status value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.ConnectionResponse)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 3,
                                   0, 46,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ConnectionResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr message_;
    ::google::protobuf::internal::ArenaStringPtr client_identifier_;
    int status_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<31> ConnectionResponse_class_data_;
// -------------------------------------------------------------------

class ConnectionRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.ConnectionRequest) */ {
 public:
  inline ConnectionRequest() : ConnectionRequest(nullptr) {}
  ~ConnectionRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ConnectionRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ConnectionRequest));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ConnectionRequest(::google::protobuf::internal::ConstantInitialized);

  inline ConnectionRequest(const ConnectionRequest& from) : ConnectionRequest(nullptr, from) {}
  inline ConnectionRequest(ConnectionRequest&& from) noexcept
      : ConnectionRequest(nullptr, ::std::move(from)) {}
  inline ConnectionRequest& operator=(const ConnectionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionRequest& operator=(ConnectionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ConnectionRequest& default_instance() {
    return *reinterpret_cast<const ConnectionRequest*>(
        &_ConnectionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(ConnectionRequest& a, ConnectionRequest& b) { a.Swap(&b); }
  inline void Swap(ConnectionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ConnectionRequest* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ConnectionRequest>(arena);
  }
  void CopyFrom(const ConnectionRequest& from);
  void MergeFrom(const ConnectionRequest& from) { ConnectionRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ConnectionRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.ConnectionRequest"; }

  explicit ConnectionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ConnectionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ConnectionRequest& from);
  ConnectionRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ConnectionRequest&& from) noexcept
      : ConnectionRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

  // nested types ----------------------------------------------------
  using Type = ConnectionRequest_Type;
  static constexpr Type RPC = ConnectionRequest_Type_RPC;
  static constexpr Type STREAM = ConnectionRequest_Type_STREAM;
  static inline bool Type_IsValid(int value) {
    return ConnectionRequest_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = ConnectionRequest_Type_Type_MIN;
  static constexpr Type Type_MAX = ConnectionRequest_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = ConnectionRequest_Type_Type_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& Type_Name(T value) {
    return ConnectionRequest_Type_Name(value);
  }
  static inline bool Type_Parse(
      ::absl::string_view name, Type* PROTOBUF_NONNULL value) {
    return ConnectionRequest_Type_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kClientNameFieldNumber = 2,
    kClientIdentifierFieldNumber = 3,
    kTypeFieldNumber = 1,
  };
  // string client_name = 2;
  void clear_client_name() ;
  const ::std::string& client_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_client_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_client_name();
  void set_allocated_client_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_client_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_client_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_client_name();

  public:
  // bytes client_identifier = 3;
  void clear_client_identifier() ;
  const ::std::string& client_identifier() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_identifier(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_client_identifier();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_client_identifier();
  void set_allocated_client_identifier(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_client_identifier() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_client_identifier(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_client_identifier();

  public:
  // .krpc.schema.ConnectionRequest.Type type = 1;
  void clear_type() ;
  ::krpc::schema::ConnectionRequest_Type type() const;
  void set_type(::krpc::schema::ConnectionRequest_Type value);

  private:
  ::krpc::schema::ConnectionRequest_Type _internal_type() const;
  void _internal_set_type(::krpc::schema::ConnectionRequest_Type value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.ConnectionRequest)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 3,
                                   0, 49,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ConnectionRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr client_name_;
    ::google::protobuf::internal::ArenaStringPtr client_identifier_;
    int type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<30> ConnectionRequest_class_data_;
// -------------------------------------------------------------------

class Class final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Class) */ {
 public:
  inline Class() : Class(nullptr) {}
  ~Class() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Class* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Class));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Class(::google::protobuf::internal::ConstantInitialized);

  inline Class(const Class& from) : Class(nullptr, from) {}
  inline Class(Class&& from) noexcept
      : Class(nullptr, ::std::move(from)) {}
  inline Class& operator=(const Class& from) {
    CopyFrom(from);
    return *this;
  }
  inline Class& operator=(Class&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Class& default_instance() {
    return *reinterpret_cast<const Class*>(
        &_Class_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(Class& a, Class& b) { a.Swap(&b); }
  inline void Swap(Class* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Class* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Class* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Class>(arena);
  }
  void CopyFrom(const Class& from);
  void MergeFrom(const Class& from) { Class::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Class* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Class"; }

  explicit Class(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Class(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Class& from);
  Class(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Class&& from) noexcept
      : Class(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kDocumentationFieldNumber = 2,
  };
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string documentation = 2;
  void clear_documentation() ;
  const ::std::string& documentation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_documentation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_documentation();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_documentation();
  void set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_documentation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_documentation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_documentation();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Class)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   0, 43,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Class& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr documentation_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<18> Class_class_data_;
// -------------------------------------------------------------------

class Argument final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Argument) */ {
 public:
  inline Argument() : Argument(nullptr) {}
  ~Argument() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Argument* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Argument));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Argument(::google::protobuf::internal::ConstantInitialized);

  inline Argument(const Argument& from) : Argument(nullptr, from) {}
  inline Argument(Argument&& from) noexcept
      : Argument(nullptr, ::std::move(from)) {}
  inline Argument& operator=(const Argument& from) {
    CopyFrom(from);
    return *this;
  }
  inline Argument& operator=(Argument&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Argument& default_instance() {
    return *reinterpret_cast<const Argument*>(
        &_Argument_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(Argument& a, Argument& b) { a.Swap(&b); }
  inline void Swap(Argument* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Argument* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Argument* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Argument>(arena);
  }
  void CopyFrom(const Argument& from);
  void MergeFrom(const Argument& from) { Argument::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Argument* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Argument"; }

  explicit Argument(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Argument(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Argument& from);
  Argument(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Argument&& from) noexcept
      : Argument(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kValueFieldNumber = 2,
    kPositionFieldNumber = 1,
  };
  // bytes value = 2;
  void clear_value() ;
  const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // uint32 position = 1;
  void clear_position() ;
  ::uint32_t position() const;
  void set_position(::uint32_t value);

  private:
  ::uint32_t _internal_position() const;
  void _internal_set_position(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Argument)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Argument& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    ::uint32_t position_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<21> Argument_class_data_;
// -------------------------------------------------------------------

class ProcedureResult final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.ProcedureResult) */ {
 public:
  inline ProcedureResult() : ProcedureResult(nullptr) {}
  ~ProcedureResult() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ProcedureResult* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ProcedureResult));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ProcedureResult(::google::protobuf::internal::ConstantInitialized);

  inline ProcedureResult(const ProcedureResult& from) : ProcedureResult(nullptr, from) {}
  inline ProcedureResult(ProcedureResult&& from) noexcept
      : ProcedureResult(nullptr, ::std::move(from)) {}
  inline ProcedureResult& operator=(const ProcedureResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline ProcedureResult& operator=(ProcedureResult&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ProcedureResult& default_instance() {
    return *reinterpret_cast<const ProcedureResult*>(
        &_ProcedureResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(ProcedureResult& a, ProcedureResult& b) { a.Swap(&b); }
  inline void Swap(ProcedureResult* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ProcedureResult* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ProcedureResult* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ProcedureResult>(arena);
  }
  void CopyFrom(const ProcedureResult& from);
  void MergeFrom(const ProcedureResult& from) { ProcedureResult::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ProcedureResult* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.ProcedureResult"; }

  explicit ProcedureResult(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ProcedureResult(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ProcedureResult& from);
  ProcedureResult(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ProcedureResult&& from) noexcept
      : ProcedureResult(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kValueFieldNumber = 2,
    kErrorFieldNumber = 1,
  };
  // bytes value = 2;
  void clear_value() ;
  const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // .krpc.schema.Error error = 1;
  bool has_error() const;
  void clear_error() ;
  const ::krpc::schema::Error& error() const;
  [[nodiscard]] ::krpc::schema::Error* PROTOBUF_NULLABLE release_error();
  ::krpc::schema::Error* PROTOBUF_NONNULL mutable_error();
  void set_allocated_error(::krpc::schema::Error* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_error(::krpc::schema::Error* PROTOBUF_NULLABLE value);
  ::krpc::schema::Error* PROTOBUF_NULLABLE unsafe_arena_release_error();

  private:
  const ::krpc::schema::Error& _internal_error() const;
  ::krpc::schema::Error* PROTOBUF_NONNULL _internal_mutable_error();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.ProcedureResult)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ProcedureResult& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    ::krpc::schema::Error* PROTOBUF_NULLABLE error_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<28> ProcedureResult_class_data_;
// -------------------------------------------------------------------

class ProcedureCall final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.ProcedureCall) */ {
 public:
  inline ProcedureCall() : ProcedureCall(nullptr) {}
  ~ProcedureCall() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ProcedureCall* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ProcedureCall));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ProcedureCall(::google::protobuf::internal::ConstantInitialized);

  inline ProcedureCall(const ProcedureCall& from) : ProcedureCall(nullptr, from) {}
  inline ProcedureCall(ProcedureCall&& from) noexcept
      : ProcedureCall(nullptr, ::std::move(from)) {}
  inline ProcedureCall& operator=(const ProcedureCall& from) {
    CopyFrom(from);
    return *this;
  }
  inline ProcedureCall& operator=(ProcedureCall&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ProcedureCall& default_instance() {
    return *reinterpret_cast<const ProcedureCall*>(
        &_ProcedureCall_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(ProcedureCall& a, ProcedureCall& b) { a.Swap(&b); }
  inline void Swap(ProcedureCall* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ProcedureCall* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ProcedureCall* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ProcedureCall>(arena);
  }
  void CopyFrom(const ProcedureCall& from);
  void MergeFrom(const ProcedureCall& from) { ProcedureCall::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ProcedureCall* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.ProcedureCall"; }

  explicit ProcedureCall(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ProcedureCall(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ProcedureCall& from);
  ProcedureCall(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ProcedureCall&& from) noexcept
      : ProcedureCall(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kArgumentsFieldNumber = 3,
    kServiceFieldNumber = 1,
    kProcedureFieldNumber = 2,
    kServiceIdFieldNumber = 4,
    kProcedureIdFieldNumber = 5,
  };
  // repeated .krpc.schema.Argument arguments = 3;
  int arguments_size() const;
  private:
  int _internal_arguments_size() const;

  public:
  void clear_arguments() ;
  ::krpc::schema::Argument* PROTOBUF_NONNULL mutable_arguments(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>* PROTOBUF_NONNULL mutable_arguments();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>& _internal_arguments() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>* PROTOBUF_NONNULL _internal_mutable_arguments();
  public:
  const ::krpc::schema::Argument& arguments(int index) const;
  ::krpc::schema::Argument* PROTOBUF_NONNULL add_arguments();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>& arguments() const;
  // string service = 1;
  void clear_service() ;
  const ::std::string& service() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_service(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_service();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_service();
  void set_allocated_service(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_service() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_service(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_service();

  public:
  // string procedure = 2;
  void clear_procedure() ;
  const ::std::string& procedure() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_procedure(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_procedure();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_procedure();
  void set_allocated_procedure(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_procedure() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_procedure(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_procedure();

  public:
  // uint32 service_id = 4;
  void clear_service_id() ;
  ::uint32_t service_id() const;
  void set_service_id(::uint32_t value);

  private:
  ::uint32_t _internal_service_id() const;
  void _internal_set_service_id(::uint32_t value);

  public:
  // uint32 procedure_id = 5;
  void clear_procedure_id() ;
  ::uint32_t procedure_id() const;
  void set_procedure_id(::uint32_t value);

  private:
  ::uint32_t _internal_procedure_id() const;
  void _internal_set_procedure_id(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.ProcedureCall)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<3, 5,
                                   1, 50,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ProcedureCall& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Argument > arguments_;
    ::google::protobuf::internal::ArenaStringPtr service_;
    ::google::protobuf::internal::ArenaStringPtr procedure_;
    ::uint32_t service_id_;
    ::uint32_t procedure_id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<26> ProcedureCall_class_data_;
// -------------------------------------------------------------------

class Parameter final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Parameter) */ {
 public:
  inline Parameter() : Parameter(nullptr) {}
  ~Parameter() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Parameter* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Parameter));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Parameter(::google::protobuf::internal::ConstantInitialized);

  inline Parameter(const Parameter& from) : Parameter(nullptr, from) {}
  inline Parameter(Parameter&& from) noexcept
      : Parameter(nullptr, ::std::move(from)) {}
  inline Parameter& operator=(const Parameter& from) {
    CopyFrom(from);
    return *this;
  }
  inline Parameter& operator=(Parameter&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Parameter& default_instance() {
    return *reinterpret_cast<const Parameter*>(
        &_Parameter_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(Parameter& a, Parameter& b) { a.Swap(&b); }
  inline void Swap(Parameter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Parameter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Parameter* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Parameter>(arena);
  }
  void CopyFrom(const Parameter& from);
  void MergeFrom(const Parameter& from) { Parameter::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Parameter* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Parameter"; }

  explicit Parameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Parameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Parameter& from);
  Parameter(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Parameter&& from) noexcept
      : Parameter(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kDefaultValueFieldNumber = 3,
    kTypeFieldNumber = 2,
    kNullableFieldNumber = 4,
  };
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // bytes default_value = 3;
  void clear_default_value() ;
  const ::std::string& default_value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_default_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_default_value();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_default_value();
  void set_allocated_default_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_default_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_default_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_default_value();

  public:
  // .krpc.schema.Type type = 2;
  bool has_type() const;
  void clear_type() ;
  const ::krpc::schema::Type& type() const;
  [[nodiscard]] ::krpc::schema::Type* PROTOBUF_NULLABLE release_type();
  ::krpc::schema::Type* PROTOBUF_NONNULL mutable_type();
  void set_allocated_type(::krpc::schema::Type* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_type(::krpc::schema::Type* PROTOBUF_NULLABLE value);
  ::krpc::schema::Type* PROTOBUF_NULLABLE unsafe_arena_release_type();

  private:
  const ::krpc::schema::Type& _internal_type() const;
  ::krpc::schema::Type* PROTOBUF_NONNULL _internal_mutable_type();

  public:
  // bool nullable = 4;
  void clear_nullable() ;
  bool nullable() const;
  void set_nullable(bool value);

  private:
  bool _internal_nullable() const;
  void _internal_set_nullable(bool value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Parameter)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 4,
                                   1, 34,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Parameter& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr default_value_;
    ::krpc::schema::Type* PROTOBUF_NULLABLE type_;
    bool nullable_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<22> Parameter_class_data_;
// -------------------------------------------------------------------

class Event final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Event) */ {
 public:
  inline Event() : Event(nullptr) {}
  ~Event() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Event* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Event));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Event(::google::protobuf::internal::ConstantInitialized);

  inline Event(const Event& from) : Event(nullptr, from) {}
  inline Event(Event&& from) noexcept
      : Event(nullptr, ::std::move(from)) {}
  inline Event& operator=(const Event& from) {
    CopyFrom(from);
    return *this;
  }
  inline Event& operator=(Event&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Event& default_instance() {
    return *reinterpret_cast<const Event*>(
        &_Event_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 25;
  friend void swap(Event& a, Event& b) { a.Swap(&b); }
  inline void Swap(Event* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Event* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Event* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Event>(arena);
  }
  void CopyFrom(const Event& from);
  void MergeFrom(const Event& from) { Event::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Event* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Event"; }

  explicit Event(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Event(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Event& from);
  Event(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Event&& from) noexcept
      : Event(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kStreamFieldNumber = 1,
  };
  // .krpc.schema.Stream stream = 1;
  bool has_stream() const;
  void clear_stream() ;
  const ::krpc::schema::Stream& stream() const;
  [[nodiscard]] ::krpc::schema::Stream* PROTOBUF_NULLABLE release_stream();
  ::krpc::schema::Stream* PROTOBUF_NONNULL mutable_stream();
  void set_allocated_stream(::krpc::schema::Stream* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_stream(::krpc::schema::Stream* PROTOBUF_NULLABLE value);
  ::krpc::schema::Stream* PROTOBUF_NULLABLE unsafe_arena_release_stream();

  private:
  const ::krpc::schema::Stream& _internal_stream() const;
  ::krpc::schema::Stream* PROTOBUF_NONNULL _internal_mutable_stream();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Event)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Event& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::krpc::schema::Stream* PROTOBUF_NULLABLE stream_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<18> Event_class_data_;
// -------------------------------------------------------------------

class Enumeration final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Enumeration) */ {
 public:
  inline Enumeration() : Enumeration(nullptr) {}
  ~Enumeration() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Enumeration* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Enumeration));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Enumeration(::google::protobuf::internal::ConstantInitialized);

  inline Enumeration(const Enumeration& from) : Enumeration(nullptr, from) {}
  inline Enumeration(Enumeration&& from) noexcept
      : Enumeration(nullptr, ::std::move(from)) {}
  inline Enumeration& operator=(const Enumeration& from) {
    CopyFrom(from);
    return *this;
  }
  inline Enumeration& operator=(Enumeration&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Enumeration& default_instance() {
    return *reinterpret_cast<const Enumeration*>(
        &_Enumeration_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 15;
  friend void swap(Enumeration& a, Enumeration& b) { a.Swap(&b); }
  inline void Swap(Enumeration* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Enumeration* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Enumeration* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Enumeration>(arena);
  }
  void CopyFrom(const Enumeration& from);
  void MergeFrom(const Enumeration& from) { Enumeration::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Enumeration* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Enumeration"; }

  explicit Enumeration(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Enumeration(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Enumeration& from);
  Enumeration(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Enumeration&& from) noexcept
      : Enumeration(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 2,
    kNameFieldNumber = 1,
    kDocumentationFieldNumber = 3,
  };
  // repeated .krpc.schema.EnumerationValue values = 2;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  ::krpc::schema::EnumerationValue* PROTOBUF_NONNULL mutable_values(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>& _internal_values() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>* PROTOBUF_NONNULL _internal_mutable_values();
  public:
  const ::krpc::schema::EnumerationValue& values(int index) const;
  ::krpc::schema::EnumerationValue* PROTOBUF_NONNULL add_values();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>& values() const;
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string documentation = 3;
  void clear_documentation() ;
  const ::std::string& documentation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_documentation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_documentation();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_documentation();
  void set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_documentation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_documentation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_documentation();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Enumeration)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 3,
                                   1, 49,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Enumeration& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::EnumerationValue > values_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr documentation_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<24> Enumeration_class_data_;
// -------------------------------------------------------------------

class Dictionary final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Dictionary) */ {
 public:
  inline Dictionary() : Dictionary(nullptr) {}
  ~Dictionary() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Dictionary* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Dictionary));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Dictionary(::google::protobuf::internal::ConstantInitialized);

  inline Dictionary(const Dictionary& from) : Dictionary(nullptr, from) {}
  inline Dictionary(Dictionary&& from) noexcept
      : Dictionary(nullptr, ::std::move(from)) {}
  inline Dictionary& operator=(const Dictionary& from) {
    CopyFrom(from);
    return *this;
  }
  inline Dictionary& operator=(Dictionary&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Dictionary& default_instance() {
    return *reinterpret_cast<const Dictionary*>(
        &_Dictionary_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 22;
  friend void swap(Dictionary& a, Dictionary& b) { a.Swap(&b); }
  inline void Swap(Dictionary* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Dictionary* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Dictionary* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Dictionary>(arena);
  }
  void CopyFrom(const Dictionary& from);
  void MergeFrom(const Dictionary& from) { Dictionary::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Dictionary* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Dictionary"; }

  explicit Dictionary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Dictionary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Dictionary& from);
  Dictionary(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Dictionary&& from) noexcept
      : Dictionary(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kEntriesFieldNumber = 1,
  };
  // repeated .krpc.schema.DictionaryEntry entries = 1;
  int entries_size() const;
  private:
  int _internal_entries_size() const;

  public:
  void clear_entries() ;
  ::krpc::schema::DictionaryEntry* PROTOBUF_NONNULL mutable_entries(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>* PROTOBUF_NONNULL mutable_entries();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>& _internal_entries() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>* PROTOBUF_NONNULL _internal_mutable_entries();
  public:
  const ::krpc::schema::DictionaryEntry& entries(int index) const;
  ::krpc::schema::DictionaryEntry* PROTOBUF_NONNULL add_entries();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>& entries() const;
  // @@protoc_insertion_point(class_scope:krpc.schema.Dictionary)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Dictionary& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::DictionaryEntry > entries_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<23> Dictionary_class_data_;
// -------------------------------------------------------------------

class StreamResult final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.StreamResult) */ {
 public:
  inline StreamResult() : StreamResult(nullptr) {}
  ~StreamResult() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamResult* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamResult));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR StreamResult(::google::protobuf::internal::ConstantInitialized);

  inline StreamResult(const StreamResult& from) : StreamResult(nullptr, from) {}
  inline StreamResult(StreamResult&& from) noexcept
      : StreamResult(nullptr, ::std::move(from)) {}
  inline StreamResult& operator=(const StreamResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamResult& operator=(StreamResult&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const StreamResult& default_instance() {
    return *reinterpret_cast<const StreamResult*>(
        &_StreamResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(StreamResult& a, StreamResult& b) { a.Swap(&b); }
  inline void Swap(StreamResult* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamResult* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  StreamResult* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<StreamResult>(arena);
  }
  void CopyFrom(const StreamResult& from);
  void MergeFrom(const StreamResult& from) { StreamResult::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamResult* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.StreamResult"; }

  explicit StreamResult(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamResult(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamResult& from);
  StreamResult(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamResult&& from) noexcept
      : StreamResult(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kResultFieldNumber = 2,
    kIdFieldNumber = 1,
  };
  // .krpc.schema.ProcedureResult result = 2;
  bool has_result() const;
  void clear_result() ;
  const ::krpc::schema::ProcedureResult& result() const;
  [[nodiscard]] ::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE release_result();
  ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL mutable_result();
  void set_allocated_result(::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_result(::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE value);
  ::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE unsafe_arena_release_result();

  private:
  const ::krpc::schema::ProcedureResult& _internal_result() const;
  ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL _internal_mutable_result();

  public:
  // uint64 id = 1;
  void clear_id() ;
  ::uint64_t id() const;
  void set_id(::uint64_t value);

  private:
  ::uint64_t _internal_id() const;
  void _internal_set_id(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.StreamResult)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamResult& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE result_;
    ::uint64_t id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<25> StreamResult_class_data_;
// -------------------------------------------------------------------

class Response final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Response) */ {
 public:
  inline Response() : Response(nullptr) {}
  ~Response() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Response* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Response));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Response(::google::protobuf::internal::ConstantInitialized);

  inline Response(const Response& from) : Response(nullptr, from) {}
  inline Response(Response&& from) noexcept
      : Response(nullptr, ::std::move(from)) {}
  inline Response& operator=(const Response& from) {
    CopyFrom(from);
    return *this;
  }
  inline Response& operator=(Response&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Response& default_instance() {
    return *reinterpret_cast<const Response*>(
        &_Response_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(Response& a, Response& b) { a.Swap(&b); }
  inline void Swap(Response* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Response* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Response* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Response>(arena);
  }
  void CopyFrom(const Response& from);
  void MergeFrom(const Response& from) { Response::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Response* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Response"; }

  explicit Response(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Response(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Response& from);
  Response(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Response&& from) noexcept
      : Response(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kResultsFieldNumber = 2,
    kErrorFieldNumber = 1,
  };
  // repeated .krpc.schema.ProcedureResult results = 2;
  int results_size() const;
  private:
  int _internal_results_size() const;

  public:
  void clear_results() ;
  ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL mutable_results(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>* PROTOBUF_NONNULL mutable_results();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>& _internal_results() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>* PROTOBUF_NONNULL _internal_mutable_results();
  public:
  const ::krpc::schema::ProcedureResult& results(int index) const;
  ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL add_results();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>& results() const;
  // .krpc.schema.Error error = 1;
  bool has_error() const;
  void clear_error() ;
  const ::krpc::schema::Error& error() const;
  [[nodiscard]] ::krpc::schema::Error* PROTOBUF_NULLABLE release_error();
  ::krpc::schema::Error* PROTOBUF_NONNULL mutable_error();
  void set_allocated_error(::krpc::schema::Error* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_error(::krpc::schema::Error* PROTOBUF_NULLABLE value);
  ::krpc::schema::Error* PROTOBUF_NULLABLE unsafe_arena_release_error();

  private:
  const ::krpc::schema::Error& _internal_error() const;
  ::krpc::schema::Error* PROTOBUF_NONNULL _internal_mutable_error();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Response)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   2, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Response& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::ProcedureResult > results_;
    ::krpc::schema::Error* PROTOBUF_NULLABLE error_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<21> Response_class_data_;
// -------------------------------------------------------------------

class Request final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Request) */ {
 public:
  inline Request() : Request(nullptr) {}
  ~Request() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Request* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Request));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Request(::google::protobuf::internal::ConstantInitialized);

  inline Request(const Request& from) : Request(nullptr, from) {}
  inline Request(Request&& from) noexcept
      : Request(nullptr, ::std::move(from)) {}
  inline Request& operator=(const Request& from) {
    CopyFrom(from);
    return *this;
  }
  inline Request& operator=(Request&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Request& default_instance() {
    return *reinterpret_cast<const Request*>(
        &_Request_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(Request& a, Request& b) { a.Swap(&b); }
  inline void Swap(Request* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Request* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Request* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Request>(arena);
  }
  void CopyFrom(const Request& from);
  void MergeFrom(const Request& from) { Request::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Request* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Request"; }

  explicit Request(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Request(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Request& from);
  Request(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Request&& from) noexcept
      : Request(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kCallsFieldNumber = 1,
  };
  // repeated .krpc.schema.ProcedureCall calls = 1;
  int calls_size() const;
  private:
  int _internal_calls_size() const;

  public:
  void clear_calls() ;
  ::krpc::schema::ProcedureCall* PROTOBUF_NONNULL mutable_calls(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>* PROTOBUF_NONNULL mutable_calls();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>& _internal_calls() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>* PROTOBUF_NONNULL _internal_mutable_calls();
  public:
  const ::krpc::schema::ProcedureCall& calls(int index) const;
  ::krpc::schema::ProcedureCall* PROTOBUF_NONNULL add_calls();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>& calls() const;
  // @@protoc_insertion_point(class_scope:krpc.schema.Request)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Request& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::ProcedureCall > calls_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<20> Request_class_data_;
// -------------------------------------------------------------------

class Procedure final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Procedure) */ {
 public:
  inline Procedure() : Procedure(nullptr) {}
  ~Procedure() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Procedure* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Procedure));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Procedure(::google::protobuf::internal::ConstantInitialized);

  inline Procedure(const Procedure& from) : Procedure(nullptr, from) {}
  inline Procedure(Procedure&& from) noexcept
      : Procedure(nullptr, ::std::move(from)) {}
  inline Procedure& operator=(const Procedure& from) {
    CopyFrom(from);
    return *this;
  }
  inline Procedure& operator=(Procedure&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Procedure& default_instance() {
    return *reinterpret_cast<const Procedure*>(
        &_Procedure_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(Procedure& a, Procedure& b) { a.Swap(&b); }
  inline void Swap(Procedure* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Procedure* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Procedure* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Procedure>(arena);
  }
  void CopyFrom(const Procedure& from);
  void MergeFrom(const Procedure& from) { Procedure::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Procedure* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Procedure"; }

  explicit Procedure(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Procedure(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Procedure& from);
  Procedure(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Procedure&& from) noexcept
      : Procedure(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

  // nested types ----------------------------------------------------
  using GameScene = Procedure_GameScene;
  static constexpr GameScene SPACE_CENTER = Procedure_GameScene_SPACE_CENTER;
  static constexpr GameScene FLIGHT = Procedure_GameScene_FLIGHT;
  static constexpr GameScene TRACKING_STATION = Procedure_GameScene_TRACKING_STATION;
  static constexpr GameScene EDITOR_VAB = Procedure_GameScene_EDITOR_VAB;
  static constexpr GameScene EDITOR_SPH = Procedure_GameScene_EDITOR_SPH;
  static constexpr GameScene MISSION_BUILDER = Procedure_GameScene_MISSION_BUILDER;
  static inline bool GameScene_IsValid(int value) {
    return Procedure_GameScene_IsValid(value);
  }
  static constexpr GameScene GameScene_MIN = Procedure_GameScene_GameScene_MIN;
  static constexpr GameScene GameScene_MAX = Procedure_GameScene_GameScene_MAX;
  static constexpr int GameScene_ARRAYSIZE = Procedure_GameScene_GameScene_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& GameScene_Name(T value) {
    return Procedure_GameScene_Name(value);
  }
  static inline bool GameScene_Parse(
      ::absl::string_view name, GameScene* PROTOBUF_NONNULL value) {
    return Procedure_GameScene_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kParametersFieldNumber = 2,
    kGameScenesFieldNumber = 6,
    kNameFieldNumber = 1,
    kDocumentationFieldNumber = 5,
    kReturnTypeFieldNumber = 3,
    kReturnIsNullableFieldNumber = 4,
  };
  // repeated .krpc.schema.Parameter parameters = 2;
  int parameters_size() const;
  private:
  int _internal_parameters_size() const;

  public:
  void clear_parameters() ;
  ::krpc::schema::Parameter* PROTOBUF_NONNULL mutable_parameters(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>* PROTOBUF_NONNULL mutable_parameters();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>& _internal_parameters() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>* PROTOBUF_NONNULL _internal_mutable_parameters();
  public:
  const ::krpc::schema::Parameter& parameters(int index) const;
  ::krpc::schema::Parameter* PROTOBUF_NONNULL add_parameters();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>& parameters() const;
  // repeated .krpc.schema.Procedure.GameScene game_scenes = 6;
  int game_scenes_size() const;
  private:
  int _internal_game_scenes_size() const;

  public:
  void clear_game_scenes() ;
  public:
  ::krpc::schema::Procedure_GameScene game_scenes(int index) const;
  void set_game_scenes(int index, ::krpc::schema::Procedure_GameScene value);
  void add_game_scenes(::krpc::schema::Procedure_GameScene value);
  const ::google::protobuf::RepeatedField<int>& game_scenes() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_game_scenes();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_game_scenes() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_game_scenes();

  public:
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string documentation = 5;
  void clear_documentation() ;
  const ::std::string& documentation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_documentation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_documentation();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_documentation();
  void set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_documentation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_documentation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_documentation();

  public:
  // .krpc.schema.Type return_type = 3;
  bool has_return_type() const;
  void clear_return_type() ;
  const ::krpc::schema::Type& return_type() const;
  [[nodiscard]] ::krpc::schema::Type* PROTOBUF_NULLABLE release_return_type();
  ::krpc::schema::Type* PROTOBUF_NONNULL mutable_return_type();
  void set_allocated_return_type(::krpc::schema::Type* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_return_type(::krpc::schema::Type* PROTOBUF_NULLABLE value);
  ::krpc::schema::Type* PROTOBUF_NULLABLE unsafe_arena_release_return_type();

  private:
  const ::krpc::schema::Type& _internal_return_type() const;
  ::krpc::schema::Type* PROTOBUF_NONNULL _internal_mutable_return_type();

  public:
  // bool return_is_nullable = 4;
  void clear_return_is_nullable() ;
  bool return_is_nullable() const;
  void set_return_is_nullable(bool value);

  private:
  bool _internal_return_is_nullable() const;
  void _internal_set_return_is_nullable(bool value);

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Procedure)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<3, 6,
                                   2, 47,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Procedure& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Parameter > parameters_;
    ::google::protobuf::RepeatedField<int> game_scenes_;
    ::google::protobuf::internal::CachedSize _game_scenes_cached_byte_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr documentation_;
    ::krpc::schema::Type* PROTOBUF_NULLABLE return_type_;
    bool return_is_nullable_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<22> Procedure_class_data_;
// -------------------------------------------------------------------

class StreamUpdate final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.StreamUpdate) */ {
 public:
  inline StreamUpdate() : StreamUpdate(nullptr) {}
  ~StreamUpdate() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamUpdate* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamUpdate));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR StreamUpdate(::google::protobuf::internal::ConstantInitialized);

  inline StreamUpdate(const StreamUpdate& from) : StreamUpdate(nullptr, from) {}
  inline StreamUpdate(StreamUpdate&& from) noexcept
      : StreamUpdate(nullptr, ::std::move(from)) {}
  inline StreamUpdate& operator=(const StreamUpdate& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamUpdate& operator=(StreamUpdate&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const StreamUpdate& default_instance() {
    return *reinterpret_cast<const StreamUpdate*>(
        &_StreamUpdate_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(StreamUpdate& a, StreamUpdate& b) { a.Swap(&b); }
  inline void Swap(StreamUpdate* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamUpdate* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  StreamUpdate* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<StreamUpdate>(arena);
  }
  void CopyFrom(const StreamUpdate& from);
  void MergeFrom(const StreamUpdate& from) { StreamUpdate::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamUpdate* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.StreamUpdate"; }

  explicit StreamUpdate(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamUpdate(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamUpdate& from);
  StreamUpdate(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamUpdate&& from) noexcept
      : StreamUpdate(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kResultsFieldNumber = 1,
  };
  // repeated .krpc.schema.StreamResult results = 1;
  int results_size() const;
  private:
  int _internal_results_size() const;

  public:
  void clear_results() ;
  ::krpc::schema::StreamResult* PROTOBUF_NONNULL mutable_results(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>* PROTOBUF_NONNULL mutable_results();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>& _internal_results() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>* PROTOBUF_NONNULL _internal_mutable_results();
  public:
  const ::krpc::schema::StreamResult& results(int index) const;
  ::krpc::schema::StreamResult* PROTOBUF_NONNULL add_results();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>& results() const;
  // @@protoc_insertion_point(class_scope:krpc.schema.StreamUpdate)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamUpdate& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::StreamResult > results_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<25> StreamUpdate_class_data_;
// -------------------------------------------------------------------

class Service final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Service) */ {
 public:
  inline Service() : Service(nullptr) {}
  ~Service() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Service* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Service));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Service(::google::protobuf::internal::ConstantInitialized);

  inline Service(const Service& from) : Service(nullptr, from) {}
  inline Service(Service&& from) noexcept
      : Service(nullptr, ::std::move(from)) {}
  inline Service& operator=(const Service& from) {
    CopyFrom(from);
    return *this;
  }
  inline Service& operator=(Service&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Service& default_instance() {
    return *reinterpret_cast<const Service*>(
        &_Service_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(Service& a, Service& b) { a.Swap(&b); }
  inline void Swap(Service* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Service* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Service* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Service>(arena);
  }
  void CopyFrom(const Service& from);
  void MergeFrom(const Service& from) { Service::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Service* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Service"; }

  explicit Service(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Service(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Service& from);
  Service(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Service&& from) noexcept
      : Service(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kProceduresFieldNumber = 2,
    kClassesFieldNumber = 3,
    kEnumerationsFieldNumber = 4,
    kExceptionsFieldNumber = 5,
    kNameFieldNumber = 1,
    kDocumentationFieldNumber = 6,
  };
  // repeated .krpc.schema.Procedure procedures = 2;
  int procedures_size() const;
  private:
  int _internal_procedures_size() const;

  public:
  void clear_procedures() ;
  ::krpc::schema::Procedure* PROTOBUF_NONNULL mutable_procedures(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>* PROTOBUF_NONNULL mutable_procedures();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>& _internal_procedures() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>* PROTOBUF_NONNULL _internal_mutable_procedures();
  public:
  const ::krpc::schema::Procedure& procedures(int index) const;
  ::krpc::schema::Procedure* PROTOBUF_NONNULL add_procedures();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>& procedures() const;
  // repeated .krpc.schema.Class classes = 3;
  int classes_size() const;
  private:
  int _internal_classes_size() const;

  public:
  void clear_classes() ;
  ::krpc::schema::Class* PROTOBUF_NONNULL mutable_classes(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>* PROTOBUF_NONNULL mutable_classes();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>& _internal_classes() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>* PROTOBUF_NONNULL _internal_mutable_classes();
  public:
  const ::krpc::schema::Class& classes(int index) const;
  ::krpc::schema::Class* PROTOBUF_NONNULL add_classes();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>& classes() const;
  // repeated .krpc.schema.Enumeration enumerations = 4;
  int enumerations_size() const;
  private:
  int _internal_enumerations_size() const;

  public:
  void clear_enumerations() ;
  ::krpc::schema::Enumeration* PROTOBUF_NONNULL mutable_enumerations(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>* PROTOBUF_NONNULL mutable_enumerations();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>& _internal_enumerations() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>* PROTOBUF_NONNULL _internal_mutable_enumerations();
  public:
  const ::krpc::schema::Enumeration& enumerations(int index) const;
  ::krpc::schema::Enumeration* PROTOBUF_NONNULL add_enumerations();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>& enumerations() const;
  // repeated .krpc.schema.Exception exceptions = 5;
  int exceptions_size() const;
  private:
  int _internal_exceptions_size() const;

  public:
  void clear_exceptions() ;
  ::krpc::schema::Exception* PROTOBUF_NONNULL mutable_exceptions(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>* PROTOBUF_NONNULL mutable_exceptions();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>& _internal_exceptions() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>* PROTOBUF_NONNULL _internal_mutable_exceptions();
  public:
  const ::krpc::schema::Exception& exceptions(int index) const;
  ::krpc::schema::Exception* PROTOBUF_NONNULL add_exceptions();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>& exceptions() const;
  // string name = 1;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string documentation = 6;
  void clear_documentation() ;
  const ::std::string& documentation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_documentation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_documentation();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_documentation();
  void set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_documentation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_documentation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_documentation();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.Service)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<3, 6,
                                   4, 45,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Service& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Procedure > procedures_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Class > classes_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Enumeration > enumerations_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Exception > exceptions_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr documentation_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<20> Service_class_data_;
// -------------------------------------------------------------------

class MultiplexedRequest final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.MultiplexedRequest) */ {
 public:
  inline MultiplexedRequest() : MultiplexedRequest(nullptr) {}
  ~MultiplexedRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MultiplexedRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MultiplexedRequest));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR MultiplexedRequest(::google::protobuf::internal::ConstantInitialized);

  inline MultiplexedRequest(const MultiplexedRequest& from) : MultiplexedRequest(nullptr, from) {}
  inline MultiplexedRequest(MultiplexedRequest&& from) noexcept
      : MultiplexedRequest(nullptr, ::std::move(from)) {}
  inline MultiplexedRequest& operator=(const MultiplexedRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiplexedRequest& operator=(MultiplexedRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const MultiplexedRequest& default_instance() {
    return *reinterpret_cast<const MultiplexedRequest*>(
        &_MultiplexedRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 27;
  friend void swap(MultiplexedRequest& a, MultiplexedRequest& b) { a.Swap(&b); }
  inline void Swap(MultiplexedRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MultiplexedRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  MultiplexedRequest* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<MultiplexedRequest>(arena);
  }
  void CopyFrom(const MultiplexedRequest& from);
  void MergeFrom(const MultiplexedRequest& from) { MultiplexedRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MultiplexedRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.MultiplexedRequest"; }

  explicit MultiplexedRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MultiplexedRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MultiplexedRequest& from);
  MultiplexedRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MultiplexedRequest&& from) noexcept
      : MultiplexedRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kConnectionRequestFieldNumber = 1,
    kRequestFieldNumber = 2,
  };
  // .krpc.schema.ConnectionRequest connection_request = 1;
  bool has_connection_request() const;
  void clear_connection_request() ;
  const ::krpc::schema::ConnectionRequest& connection_request() const;
  [[nodiscard]] ::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE release_connection_request();
  ::krpc::schema::ConnectionRequest* PROTOBUF_NONNULL mutable_connection_request();
  void set_allocated_connection_request(::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_connection_request(::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE value);
  ::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE unsafe_arena_release_connection_request();

  private:
  const ::krpc::schema::ConnectionRequest& _internal_connection_request() const;
  ::krpc::schema::ConnectionRequest* PROTOBUF_NONNULL _internal_mutable_connection_request();

  public:
  // .krpc.schema.Request request = 2;
  bool has_request() const;
  void clear_request() ;
  const ::krpc::schema::Request& request() const;
  [[nodiscard]] ::krpc::schema::Request* PROTOBUF_NULLABLE release_request();
  ::krpc::schema::Request* PROTOBUF_NONNULL mutable_request();
  void set_allocated_request(::krpc::schema::Request* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_request(::krpc::schema::Request* PROTOBUF_NULLABLE value);
  ::krpc::schema::Request* PROTOBUF_NULLABLE unsafe_arena_release_request();

  private:
  const ::krpc::schema::Request& _internal_request() const;
  ::krpc::schema::Request* PROTOBUF_NONNULL _internal_mutable_request();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.MultiplexedRequest)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   2, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MultiplexedRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE connection_request_;
    ::krpc::schema::Request* PROTOBUF_NULLABLE request_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<31> MultiplexedRequest_class_data_;
// -------------------------------------------------------------------

class Services final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.Services) */ {
 public:
  inline Services() : Services(nullptr) {}
  ~Services() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Services* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Services));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Services(::google::protobuf::internal::ConstantInitialized);

  inline Services(const Services& from) : Services(nullptr, from) {}
  inline Services(Services&& from) noexcept
      : Services(nullptr, ::std::move(from)) {}
  inline Services& operator=(const Services& from) {
    CopyFrom(from);
    return *this;
  }
  inline Services& operator=(Services&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const Services& default_instance() {
    return *reinterpret_cast<const Services*>(
        &_Services_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(Services& a, Services& b) { a.Swap(&b); }
  inline void Swap(Services* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Services* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Services* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Services>(arena);
  }
  void CopyFrom(const Services& from);
  void MergeFrom(const Services& from) { Services::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Services* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.Services"; }

  explicit Services(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Services(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Services& from);
  Services(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Services&& from) noexcept
      : Services(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kServicesFieldNumber = 1,
  };
  // repeated .krpc.schema.Service services = 1;
  int services_size() const;
  private:
  int _internal_services_size() const;

  public:
  void clear_services() ;
  ::krpc::schema::Service* PROTOBUF_NONNULL mutable_services(int index);
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>* PROTOBUF_NONNULL mutable_services();

  private:
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>& _internal_services() const;
  ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>* PROTOBUF_NONNULL _internal_mutable_services();
  public:
  const ::krpc::schema::Service& services(int index) const;
  ::krpc::schema::Service* PROTOBUF_NONNULL add_services();
  const ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>& services() const;
  // @@protoc_insertion_point(class_scope:krpc.schema.Services)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   1, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Services& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::krpc::schema::Service > services_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<21> Services_class_data_;
// -------------------------------------------------------------------

class MultiplexedResponse final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:krpc.schema.MultiplexedResponse) */ {
 public:
  inline MultiplexedResponse() : MultiplexedResponse(nullptr) {}
  ~MultiplexedResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MultiplexedResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MultiplexedResponse));
  }
#endif

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR MultiplexedResponse(::google::protobuf::internal::ConstantInitialized);

  inline MultiplexedResponse(const MultiplexedResponse& from) : MultiplexedResponse(nullptr, from) {}
  inline MultiplexedResponse(MultiplexedResponse&& from) noexcept
      : MultiplexedResponse(nullptr, ::std::move(from)) {}
  inline MultiplexedResponse& operator=(const MultiplexedResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiplexedResponse& operator=(MultiplexedResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const MultiplexedResponse& default_instance() {
    return *reinterpret_cast<const MultiplexedResponse*>(
        &_MultiplexedResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 28;
  friend void swap(MultiplexedResponse& a, MultiplexedResponse& b) { a.Swap(&b); }
  inline void Swap(MultiplexedResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MultiplexedResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  MultiplexedResponse* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<MultiplexedResponse>(arena);
  }
  void CopyFrom(const MultiplexedResponse& from);
  void MergeFrom(const MultiplexedResponse& from) { MultiplexedResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MultiplexedResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "krpc.schema.MultiplexedResponse"; }

  explicit MultiplexedResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MultiplexedResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MultiplexedResponse& from);
  MultiplexedResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MultiplexedResponse&& from) noexcept
      : MultiplexedResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_();

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

  // accessors -------------------------------------------------------
  enum : int {
    kResponseFieldNumber = 1,
    kStreamUpdateFieldNumber = 2,
  };
  // .krpc.schema.Response response = 1;
  bool has_response() const;
  void clear_response() ;
  const ::krpc::schema::Response& response() const;
  [[nodiscard]] ::krpc::schema::Response* PROTOBUF_NULLABLE release_response();
  ::krpc::schema::Response* PROTOBUF_NONNULL mutable_response();
  void set_allocated_response(::krpc::schema::Response* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_response(::krpc::schema::Response* PROTOBUF_NULLABLE value);
  ::krpc::schema::Response* PROTOBUF_NULLABLE unsafe_arena_release_response();

  private:
  const ::krpc::schema::Response& _internal_response() const;
  ::krpc::schema::Response* PROTOBUF_NONNULL _internal_mutable_response();

  public:
  // .krpc.schema.StreamUpdate stream_update = 2;
  bool has_stream_update() const;
  void clear_stream_update() ;
  const ::krpc::schema::StreamUpdate& stream_update() const;
  [[nodiscard]] ::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE release_stream_update();
  ::krpc::schema::StreamUpdate* PROTOBUF_NONNULL mutable_stream_update();
  void set_allocated_stream_update(::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_stream_update(::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE value);
  ::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE unsafe_arena_release_stream_update();

  private:
  const ::krpc::schema::StreamUpdate& _internal_stream_update() const;
  ::krpc::schema::StreamUpdate* PROTOBUF_NONNULL _internal_mutable_stream_update();

  public:
  // @@protoc_insertion_point(class_scope:krpc.schema.MultiplexedResponse)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   2, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MultiplexedResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::krpc::schema::Response* PROTOBUF_NULLABLE response_;
    ::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE stream_update_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_krpc_2eproto;
};

extern const ::google::protobuf::internal::ClassDataLite<32> MultiplexedResponse_class_data_;

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




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


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

// ConnectionRequest

// .krpc.schema.ConnectionRequest.Type type = 1;
inline void ConnectionRequest::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline ::krpc::schema::ConnectionRequest_Type ConnectionRequest::type() const {
  // @@protoc_insertion_point(field_get:krpc.schema.ConnectionRequest.type)
  return _internal_type();
}
inline void ConnectionRequest::set_type(::krpc::schema::ConnectionRequest_Type value) {
  _internal_set_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:krpc.schema.ConnectionRequest.type)
}
inline ::krpc::schema::ConnectionRequest_Type ConnectionRequest::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::krpc::schema::ConnectionRequest_Type>(_impl_.type_);
}
inline void ConnectionRequest::_internal_set_type(::krpc::schema::ConnectionRequest_Type value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_ = value;
}

// string client_name = 2;
inline void ConnectionRequest::clear_client_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& ConnectionRequest::client_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ConnectionRequest.client_name)
  return _internal_client_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ConnectionRequest::set_client_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.client_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ConnectionRequest.client_name)
}
inline ::std::string* PROTOBUF_NONNULL ConnectionRequest::mutable_client_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_client_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ConnectionRequest.client_name)
  return _s;
}
inline const ::std::string& ConnectionRequest::_internal_client_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_name_.Get();
}
inline void ConnectionRequest::_internal_set_client_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ConnectionRequest::_internal_mutable_client_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.client_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ConnectionRequest::release_client_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ConnectionRequest.client_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.client_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.client_name_.Set("", GetArena());
  }
  return released;
}
inline void ConnectionRequest::set_allocated_client_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.client_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.client_name_.IsDefault()) {
    _impl_.client_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ConnectionRequest.client_name)
}

// bytes client_identifier = 3;
inline void ConnectionRequest::clear_client_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_identifier_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& ConnectionRequest::client_identifier() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ConnectionRequest.client_identifier)
  return _internal_client_identifier();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ConnectionRequest::set_client_identifier(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.client_identifier_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ConnectionRequest.client_identifier)
}
inline ::std::string* PROTOBUF_NONNULL ConnectionRequest::mutable_client_identifier()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_client_identifier();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ConnectionRequest.client_identifier)
  return _s;
}
inline const ::std::string& ConnectionRequest::_internal_client_identifier() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_identifier_.Get();
}
inline void ConnectionRequest::_internal_set_client_identifier(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_identifier_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ConnectionRequest::_internal_mutable_client_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.client_identifier_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ConnectionRequest::release_client_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ConnectionRequest.client_identifier)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.client_identifier_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.client_identifier_.Set("", GetArena());
  }
  return released;
}
inline void ConnectionRequest::set_allocated_client_identifier(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.client_identifier_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.client_identifier_.IsDefault()) {
    _impl_.client_identifier_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ConnectionRequest.client_identifier)
}

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

// ConnectionResponse

// .krpc.schema.ConnectionResponse.Status status = 1;
inline void ConnectionResponse::clear_status() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.status_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline ::krpc::schema::ConnectionResponse_Status ConnectionResponse::status() const {
  // @@protoc_insertion_point(field_get:krpc.schema.ConnectionResponse.status)
  return _internal_status();
}
inline void ConnectionResponse::set_status(::krpc::schema::ConnectionResponse_Status value) {
  _internal_set_status(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:krpc.schema.ConnectionResponse.status)
}
inline ::krpc::schema::ConnectionResponse_Status ConnectionResponse::_internal_status() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::krpc::schema::ConnectionResponse_Status>(_impl_.status_);
}
inline void ConnectionResponse::_internal_set_status(::krpc::schema::ConnectionResponse_Status value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.status_ = value;
}

// string message = 2;
inline void ConnectionResponse::clear_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& ConnectionResponse::message() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ConnectionResponse.message)
  return _internal_message();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ConnectionResponse::set_message(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.message_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ConnectionResponse.message)
}
inline ::std::string* PROTOBUF_NONNULL ConnectionResponse::mutable_message()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ConnectionResponse.message)
  return _s;
}
inline const ::std::string& ConnectionResponse::_internal_message() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.message_.Get();
}
inline void ConnectionResponse::_internal_set_message(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ConnectionResponse::_internal_mutable_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.message_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ConnectionResponse::release_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ConnectionResponse.message)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.message_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.message_.Set("", GetArena());
  }
  return released;
}
inline void ConnectionResponse::set_allocated_message(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.message_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.message_.IsDefault()) {
    _impl_.message_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ConnectionResponse.message)
}

// bytes client_identifier = 3;
inline void ConnectionResponse::clear_client_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_identifier_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& ConnectionResponse::client_identifier() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ConnectionResponse.client_identifier)
  return _internal_client_identifier();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ConnectionResponse::set_client_identifier(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.client_identifier_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ConnectionResponse.client_identifier)
}
inline ::std::string* PROTOBUF_NONNULL ConnectionResponse::mutable_client_identifier()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_client_identifier();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ConnectionResponse.client_identifier)
  return _s;
}
inline const ::std::string& ConnectionResponse::_internal_client_identifier() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_identifier_.Get();
}
inline void ConnectionResponse::_internal_set_client_identifier(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_identifier_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ConnectionResponse::_internal_mutable_client_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.client_identifier_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ConnectionResponse::release_client_identifier() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ConnectionResponse.client_identifier)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.client_identifier_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.client_identifier_.Set("", GetArena());
  }
  return released;
}
inline void ConnectionResponse::set_allocated_client_identifier(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.client_identifier_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.client_identifier_.IsDefault()) {
    _impl_.client_identifier_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ConnectionResponse.client_identifier)
}

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

// Request

// repeated .krpc.schema.ProcedureCall calls = 1;
inline int Request::_internal_calls_size() const {
  return _internal_calls().size();
}
inline int Request::calls_size() const {
  return _internal_calls_size();
}
inline void Request::clear_calls() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.calls_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::ProcedureCall* PROTOBUF_NONNULL Request::mutable_calls(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Request.calls)
  return _internal_mutable_calls()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>* PROTOBUF_NONNULL Request::mutable_calls()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Request.calls)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_calls();
}
inline const ::krpc::schema::ProcedureCall& Request::calls(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Request.calls)
  return _internal_calls().Get(index);
}
inline ::krpc::schema::ProcedureCall* PROTOBUF_NONNULL Request::add_calls()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::ProcedureCall* _add =
      _internal_mutable_calls()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Request.calls)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>& Request::calls() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Request.calls)
  return _internal_calls();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>&
Request::_internal_calls() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.calls_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureCall>* PROTOBUF_NONNULL
Request::_internal_mutable_calls() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.calls_;
}

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

// ProcedureCall

// string service = 1;
inline void ProcedureCall::clear_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& ProcedureCall::service() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureCall.service)
  return _internal_service();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ProcedureCall::set_service(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.service_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ProcedureCall.service)
}
inline ::std::string* PROTOBUF_NONNULL ProcedureCall::mutable_service()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_service();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ProcedureCall.service)
  return _s;
}
inline const ::std::string& ProcedureCall::_internal_service() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_.Get();
}
inline void ProcedureCall::_internal_set_service(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ProcedureCall::_internal_mutable_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.service_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ProcedureCall::release_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ProcedureCall.service)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.service_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.service_.Set("", GetArena());
  }
  return released;
}
inline void ProcedureCall::set_allocated_service(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.service_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.service_.IsDefault()) {
    _impl_.service_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ProcedureCall.service)
}

// string procedure = 2;
inline void ProcedureCall::clear_procedure() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.procedure_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline const ::std::string& ProcedureCall::procedure() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureCall.procedure)
  return _internal_procedure();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ProcedureCall::set_procedure(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.procedure_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ProcedureCall.procedure)
}
inline ::std::string* PROTOBUF_NONNULL ProcedureCall::mutable_procedure()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_procedure();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ProcedureCall.procedure)
  return _s;
}
inline const ::std::string& ProcedureCall::_internal_procedure() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.procedure_.Get();
}
inline void ProcedureCall::_internal_set_procedure(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.procedure_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ProcedureCall::_internal_mutable_procedure() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.procedure_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ProcedureCall::release_procedure() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ProcedureCall.procedure)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.procedure_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.procedure_.Set("", GetArena());
  }
  return released;
}
inline void ProcedureCall::set_allocated_procedure(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.procedure_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.procedure_.IsDefault()) {
    _impl_.procedure_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ProcedureCall.procedure)
}

// uint32 service_id = 4;
inline void ProcedureCall::clear_service_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_id_ = 0u;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000008U);
}
inline ::uint32_t ProcedureCall::service_id() const {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureCall.service_id)
  return _internal_service_id();
}
inline void ProcedureCall::set_service_id(::uint32_t value) {
  _internal_set_service_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:krpc.schema.ProcedureCall.service_id)
}
inline ::uint32_t ProcedureCall::_internal_service_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_id_;
}
inline void ProcedureCall::_internal_set_service_id(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_id_ = value;
}

// uint32 procedure_id = 5;
inline void ProcedureCall::clear_procedure_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.procedure_id_ = 0u;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000010U);
}
inline ::uint32_t ProcedureCall::procedure_id() const {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureCall.procedure_id)
  return _internal_procedure_id();
}
inline void ProcedureCall::set_procedure_id(::uint32_t value) {
  _internal_set_procedure_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:krpc.schema.ProcedureCall.procedure_id)
}
inline ::uint32_t ProcedureCall::_internal_procedure_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.procedure_id_;
}
inline void ProcedureCall::_internal_set_procedure_id(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.procedure_id_ = value;
}

// repeated .krpc.schema.Argument arguments = 3;
inline int ProcedureCall::_internal_arguments_size() const {
  return _internal_arguments().size();
}
inline int ProcedureCall::arguments_size() const {
  return _internal_arguments_size();
}
inline void ProcedureCall::clear_arguments() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.arguments_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::Argument* PROTOBUF_NONNULL ProcedureCall::mutable_arguments(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.ProcedureCall.arguments)
  return _internal_mutable_arguments()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>* PROTOBUF_NONNULL ProcedureCall::mutable_arguments()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.ProcedureCall.arguments)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_arguments();
}
inline const ::krpc::schema::Argument& ProcedureCall::arguments(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureCall.arguments)
  return _internal_arguments().Get(index);
}
inline ::krpc::schema::Argument* PROTOBUF_NONNULL ProcedureCall::add_arguments()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Argument* _add =
      _internal_mutable_arguments()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.ProcedureCall.arguments)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>& ProcedureCall::arguments() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.ProcedureCall.arguments)
  return _internal_arguments();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>&
ProcedureCall::_internal_arguments() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.arguments_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Argument>* PROTOBUF_NONNULL
ProcedureCall::_internal_mutable_arguments() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.arguments_;
}

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

// Argument

// uint32 position = 1;
inline void Argument::clear_position() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.position_ = 0u;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::uint32_t Argument::position() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Argument.position)
  return _internal_position();
}
inline void Argument::set_position(::uint32_t value) {
  _internal_set_position(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:krpc.schema.Argument.position)
}
inline ::uint32_t Argument::_internal_position() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.position_;
}
inline void Argument::_internal_set_position(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.position_ = value;
}

// bytes value = 2;
inline void Argument::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& Argument::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Argument.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Argument::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.value_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Argument.value)
}
inline ::std::string* PROTOBUF_NONNULL Argument::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Argument.value)
  return _s;
}
inline const ::std::string& Argument::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void Argument::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Argument::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Argument::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Argument.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void Argument::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Argument.value)
}

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

// Response

// .krpc.schema.Error error = 1;
inline bool Response::has_error() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.error_ != nullptr);
  return value;
}
inline void Response::clear_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.error_ != nullptr) _impl_.error_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::krpc::schema::Error& Response::_internal_error() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Error* p = _impl_.error_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Error&>(::krpc::schema::_Error_default_instance_);
}
inline const ::krpc::schema::Error& Response::error() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Response.error)
  return _internal_error();
}
inline void Response::unsafe_arena_set_allocated_error(
    ::krpc::schema::Error* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.error_);
  }
  _impl_.error_ = reinterpret_cast<::krpc::schema::Error*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.Response.error)
}
inline ::krpc::schema::Error* PROTOBUF_NULLABLE Response::release_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Error* released = _impl_.error_;
  _impl_.error_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Error* PROTOBUF_NULLABLE Response::unsafe_arena_release_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Response.error)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Error* temp = _impl_.error_;
  _impl_.error_ = nullptr;
  return temp;
}
inline ::krpc::schema::Error* PROTOBUF_NONNULL Response::_internal_mutable_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.error_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Error>(GetArena());
    _impl_.error_ = reinterpret_cast<::krpc::schema::Error*>(p);
  }
  return _impl_.error_;
}
inline ::krpc::schema::Error* PROTOBUF_NONNULL Response::mutable_error()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Response.error)
  return _msg;
}
inline void Response::set_allocated_error(::krpc::schema::Error* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.error_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.error_ = reinterpret_cast<::krpc::schema::Error*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Response.error)
}

// repeated .krpc.schema.ProcedureResult results = 2;
inline int Response::_internal_results_size() const {
  return _internal_results().size();
}
inline int Response::results_size() const {
  return _internal_results_size();
}
inline void Response::clear_results() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.results_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL Response::mutable_results(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Response.results)
  return _internal_mutable_results()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>* PROTOBUF_NONNULL Response::mutable_results()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Response.results)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_results();
}
inline const ::krpc::schema::ProcedureResult& Response::results(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Response.results)
  return _internal_results().Get(index);
}
inline ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL Response::add_results()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::ProcedureResult* _add =
      _internal_mutable_results()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Response.results)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>& Response::results() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Response.results)
  return _internal_results();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>&
Response::_internal_results() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.results_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::ProcedureResult>* PROTOBUF_NONNULL
Response::_internal_mutable_results() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.results_;
}

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

// ProcedureResult

// .krpc.schema.Error error = 1;
inline bool ProcedureResult::has_error() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.error_ != nullptr);
  return value;
}
inline void ProcedureResult::clear_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.error_ != nullptr) _impl_.error_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::krpc::schema::Error& ProcedureResult::_internal_error() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Error* p = _impl_.error_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Error&>(::krpc::schema::_Error_default_instance_);
}
inline const ::krpc::schema::Error& ProcedureResult::error() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureResult.error)
  return _internal_error();
}
inline void ProcedureResult::unsafe_arena_set_allocated_error(
    ::krpc::schema::Error* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.error_);
  }
  _impl_.error_ = reinterpret_cast<::krpc::schema::Error*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.ProcedureResult.error)
}
inline ::krpc::schema::Error* PROTOBUF_NULLABLE ProcedureResult::release_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Error* released = _impl_.error_;
  _impl_.error_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Error* PROTOBUF_NULLABLE ProcedureResult::unsafe_arena_release_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ProcedureResult.error)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Error* temp = _impl_.error_;
  _impl_.error_ = nullptr;
  return temp;
}
inline ::krpc::schema::Error* PROTOBUF_NONNULL ProcedureResult::_internal_mutable_error() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.error_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Error>(GetArena());
    _impl_.error_ = reinterpret_cast<::krpc::schema::Error*>(p);
  }
  return _impl_.error_;
}
inline ::krpc::schema::Error* PROTOBUF_NONNULL ProcedureResult::mutable_error()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ProcedureResult.error)
  return _msg;
}
inline void ProcedureResult::set_allocated_error(::krpc::schema::Error* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.error_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.error_ = reinterpret_cast<::krpc::schema::Error*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ProcedureResult.error)
}

// bytes value = 2;
inline void ProcedureResult::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& ProcedureResult::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.ProcedureResult.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ProcedureResult::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.value_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.ProcedureResult.value)
}
inline ::std::string* PROTOBUF_NONNULL ProcedureResult::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:krpc.schema.ProcedureResult.value)
  return _s;
}
inline const ::std::string& ProcedureResult::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void ProcedureResult::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ProcedureResult::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ProcedureResult::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.ProcedureResult.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void ProcedureResult::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.ProcedureResult.value)
}

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

// Error

// string service = 1;
inline void Error::clear_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& Error::service() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Error.service)
  return _internal_service();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Error::set_service(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.service_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Error.service)
}
inline ::std::string* PROTOBUF_NONNULL Error::mutable_service()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_service();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Error.service)
  return _s;
}
inline const ::std::string& Error::_internal_service() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_.Get();
}
inline void Error::_internal_set_service(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Error::_internal_mutable_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.service_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Error::release_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Error.service)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.service_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.service_.Set("", GetArena());
  }
  return released;
}
inline void Error::set_allocated_service(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.service_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.service_.IsDefault()) {
    _impl_.service_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Error.service)
}

// string name = 2;
inline void Error::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& Error::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Error.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Error::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Error.name)
}
inline ::std::string* PROTOBUF_NONNULL Error::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Error.name)
  return _s;
}
inline const ::std::string& Error::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Error::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Error::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Error::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Error.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Error::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Error.name)
}

// string description = 3;
inline void Error::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline const ::std::string& Error::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Error.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Error::set_description(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Error.description)
}
inline ::std::string* PROTOBUF_NONNULL Error::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Error.description)
  return _s;
}
inline const ::std::string& Error::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.description_.Get();
}
inline void Error::_internal_set_description(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Error::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.description_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Error::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Error.description)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.description_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.description_.Set("", GetArena());
  }
  return released;
}
inline void Error::set_allocated_description(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.description_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.description_.IsDefault()) {
    _impl_.description_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Error.description)
}

// string stack_trace = 4;
inline void Error::clear_stack_trace() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stack_trace_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000008U);
}
inline const ::std::string& Error::stack_trace() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Error.stack_trace)
  return _internal_stack_trace();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Error::set_stack_trace(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.stack_trace_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Error.stack_trace)
}
inline ::std::string* PROTOBUF_NONNULL Error::mutable_stack_trace()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_stack_trace();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Error.stack_trace)
  return _s;
}
inline const ::std::string& Error::_internal_stack_trace() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stack_trace_.Get();
}
inline void Error::_internal_set_stack_trace(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stack_trace_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Error::_internal_mutable_stack_trace() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.stack_trace_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Error::release_stack_trace() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Error.stack_trace)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.stack_trace_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.stack_trace_.Set("", GetArena());
  }
  return released;
}
inline void Error::set_allocated_stack_trace(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.stack_trace_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.stack_trace_.IsDefault()) {
    _impl_.stack_trace_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Error.stack_trace)
}

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

// StreamUpdate

// repeated .krpc.schema.StreamResult results = 1;
inline int StreamUpdate::_internal_results_size() const {
  return _internal_results().size();
}
inline int StreamUpdate::results_size() const {
  return _internal_results_size();
}
inline void StreamUpdate::clear_results() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.results_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::StreamResult* PROTOBUF_NONNULL StreamUpdate::mutable_results(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.StreamUpdate.results)
  return _internal_mutable_results()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>* PROTOBUF_NONNULL StreamUpdate::mutable_results()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.StreamUpdate.results)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_results();
}
inline const ::krpc::schema::StreamResult& StreamUpdate::results(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.StreamUpdate.results)
  return _internal_results().Get(index);
}
inline ::krpc::schema::StreamResult* PROTOBUF_NONNULL StreamUpdate::add_results()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::StreamResult* _add =
      _internal_mutable_results()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.StreamUpdate.results)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>& StreamUpdate::results() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.StreamUpdate.results)
  return _internal_results();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>&
StreamUpdate::_internal_results() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.results_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::StreamResult>* PROTOBUF_NONNULL
StreamUpdate::_internal_mutable_results() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.results_;
}

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

// StreamResult

// uint64 id = 1;
inline void StreamResult::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::uint64_t StreamResult::id() const {
  // @@protoc_insertion_point(field_get:krpc.schema.StreamResult.id)
  return _internal_id();
}
inline void StreamResult::set_id(::uint64_t value) {
  _internal_set_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:krpc.schema.StreamResult.id)
}
inline ::uint64_t StreamResult::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_;
}
inline void StreamResult::_internal_set_id(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_ = value;
}

// .krpc.schema.ProcedureResult result = 2;
inline bool StreamResult::has_result() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.result_ != nullptr);
  return value;
}
inline void StreamResult::clear_result() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.result_ != nullptr) _impl_.result_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::krpc::schema::ProcedureResult& StreamResult::_internal_result() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::ProcedureResult* p = _impl_.result_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::ProcedureResult&>(::krpc::schema::_ProcedureResult_default_instance_);
}
inline const ::krpc::schema::ProcedureResult& StreamResult::result() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.StreamResult.result)
  return _internal_result();
}
inline void StreamResult::unsafe_arena_set_allocated_result(
    ::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.result_);
  }
  _impl_.result_ = reinterpret_cast<::krpc::schema::ProcedureResult*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.StreamResult.result)
}
inline ::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE StreamResult::release_result() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::ProcedureResult* released = _impl_.result_;
  _impl_.result_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE StreamResult::unsafe_arena_release_result() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.StreamResult.result)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::ProcedureResult* temp = _impl_.result_;
  _impl_.result_ = nullptr;
  return temp;
}
inline ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL StreamResult::_internal_mutable_result() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.result_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::ProcedureResult>(GetArena());
    _impl_.result_ = reinterpret_cast<::krpc::schema::ProcedureResult*>(p);
  }
  return _impl_.result_;
}
inline ::krpc::schema::ProcedureResult* PROTOBUF_NONNULL StreamResult::mutable_result()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::ProcedureResult* _msg = _internal_mutable_result();
  // @@protoc_insertion_point(field_mutable:krpc.schema.StreamResult.result)
  return _msg;
}
inline void StreamResult::set_allocated_result(::krpc::schema::ProcedureResult* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.result_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.result_ = reinterpret_cast<::krpc::schema::ProcedureResult*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.StreamResult.result)
}

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

// Services

// repeated .krpc.schema.Service services = 1;
inline int Services::_internal_services_size() const {
  return _internal_services().size();
}
inline int Services::services_size() const {
  return _internal_services_size();
}
inline void Services::clear_services() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.services_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::Service* PROTOBUF_NONNULL Services::mutable_services(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Services.services)
  return _internal_mutable_services()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>* PROTOBUF_NONNULL Services::mutable_services()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Services.services)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_services();
}
inline const ::krpc::schema::Service& Services::services(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Services.services)
  return _internal_services().Get(index);
}
inline ::krpc::schema::Service* PROTOBUF_NONNULL Services::add_services()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Service* _add =
      _internal_mutable_services()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Services.services)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>& Services::services() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Services.services)
  return _internal_services();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>&
Services::_internal_services() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.services_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Service>* PROTOBUF_NONNULL
Services::_internal_mutable_services() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.services_;
}

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

// Service

// string name = 1;
inline void Service::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000010U);
}
inline const ::std::string& Service::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Service.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Service::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Service.name)
}
inline ::std::string* PROTOBUF_NONNULL Service::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Service.name)
  return _s;
}
inline const ::std::string& Service::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Service::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Service::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Service::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Service.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Service::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Service.name)
}

// repeated .krpc.schema.Procedure procedures = 2;
inline int Service::_internal_procedures_size() const {
  return _internal_procedures().size();
}
inline int Service::procedures_size() const {
  return _internal_procedures_size();
}
inline void Service::clear_procedures() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.procedures_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::Procedure* PROTOBUF_NONNULL Service::mutable_procedures(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Service.procedures)
  return _internal_mutable_procedures()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>* PROTOBUF_NONNULL Service::mutable_procedures()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Service.procedures)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_procedures();
}
inline const ::krpc::schema::Procedure& Service::procedures(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Service.procedures)
  return _internal_procedures().Get(index);
}
inline ::krpc::schema::Procedure* PROTOBUF_NONNULL Service::add_procedures()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Procedure* _add =
      _internal_mutable_procedures()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Service.procedures)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>& Service::procedures() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Service.procedures)
  return _internal_procedures();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>&
Service::_internal_procedures() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.procedures_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Procedure>* PROTOBUF_NONNULL
Service::_internal_mutable_procedures() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.procedures_;
}

// repeated .krpc.schema.Class classes = 3;
inline int Service::_internal_classes_size() const {
  return _internal_classes().size();
}
inline int Service::classes_size() const {
  return _internal_classes_size();
}
inline void Service::clear_classes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.classes_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::krpc::schema::Class* PROTOBUF_NONNULL Service::mutable_classes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Service.classes)
  return _internal_mutable_classes()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>* PROTOBUF_NONNULL Service::mutable_classes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Service.classes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_classes();
}
inline const ::krpc::schema::Class& Service::classes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Service.classes)
  return _internal_classes().Get(index);
}
inline ::krpc::schema::Class* PROTOBUF_NONNULL Service::add_classes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Class* _add =
      _internal_mutable_classes()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:krpc.schema.Service.classes)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>& Service::classes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Service.classes)
  return _internal_classes();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>&
Service::_internal_classes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.classes_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Class>* PROTOBUF_NONNULL
Service::_internal_mutable_classes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.classes_;
}

// repeated .krpc.schema.Enumeration enumerations = 4;
inline int Service::_internal_enumerations_size() const {
  return _internal_enumerations().size();
}
inline int Service::enumerations_size() const {
  return _internal_enumerations_size();
}
inline void Service::clear_enumerations() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enumerations_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000004U);
}
inline ::krpc::schema::Enumeration* PROTOBUF_NONNULL Service::mutable_enumerations(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Service.enumerations)
  return _internal_mutable_enumerations()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>* PROTOBUF_NONNULL Service::mutable_enumerations()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Service.enumerations)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_enumerations();
}
inline const ::krpc::schema::Enumeration& Service::enumerations(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Service.enumerations)
  return _internal_enumerations().Get(index);
}
inline ::krpc::schema::Enumeration* PROTOBUF_NONNULL Service::add_enumerations()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Enumeration* _add =
      _internal_mutable_enumerations()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:krpc.schema.Service.enumerations)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>& Service::enumerations() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Service.enumerations)
  return _internal_enumerations();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>&
Service::_internal_enumerations() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enumerations_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Enumeration>* PROTOBUF_NONNULL
Service::_internal_mutable_enumerations() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.enumerations_;
}

// repeated .krpc.schema.Exception exceptions = 5;
inline int Service::_internal_exceptions_size() const {
  return _internal_exceptions().size();
}
inline int Service::exceptions_size() const {
  return _internal_exceptions_size();
}
inline void Service::clear_exceptions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.exceptions_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000008U);
}
inline ::krpc::schema::Exception* PROTOBUF_NONNULL Service::mutable_exceptions(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Service.exceptions)
  return _internal_mutable_exceptions()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>* PROTOBUF_NONNULL Service::mutable_exceptions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Service.exceptions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_exceptions();
}
inline const ::krpc::schema::Exception& Service::exceptions(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Service.exceptions)
  return _internal_exceptions().Get(index);
}
inline ::krpc::schema::Exception* PROTOBUF_NONNULL Service::add_exceptions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Exception* _add =
      _internal_mutable_exceptions()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_add:krpc.schema.Service.exceptions)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>& Service::exceptions() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Service.exceptions)
  return _internal_exceptions();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>&
Service::_internal_exceptions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.exceptions_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Exception>* PROTOBUF_NONNULL
Service::_internal_mutable_exceptions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.exceptions_;
}

// string documentation = 6;
inline void Service::clear_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000020U);
}
inline const ::std::string& Service::documentation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Service.documentation)
  return _internal_documentation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Service::set_documentation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.documentation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Service.documentation)
}
inline ::std::string* PROTOBUF_NONNULL Service::mutable_documentation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_documentation();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Service.documentation)
  return _s;
}
inline const ::std::string& Service::_internal_documentation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.documentation_.Get();
}
inline void Service::_internal_set_documentation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Service::_internal_mutable_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.documentation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Service::release_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Service.documentation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.documentation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.documentation_.Set("", GetArena());
  }
  return released;
}
inline void Service::set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.documentation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.documentation_.IsDefault()) {
    _impl_.documentation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Service.documentation)
}

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

// Procedure

// string name = 1;
inline void Procedure::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline const ::std::string& Procedure::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Procedure.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Procedure::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Procedure.name)
}
inline ::std::string* PROTOBUF_NONNULL Procedure::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Procedure.name)
  return _s;
}
inline const ::std::string& Procedure::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Procedure::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Procedure::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Procedure::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Procedure.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Procedure::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Procedure.name)
}

// repeated .krpc.schema.Parameter parameters = 2;
inline int Procedure::_internal_parameters_size() const {
  return _internal_parameters().size();
}
inline int Procedure::parameters_size() const {
  return _internal_parameters_size();
}
inline void Procedure::clear_parameters() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.parameters_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::Parameter* PROTOBUF_NONNULL Procedure::mutable_parameters(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Procedure.parameters)
  return _internal_mutable_parameters()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>* PROTOBUF_NONNULL Procedure::mutable_parameters()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Procedure.parameters)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_parameters();
}
inline const ::krpc::schema::Parameter& Procedure::parameters(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Procedure.parameters)
  return _internal_parameters().Get(index);
}
inline ::krpc::schema::Parameter* PROTOBUF_NONNULL Procedure::add_parameters()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Parameter* _add =
      _internal_mutable_parameters()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Procedure.parameters)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>& Procedure::parameters() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Procedure.parameters)
  return _internal_parameters();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>&
Procedure::_internal_parameters() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.parameters_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Parameter>* PROTOBUF_NONNULL
Procedure::_internal_mutable_parameters() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.parameters_;
}

// .krpc.schema.Type return_type = 3;
inline bool Procedure::has_return_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.return_type_ != nullptr);
  return value;
}
inline void Procedure::clear_return_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.return_type_ != nullptr) _impl_.return_type_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000010U);
}
inline const ::krpc::schema::Type& Procedure::_internal_return_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Type* p = _impl_.return_type_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Type&>(::krpc::schema::_Type_default_instance_);
}
inline const ::krpc::schema::Type& Procedure::return_type() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Procedure.return_type)
  return _internal_return_type();
}
inline void Procedure::unsafe_arena_set_allocated_return_type(
    ::krpc::schema::Type* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.return_type_);
  }
  _impl_.return_type_ = reinterpret_cast<::krpc::schema::Type*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.Procedure.return_type)
}
inline ::krpc::schema::Type* PROTOBUF_NULLABLE Procedure::release_return_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::krpc::schema::Type* released = _impl_.return_type_;
  _impl_.return_type_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Type* PROTOBUF_NULLABLE Procedure::unsafe_arena_release_return_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Procedure.return_type)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::krpc::schema::Type* temp = _impl_.return_type_;
  _impl_.return_type_ = nullptr;
  return temp;
}
inline ::krpc::schema::Type* PROTOBUF_NONNULL Procedure::_internal_mutable_return_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.return_type_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Type>(GetArena());
    _impl_.return_type_ = reinterpret_cast<::krpc::schema::Type*>(p);
  }
  return _impl_.return_type_;
}
inline ::krpc::schema::Type* PROTOBUF_NONNULL Procedure::mutable_return_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::krpc::schema::Type* _msg = _internal_mutable_return_type();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Procedure.return_type)
  return _msg;
}
inline void Procedure::set_allocated_return_type(::krpc::schema::Type* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.return_type_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.return_type_ = reinterpret_cast<::krpc::schema::Type*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Procedure.return_type)
}

// bool return_is_nullable = 4;
inline void Procedure::clear_return_is_nullable() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.return_is_nullable_ = false;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000020U);
}
inline bool Procedure::return_is_nullable() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Procedure.return_is_nullable)
  return _internal_return_is_nullable();
}
inline void Procedure::set_return_is_nullable(bool value) {
  _internal_set_return_is_nullable(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:krpc.schema.Procedure.return_is_nullable)
}
inline bool Procedure::_internal_return_is_nullable() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.return_is_nullable_;
}
inline void Procedure::_internal_set_return_is_nullable(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.return_is_nullable_ = value;
}

// repeated .krpc.schema.Procedure.GameScene game_scenes = 6;
inline int Procedure::_internal_game_scenes_size() const {
  return _internal_game_scenes().size();
}
inline int Procedure::game_scenes_size() const {
  return _internal_game_scenes_size();
}
inline void Procedure::clear_game_scenes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.game_scenes_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::krpc::schema::Procedure_GameScene Procedure::game_scenes(int index) const {
  // @@protoc_insertion_point(field_get:krpc.schema.Procedure.game_scenes)
  return static_cast<::krpc::schema::Procedure_GameScene>(_internal_game_scenes().Get(index));
}
inline void Procedure::set_game_scenes(int index, ::krpc::schema::Procedure_GameScene value) {
  _internal_mutable_game_scenes()->Set(index, value);
  // @@protoc_insertion_point(field_set:krpc.schema.Procedure.game_scenes)
}
inline void Procedure::add_game_scenes(::krpc::schema::Procedure_GameScene value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_game_scenes()->Add(value);
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:krpc.schema.Procedure.game_scenes)
}
inline const ::google::protobuf::RepeatedField<int>& Procedure::game_scenes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Procedure.game_scenes)
  return _internal_game_scenes();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL Procedure::mutable_game_scenes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Procedure.game_scenes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_game_scenes();
}
inline const ::google::protobuf::RepeatedField<int>& Procedure::_internal_game_scenes()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.game_scenes_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
Procedure::_internal_mutable_game_scenes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.game_scenes_;
}

// string documentation = 5;
inline void Procedure::clear_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000008U);
}
inline const ::std::string& Procedure::documentation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Procedure.documentation)
  return _internal_documentation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Procedure::set_documentation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.documentation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Procedure.documentation)
}
inline ::std::string* PROTOBUF_NONNULL Procedure::mutable_documentation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_documentation();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Procedure.documentation)
  return _s;
}
inline const ::std::string& Procedure::_internal_documentation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.documentation_.Get();
}
inline void Procedure::_internal_set_documentation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Procedure::_internal_mutable_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.documentation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Procedure::release_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Procedure.documentation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.documentation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.documentation_.Set("", GetArena());
  }
  return released;
}
inline void Procedure::set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.documentation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.documentation_.IsDefault()) {
    _impl_.documentation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Procedure.documentation)
}

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

// Parameter

// string name = 1;
inline void Parameter::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& Parameter::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Parameter.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Parameter::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Parameter.name)
}
inline ::std::string* PROTOBUF_NONNULL Parameter::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Parameter.name)
  return _s;
}
inline const ::std::string& Parameter::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Parameter::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Parameter::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Parameter::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Parameter.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Parameter::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Parameter.name)
}

// .krpc.schema.Type type = 2;
inline bool Parameter::has_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.type_ != nullptr);
  return value;
}
inline void Parameter::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.type_ != nullptr) _impl_.type_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline const ::krpc::schema::Type& Parameter::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Type* p = _impl_.type_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Type&>(::krpc::schema::_Type_default_instance_);
}
inline const ::krpc::schema::Type& Parameter::type() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Parameter.type)
  return _internal_type();
}
inline void Parameter::unsafe_arena_set_allocated_type(
    ::krpc::schema::Type* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.type_);
  }
  _impl_.type_ = reinterpret_cast<::krpc::schema::Type*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.Parameter.type)
}
inline ::krpc::schema::Type* PROTOBUF_NULLABLE Parameter::release_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::krpc::schema::Type* released = _impl_.type_;
  _impl_.type_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Type* PROTOBUF_NULLABLE Parameter::unsafe_arena_release_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Parameter.type)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::krpc::schema::Type* temp = _impl_.type_;
  _impl_.type_ = nullptr;
  return temp;
}
inline ::krpc::schema::Type* PROTOBUF_NONNULL Parameter::_internal_mutable_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.type_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Type>(GetArena());
    _impl_.type_ = reinterpret_cast<::krpc::schema::Type*>(p);
  }
  return _impl_.type_;
}
inline ::krpc::schema::Type* PROTOBUF_NONNULL Parameter::mutable_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::krpc::schema::Type* _msg = _internal_mutable_type();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Parameter.type)
  return _msg;
}
inline void Parameter::set_allocated_type(::krpc::schema::Type* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.type_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.type_ = reinterpret_cast<::krpc::schema::Type*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Parameter.type)
}

// bytes default_value = 3;
inline void Parameter::clear_default_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.default_value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& Parameter::default_value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Parameter.default_value)
  return _internal_default_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Parameter::set_default_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.default_value_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Parameter.default_value)
}
inline ::std::string* PROTOBUF_NONNULL Parameter::mutable_default_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_default_value();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Parameter.default_value)
  return _s;
}
inline const ::std::string& Parameter::_internal_default_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.default_value_.Get();
}
inline void Parameter::_internal_set_default_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.default_value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Parameter::_internal_mutable_default_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.default_value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Parameter::release_default_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Parameter.default_value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.default_value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.default_value_.Set("", GetArena());
  }
  return released;
}
inline void Parameter::set_allocated_default_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.default_value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.default_value_.IsDefault()) {
    _impl_.default_value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Parameter.default_value)
}

// bool nullable = 4;
inline void Parameter::clear_nullable() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nullable_ = false;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000008U);
}
inline bool Parameter::nullable() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Parameter.nullable)
  return _internal_nullable();
}
inline void Parameter::set_nullable(bool value) {
  _internal_set_nullable(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:krpc.schema.Parameter.nullable)
}
inline bool Parameter::_internal_nullable() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.nullable_;
}
inline void Parameter::_internal_set_nullable(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nullable_ = value;
}

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

// Class

// string name = 1;
inline void Class::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& Class::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Class.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Class::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Class.name)
}
inline ::std::string* PROTOBUF_NONNULL Class::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Class.name)
  return _s;
}
inline const ::std::string& Class::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Class::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Class::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Class::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Class.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Class::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Class.name)
}

// string documentation = 2;
inline void Class::clear_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& Class::documentation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Class.documentation)
  return _internal_documentation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Class::set_documentation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.documentation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Class.documentation)
}
inline ::std::string* PROTOBUF_NONNULL Class::mutable_documentation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_documentation();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Class.documentation)
  return _s;
}
inline const ::std::string& Class::_internal_documentation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.documentation_.Get();
}
inline void Class::_internal_set_documentation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Class::_internal_mutable_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.documentation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Class::release_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Class.documentation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.documentation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.documentation_.Set("", GetArena());
  }
  return released;
}
inline void Class::set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.documentation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.documentation_.IsDefault()) {
    _impl_.documentation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Class.documentation)
}

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

// Enumeration

// string name = 1;
inline void Enumeration::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& Enumeration::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Enumeration.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Enumeration::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Enumeration.name)
}
inline ::std::string* PROTOBUF_NONNULL Enumeration::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Enumeration.name)
  return _s;
}
inline const ::std::string& Enumeration::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Enumeration::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Enumeration::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Enumeration::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Enumeration.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Enumeration::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Enumeration.name)
}

// repeated .krpc.schema.EnumerationValue values = 2;
inline int Enumeration::_internal_values_size() const {
  return _internal_values().size();
}
inline int Enumeration::values_size() const {
  return _internal_values_size();
}
inline void Enumeration::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::EnumerationValue* PROTOBUF_NONNULL Enumeration::mutable_values(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Enumeration.values)
  return _internal_mutable_values()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>* PROTOBUF_NONNULL Enumeration::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Enumeration.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::krpc::schema::EnumerationValue& Enumeration::values(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Enumeration.values)
  return _internal_values().Get(index);
}
inline ::krpc::schema::EnumerationValue* PROTOBUF_NONNULL Enumeration::add_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::EnumerationValue* _add =
      _internal_mutable_values()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Enumeration.values)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>& Enumeration::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Enumeration.values)
  return _internal_values();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>&
Enumeration::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::EnumerationValue>* PROTOBUF_NONNULL
Enumeration::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

// string documentation = 3;
inline void Enumeration::clear_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline const ::std::string& Enumeration::documentation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Enumeration.documentation)
  return _internal_documentation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Enumeration::set_documentation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.documentation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Enumeration.documentation)
}
inline ::std::string* PROTOBUF_NONNULL Enumeration::mutable_documentation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_documentation();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Enumeration.documentation)
  return _s;
}
inline const ::std::string& Enumeration::_internal_documentation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.documentation_.Get();
}
inline void Enumeration::_internal_set_documentation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Enumeration::_internal_mutable_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.documentation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Enumeration::release_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Enumeration.documentation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.documentation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.documentation_.Set("", GetArena());
  }
  return released;
}
inline void Enumeration::set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.documentation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.documentation_.IsDefault()) {
    _impl_.documentation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Enumeration.documentation)
}

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

// EnumerationValue

// string name = 1;
inline void EnumerationValue::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& EnumerationValue::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.EnumerationValue.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnumerationValue::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.EnumerationValue.name)
}
inline ::std::string* PROTOBUF_NONNULL EnumerationValue::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.EnumerationValue.name)
  return _s;
}
inline const ::std::string& EnumerationValue::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void EnumerationValue::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnumerationValue::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnumerationValue::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.EnumerationValue.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void EnumerationValue::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.EnumerationValue.name)
}

// int32 value = 2;
inline void EnumerationValue::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline ::int32_t EnumerationValue::value() const {
  // @@protoc_insertion_point(field_get:krpc.schema.EnumerationValue.value)
  return _internal_value();
}
inline void EnumerationValue::set_value(::int32_t value) {
  _internal_set_value(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:krpc.schema.EnumerationValue.value)
}
inline ::int32_t EnumerationValue::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_;
}
inline void EnumerationValue::_internal_set_value(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_ = value;
}

// string documentation = 3;
inline void EnumerationValue::clear_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& EnumerationValue::documentation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.EnumerationValue.documentation)
  return _internal_documentation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void EnumerationValue::set_documentation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.documentation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.EnumerationValue.documentation)
}
inline ::std::string* PROTOBUF_NONNULL EnumerationValue::mutable_documentation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_documentation();
  // @@protoc_insertion_point(field_mutable:krpc.schema.EnumerationValue.documentation)
  return _s;
}
inline const ::std::string& EnumerationValue::_internal_documentation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.documentation_.Get();
}
inline void EnumerationValue::_internal_set_documentation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL EnumerationValue::_internal_mutable_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.documentation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE EnumerationValue::release_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.EnumerationValue.documentation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.documentation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.documentation_.Set("", GetArena());
  }
  return released;
}
inline void EnumerationValue::set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.documentation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.documentation_.IsDefault()) {
    _impl_.documentation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.EnumerationValue.documentation)
}

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

// Exception

// string name = 1;
inline void Exception::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& Exception::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Exception.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Exception::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Exception.name)
}
inline ::std::string* PROTOBUF_NONNULL Exception::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Exception.name)
  return _s;
}
inline const ::std::string& Exception::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Exception::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Exception::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Exception::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Exception.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Exception::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Exception.name)
}

// string documentation = 2;
inline void Exception::clear_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& Exception::documentation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Exception.documentation)
  return _internal_documentation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Exception::set_documentation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.documentation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Exception.documentation)
}
inline ::std::string* PROTOBUF_NONNULL Exception::mutable_documentation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_documentation();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Exception.documentation)
  return _s;
}
inline const ::std::string& Exception::_internal_documentation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.documentation_.Get();
}
inline void Exception::_internal_set_documentation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.documentation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Exception::_internal_mutable_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.documentation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Exception::release_documentation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Exception.documentation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.documentation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.documentation_.Set("", GetArena());
  }
  return released;
}
inline void Exception::set_allocated_documentation(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.documentation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.documentation_.IsDefault()) {
    _impl_.documentation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Exception.documentation)
}

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

// Type

// .krpc.schema.Type.TypeCode code = 1;
inline void Type::clear_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.code_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000008U);
}
inline ::krpc::schema::Type_TypeCode Type::code() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Type.code)
  return _internal_code();
}
inline void Type::set_code(::krpc::schema::Type_TypeCode value) {
  _internal_set_code(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:krpc.schema.Type.code)
}
inline ::krpc::schema::Type_TypeCode Type::_internal_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::krpc::schema::Type_TypeCode>(_impl_.code_);
}
inline void Type::_internal_set_code(::krpc::schema::Type_TypeCode value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.code_ = value;
}

// string service = 2;
inline void Type::clear_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& Type::service() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Type.service)
  return _internal_service();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Type::set_service(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.service_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Type.service)
}
inline ::std::string* PROTOBUF_NONNULL Type::mutable_service()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_service();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Type.service)
  return _s;
}
inline const ::std::string& Type::_internal_service() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_.Get();
}
inline void Type::_internal_set_service(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Type::_internal_mutable_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.service_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Type::release_service() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Type.service)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.service_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.service_.Set("", GetArena());
  }
  return released;
}
inline void Type::set_allocated_service(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.service_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.service_.IsDefault()) {
    _impl_.service_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Type.service)
}

// string name = 3;
inline void Type::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline const ::std::string& Type::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Type.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Type::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Type.name)
}
inline ::std::string* PROTOBUF_NONNULL Type::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Type.name)
  return _s;
}
inline const ::std::string& Type::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Type::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Type::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Type::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Type.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Type::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Type.name)
}

// repeated .krpc.schema.Type types = 4;
inline int Type::_internal_types_size() const {
  return _internal_types().size();
}
inline int Type::types_size() const {
  return _internal_types_size();
}
inline void Type::clear_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.types_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::Type* PROTOBUF_NONNULL Type::mutable_types(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Type.types)
  return _internal_mutable_types()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>* PROTOBUF_NONNULL Type::mutable_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Type.types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_types();
}
inline const ::krpc::schema::Type& Type::types(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Type.types)
  return _internal_types().Get(index);
}
inline ::krpc::schema::Type* PROTOBUF_NONNULL Type::add_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::Type* _add =
      _internal_mutable_types()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Type.types)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>& Type::types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Type.types)
  return _internal_types();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>&
Type::_internal_types() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.types_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::Type>* PROTOBUF_NONNULL
Type::_internal_mutable_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.types_;
}

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

// Tuple

// repeated bytes items = 1;
inline int Tuple::_internal_items_size() const {
  return _internal_items().size();
}
inline int Tuple::items_size() const {
  return _internal_items_size();
}
inline void Tuple::clear_items() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.items_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL Tuple::add_items()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_items()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:krpc.schema.Tuple.items)
  return _s;
}
inline const ::std::string& Tuple::items(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Tuple.items)
  return _internal_items().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL Tuple::mutable_items(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Tuple.items)
  return _internal_mutable_items()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void Tuple::set_items(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(*_internal_mutable_items()->Mutable(index), ::std::forward<Arg_>(value),
                        args... , ::google::protobuf::internal::BytesTag{});
  // @@protoc_insertion_point(field_set:krpc.schema.Tuple.items)
}
template <typename Arg_, typename... Args_>
inline void Tuple::add_items(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_items(), ::std::forward<Arg_>(value),
      args... , ::google::protobuf::internal::BytesTag{});
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Tuple.items)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& Tuple::items()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Tuple.items)
  return _internal_items();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Tuple::mutable_items() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Tuple.items)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_items();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
Tuple::_internal_items() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.items_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Tuple::_internal_mutable_items() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.items_;
}

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

// List

// repeated bytes items = 1;
inline int List::_internal_items_size() const {
  return _internal_items().size();
}
inline int List::items_size() const {
  return _internal_items_size();
}
inline void List::clear_items() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.items_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL List::add_items()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_items()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:krpc.schema.List.items)
  return _s;
}
inline const ::std::string& List::items(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.List.items)
  return _internal_items().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL List::mutable_items(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.List.items)
  return _internal_mutable_items()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void List::set_items(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(*_internal_mutable_items()->Mutable(index), ::std::forward<Arg_>(value),
                        args... , ::google::protobuf::internal::BytesTag{});
  // @@protoc_insertion_point(field_set:krpc.schema.List.items)
}
template <typename Arg_, typename... Args_>
inline void List::add_items(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_items(), ::std::forward<Arg_>(value),
      args... , ::google::protobuf::internal::BytesTag{});
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.List.items)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& List::items()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.List.items)
  return _internal_items();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
List::mutable_items() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.List.items)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_items();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
List::_internal_items() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.items_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
List::_internal_mutable_items() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.items_;
}

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

// Set

// repeated bytes items = 1;
inline int Set::_internal_items_size() const {
  return _internal_items().size();
}
inline int Set::items_size() const {
  return _internal_items_size();
}
inline void Set::clear_items() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.items_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL Set::add_items()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_items()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:krpc.schema.Set.items)
  return _s;
}
inline const ::std::string& Set::items(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Set.items)
  return _internal_items().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL Set::mutable_items(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Set.items)
  return _internal_mutable_items()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void Set::set_items(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(*_internal_mutable_items()->Mutable(index), ::std::forward<Arg_>(value),
                        args... , ::google::protobuf::internal::BytesTag{});
  // @@protoc_insertion_point(field_set:krpc.schema.Set.items)
}
template <typename Arg_, typename... Args_>
inline void Set::add_items(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_items(), ::std::forward<Arg_>(value),
      args... , ::google::protobuf::internal::BytesTag{});
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Set.items)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& Set::items()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Set.items)
  return _internal_items();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Set::mutable_items() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Set.items)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_items();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
Set::_internal_items() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.items_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
Set::_internal_mutable_items() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.items_;
}

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

// Dictionary

// repeated .krpc.schema.DictionaryEntry entries = 1;
inline int Dictionary::_internal_entries_size() const {
  return _internal_entries().size();
}
inline int Dictionary::entries_size() const {
  return _internal_entries_size();
}
inline void Dictionary::clear_entries() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.entries_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::krpc::schema::DictionaryEntry* PROTOBUF_NONNULL Dictionary::mutable_entries(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:krpc.schema.Dictionary.entries)
  return _internal_mutable_entries()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>* PROTOBUF_NONNULL Dictionary::mutable_entries()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:krpc.schema.Dictionary.entries)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_entries();
}
inline const ::krpc::schema::DictionaryEntry& Dictionary::entries(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Dictionary.entries)
  return _internal_entries().Get(index);
}
inline ::krpc::schema::DictionaryEntry* PROTOBUF_NONNULL Dictionary::add_entries()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::krpc::schema::DictionaryEntry* _add =
      _internal_mutable_entries()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:krpc.schema.Dictionary.entries)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>& Dictionary::entries() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:krpc.schema.Dictionary.entries)
  return _internal_entries();
}
inline const ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>&
Dictionary::_internal_entries() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.entries_;
}
inline ::google::protobuf::RepeatedPtrField<::krpc::schema::DictionaryEntry>* PROTOBUF_NONNULL
Dictionary::_internal_mutable_entries() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.entries_;
}

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

// DictionaryEntry

// bytes key = 1;
inline void DictionaryEntry::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& DictionaryEntry::key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.DictionaryEntry.key)
  return _internal_key();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DictionaryEntry::set_key(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.key_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.DictionaryEntry.key)
}
inline ::std::string* PROTOBUF_NONNULL DictionaryEntry::mutable_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_key();
  // @@protoc_insertion_point(field_mutable:krpc.schema.DictionaryEntry.key)
  return _s;
}
inline const ::std::string& DictionaryEntry::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_.Get();
}
inline void DictionaryEntry::_internal_set_key(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DictionaryEntry::_internal_mutable_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.key_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DictionaryEntry::release_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.DictionaryEntry.key)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.key_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.key_.Set("", GetArena());
  }
  return released;
}
inline void DictionaryEntry::set_allocated_key(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.key_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.key_.IsDefault()) {
    _impl_.key_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.DictionaryEntry.key)
}

// bytes value = 2;
inline void DictionaryEntry::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::std::string& DictionaryEntry::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.DictionaryEntry.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DictionaryEntry::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.value_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.DictionaryEntry.value)
}
inline ::std::string* PROTOBUF_NONNULL DictionaryEntry::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:krpc.schema.DictionaryEntry.value)
  return _s;
}
inline const ::std::string& DictionaryEntry::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void DictionaryEntry::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DictionaryEntry::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DictionaryEntry::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.DictionaryEntry.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void DictionaryEntry::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.DictionaryEntry.value)
}

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

// Stream

// uint64 id = 1;
inline void Stream::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::uint64_t Stream::id() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Stream.id)
  return _internal_id();
}
inline void Stream::set_id(::uint64_t value) {
  _internal_set_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:krpc.schema.Stream.id)
}
inline ::uint64_t Stream::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_;
}
inline void Stream::_internal_set_id(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_ = value;
}

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

// Event

// .krpc.schema.Stream stream = 1;
inline bool Event::has_stream() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.stream_ != nullptr);
  return value;
}
inline void Event::clear_stream() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stream_ != nullptr) _impl_.stream_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::krpc::schema::Stream& Event::_internal_stream() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Stream* p = _impl_.stream_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Stream&>(::krpc::schema::_Stream_default_instance_);
}
inline const ::krpc::schema::Stream& Event::stream() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Event.stream)
  return _internal_stream();
}
inline void Event::unsafe_arena_set_allocated_stream(
    ::krpc::schema::Stream* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stream_);
  }
  _impl_.stream_ = reinterpret_cast<::krpc::schema::Stream*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.Event.stream)
}
inline ::krpc::schema::Stream* PROTOBUF_NULLABLE Event::release_stream() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::Stream* released = _impl_.stream_;
  _impl_.stream_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Stream* PROTOBUF_NULLABLE Event::unsafe_arena_release_stream() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Event.stream)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::Stream* temp = _impl_.stream_;
  _impl_.stream_ = nullptr;
  return temp;
}
inline ::krpc::schema::Stream* PROTOBUF_NONNULL Event::_internal_mutable_stream() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stream_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Stream>(GetArena());
    _impl_.stream_ = reinterpret_cast<::krpc::schema::Stream*>(p);
  }
  return _impl_.stream_;
}
inline ::krpc::schema::Stream* PROTOBUF_NONNULL Event::mutable_stream()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::Stream* _msg = _internal_mutable_stream();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Event.stream)
  return _msg;
}
inline void Event::set_allocated_stream(::krpc::schema::Stream* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stream_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.stream_ = reinterpret_cast<::krpc::schema::Stream*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Event.stream)
}

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

// Status

// string version = 1;
inline void Status::clear_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& Status::version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.version)
  return _internal_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Status::set_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:krpc.schema.Status.version)
}
inline ::std::string* PROTOBUF_NONNULL Status::mutable_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_version();
  // @@protoc_insertion_point(field_mutable:krpc.schema.Status.version)
  return _s;
}
inline const ::std::string& Status::_internal_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.version_.Get();
}
inline void Status::_internal_set_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Status::_internal_mutable_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Status::release_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.Status.version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.version_.Set("", GetArena());
  }
  return released;
}
inline void Status::set_allocated_version(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.version_.IsDefault()) {
    _impl_.version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.Status.version)
}

// uint64 bytes_read = 2;
inline void Status::clear_bytes_read() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_read_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::uint64_t Status::bytes_read() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.bytes_read)
  return _internal_bytes_read();
}
inline void Status::set_bytes_read(::uint64_t value) {
  _internal_set_bytes_read(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.bytes_read)
}
inline ::uint64_t Status::_internal_bytes_read() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bytes_read_;
}
inline void Status::_internal_set_bytes_read(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_read_ = value;
}

// uint64 bytes_written = 3;
inline void Status::clear_bytes_written() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_written_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000004U);
}
inline ::uint64_t Status::bytes_written() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.bytes_written)
  return _internal_bytes_written();
}
inline void Status::set_bytes_written(::uint64_t value) {
  _internal_set_bytes_written(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.bytes_written)
}
inline ::uint64_t Status::_internal_bytes_written() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bytes_written_;
}
inline void Status::_internal_set_bytes_written(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_written_ = value;
}

// float bytes_read_rate = 4;
inline void Status::clear_bytes_read_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_read_rate_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000008U);
}
inline float Status::bytes_read_rate() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.bytes_read_rate)
  return _internal_bytes_read_rate();
}
inline void Status::set_bytes_read_rate(float value) {
  _internal_set_bytes_read_rate(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.bytes_read_rate)
}
inline float Status::_internal_bytes_read_rate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bytes_read_rate_;
}
inline void Status::_internal_set_bytes_read_rate(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_read_rate_ = value;
}

// float bytes_written_rate = 5;
inline void Status::clear_bytes_written_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_written_rate_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000010U);
}
inline float Status::bytes_written_rate() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.bytes_written_rate)
  return _internal_bytes_written_rate();
}
inline void Status::set_bytes_written_rate(float value) {
  _internal_set_bytes_written_rate(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.bytes_written_rate)
}
inline float Status::_internal_bytes_written_rate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bytes_written_rate_;
}
inline void Status::_internal_set_bytes_written_rate(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bytes_written_rate_ = value;
}

// uint64 rpcs_executed = 6;
inline void Status::clear_rpcs_executed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rpcs_executed_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000020U);
}
inline ::uint64_t Status::rpcs_executed() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.rpcs_executed)
  return _internal_rpcs_executed();
}
inline void Status::set_rpcs_executed(::uint64_t value) {
  _internal_set_rpcs_executed(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.rpcs_executed)
}
inline ::uint64_t Status::_internal_rpcs_executed() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.rpcs_executed_;
}
inline void Status::_internal_set_rpcs_executed(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rpcs_executed_ = value;
}

// float rpc_rate = 7;
inline void Status::clear_rpc_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rpc_rate_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000040U);
}
inline float Status::rpc_rate() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.rpc_rate)
  return _internal_rpc_rate();
}
inline void Status::set_rpc_rate(float value) {
  _internal_set_rpc_rate(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.rpc_rate)
}
inline float Status::_internal_rpc_rate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.rpc_rate_;
}
inline void Status::_internal_set_rpc_rate(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rpc_rate_ = value;
}

// bool one_rpc_per_update = 8;
inline void Status::clear_one_rpc_per_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.one_rpc_per_update_ = false;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000100U);
}
inline bool Status::one_rpc_per_update() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.one_rpc_per_update)
  return _internal_one_rpc_per_update();
}
inline void Status::set_one_rpc_per_update(bool value) {
  _internal_set_one_rpc_per_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.one_rpc_per_update)
}
inline bool Status::_internal_one_rpc_per_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.one_rpc_per_update_;
}
inline void Status::_internal_set_one_rpc_per_update(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.one_rpc_per_update_ = value;
}

// uint32 max_time_per_update = 9;
inline void Status::clear_max_time_per_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_time_per_update_ = 0u;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000080U);
}
inline ::uint32_t Status::max_time_per_update() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.max_time_per_update)
  return _internal_max_time_per_update();
}
inline void Status::set_max_time_per_update(::uint32_t value) {
  _internal_set_max_time_per_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.max_time_per_update)
}
inline ::uint32_t Status::_internal_max_time_per_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_time_per_update_;
}
inline void Status::_internal_set_max_time_per_update(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_time_per_update_ = value;
}

// bool adaptive_rate_control = 10;
inline void Status::clear_adaptive_rate_control() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.adaptive_rate_control_ = false;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000200U);
}
inline bool Status::adaptive_rate_control() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.adaptive_rate_control)
  return _internal_adaptive_rate_control();
}
inline void Status::set_adaptive_rate_control(bool value) {
  _internal_set_adaptive_rate_control(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.adaptive_rate_control)
}
inline bool Status::_internal_adaptive_rate_control() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.adaptive_rate_control_;
}
inline void Status::_internal_set_adaptive_rate_control(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.adaptive_rate_control_ = value;
}

// bool blocking_recv = 11;
inline void Status::clear_blocking_recv() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.blocking_recv_ = false;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000400U);
}
inline bool Status::blocking_recv() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.blocking_recv)
  return _internal_blocking_recv();
}
inline void Status::set_blocking_recv(bool value) {
  _internal_set_blocking_recv(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.blocking_recv)
}
inline bool Status::_internal_blocking_recv() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.blocking_recv_;
}
inline void Status::_internal_set_blocking_recv(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.blocking_recv_ = value;
}

// uint32 recv_timeout = 12;
inline void Status::clear_recv_timeout() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recv_timeout_ = 0u;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000800U);
}
inline ::uint32_t Status::recv_timeout() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.recv_timeout)
  return _internal_recv_timeout();
}
inline void Status::set_recv_timeout(::uint32_t value) {
  _internal_set_recv_timeout(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.recv_timeout)
}
inline ::uint32_t Status::_internal_recv_timeout() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.recv_timeout_;
}
inline void Status::_internal_set_recv_timeout(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recv_timeout_ = value;
}

// float time_per_rpc_update = 13;
inline void Status::clear_time_per_rpc_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.time_per_rpc_update_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00001000U);
}
inline float Status::time_per_rpc_update() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.time_per_rpc_update)
  return _internal_time_per_rpc_update();
}
inline void Status::set_time_per_rpc_update(float value) {
  _internal_set_time_per_rpc_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.time_per_rpc_update)
}
inline float Status::_internal_time_per_rpc_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.time_per_rpc_update_;
}
inline void Status::_internal_set_time_per_rpc_update(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.time_per_rpc_update_ = value;
}

// float poll_time_per_rpc_update = 14;
inline void Status::clear_poll_time_per_rpc_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.poll_time_per_rpc_update_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00002000U);
}
inline float Status::poll_time_per_rpc_update() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.poll_time_per_rpc_update)
  return _internal_poll_time_per_rpc_update();
}
inline void Status::set_poll_time_per_rpc_update(float value) {
  _internal_set_poll_time_per_rpc_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.poll_time_per_rpc_update)
}
inline float Status::_internal_poll_time_per_rpc_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.poll_time_per_rpc_update_;
}
inline void Status::_internal_set_poll_time_per_rpc_update(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.poll_time_per_rpc_update_ = value;
}

// float exec_time_per_rpc_update = 15;
inline void Status::clear_exec_time_per_rpc_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.exec_time_per_rpc_update_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00004000U);
}
inline float Status::exec_time_per_rpc_update() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.exec_time_per_rpc_update)
  return _internal_exec_time_per_rpc_update();
}
inline void Status::set_exec_time_per_rpc_update(float value) {
  _internal_set_exec_time_per_rpc_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.exec_time_per_rpc_update)
}
inline float Status::_internal_exec_time_per_rpc_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.exec_time_per_rpc_update_;
}
inline void Status::_internal_set_exec_time_per_rpc_update(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.exec_time_per_rpc_update_ = value;
}

// uint32 stream_rpcs = 16;
inline void Status::clear_stream_rpcs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_rpcs_ = 0u;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00008000U);
}
inline ::uint32_t Status::stream_rpcs() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.stream_rpcs)
  return _internal_stream_rpcs();
}
inline void Status::set_stream_rpcs(::uint32_t value) {
  _internal_set_stream_rpcs(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.stream_rpcs)
}
inline ::uint32_t Status::_internal_stream_rpcs() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stream_rpcs_;
}
inline void Status::_internal_set_stream_rpcs(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_rpcs_ = value;
}

// uint64 stream_rpcs_executed = 17;
inline void Status::clear_stream_rpcs_executed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_rpcs_executed_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0],
                  0x00010000U);
}
inline ::uint64_t Status::stream_rpcs_executed() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.stream_rpcs_executed)
  return _internal_stream_rpcs_executed();
}
inline void Status::set_stream_rpcs_executed(::uint64_t value) {
  _internal_set_stream_rpcs_executed(value);
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.stream_rpcs_executed)
}
inline ::uint64_t Status::_internal_stream_rpcs_executed() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stream_rpcs_executed_;
}
inline void Status::_internal_set_stream_rpcs_executed(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_rpcs_executed_ = value;
}

// float stream_rpc_rate = 18;
inline void Status::clear_stream_rpc_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_rpc_rate_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00020000U);
}
inline float Status::stream_rpc_rate() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.stream_rpc_rate)
  return _internal_stream_rpc_rate();
}
inline void Status::set_stream_rpc_rate(float value) {
  _internal_set_stream_rpc_rate(value);
  SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.stream_rpc_rate)
}
inline float Status::_internal_stream_rpc_rate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stream_rpc_rate_;
}
inline void Status::_internal_set_stream_rpc_rate(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_rpc_rate_ = value;
}

// float time_per_stream_update = 19;
inline void Status::clear_time_per_stream_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.time_per_stream_update_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00040000U);
}
inline float Status::time_per_stream_update() const {
  // @@protoc_insertion_point(field_get:krpc.schema.Status.time_per_stream_update)
  return _internal_time_per_stream_update();
}
inline void Status::set_time_per_stream_update(float value) {
  _internal_set_time_per_stream_update(value);
  SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  // @@protoc_insertion_point(field_set:krpc.schema.Status.time_per_stream_update)
}
inline float Status::_internal_time_per_stream_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.time_per_stream_update_;
}
inline void Status::_internal_set_time_per_stream_update(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.time_per_stream_update_ = value;
}

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

// MultiplexedRequest

// .krpc.schema.ConnectionRequest connection_request = 1;
inline bool MultiplexedRequest::has_connection_request() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.connection_request_ != nullptr);
  return value;
}
inline void MultiplexedRequest::clear_connection_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connection_request_ != nullptr) _impl_.connection_request_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::krpc::schema::ConnectionRequest& MultiplexedRequest::_internal_connection_request() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::ConnectionRequest* p = _impl_.connection_request_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::ConnectionRequest&>(::krpc::schema::_ConnectionRequest_default_instance_);
}
inline const ::krpc::schema::ConnectionRequest& MultiplexedRequest::connection_request() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.MultiplexedRequest.connection_request)
  return _internal_connection_request();
}
inline void MultiplexedRequest::unsafe_arena_set_allocated_connection_request(
    ::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connection_request_);
  }
  _impl_.connection_request_ = reinterpret_cast<::krpc::schema::ConnectionRequest*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.MultiplexedRequest.connection_request)
}
inline ::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE MultiplexedRequest::release_connection_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::ConnectionRequest* released = _impl_.connection_request_;
  _impl_.connection_request_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE MultiplexedRequest::unsafe_arena_release_connection_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.MultiplexedRequest.connection_request)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::ConnectionRequest* temp = _impl_.connection_request_;
  _impl_.connection_request_ = nullptr;
  return temp;
}
inline ::krpc::schema::ConnectionRequest* PROTOBUF_NONNULL MultiplexedRequest::_internal_mutable_connection_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connection_request_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::ConnectionRequest>(GetArena());
    _impl_.connection_request_ = reinterpret_cast<::krpc::schema::ConnectionRequest*>(p);
  }
  return _impl_.connection_request_;
}
inline ::krpc::schema::ConnectionRequest* PROTOBUF_NONNULL MultiplexedRequest::mutable_connection_request()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::ConnectionRequest* _msg = _internal_mutable_connection_request();
  // @@protoc_insertion_point(field_mutable:krpc.schema.MultiplexedRequest.connection_request)
  return _msg;
}
inline void MultiplexedRequest::set_allocated_connection_request(::krpc::schema::ConnectionRequest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connection_request_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.connection_request_ = reinterpret_cast<::krpc::schema::ConnectionRequest*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.MultiplexedRequest.connection_request)
}

// .krpc.schema.Request request = 2;
inline bool MultiplexedRequest::has_request() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.request_ != nullptr);
  return value;
}
inline void MultiplexedRequest::clear_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_ != nullptr) _impl_.request_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::krpc::schema::Request& MultiplexedRequest::_internal_request() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Request* p = _impl_.request_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Request&>(::krpc::schema::_Request_default_instance_);
}
inline const ::krpc::schema::Request& MultiplexedRequest::request() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.MultiplexedRequest.request)
  return _internal_request();
}
inline void MultiplexedRequest::unsafe_arena_set_allocated_request(
    ::krpc::schema::Request* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_);
  }
  _impl_.request_ = reinterpret_cast<::krpc::schema::Request*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.MultiplexedRequest.request)
}
inline ::krpc::schema::Request* PROTOBUF_NULLABLE MultiplexedRequest::release_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Request* released = _impl_.request_;
  _impl_.request_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Request* PROTOBUF_NULLABLE MultiplexedRequest::unsafe_arena_release_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.MultiplexedRequest.request)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Request* temp = _impl_.request_;
  _impl_.request_ = nullptr;
  return temp;
}
inline ::krpc::schema::Request* PROTOBUF_NONNULL MultiplexedRequest::_internal_mutable_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Request>(GetArena());
    _impl_.request_ = reinterpret_cast<::krpc::schema::Request*>(p);
  }
  return _impl_.request_;
}
inline ::krpc::schema::Request* PROTOBUF_NONNULL MultiplexedRequest::mutable_request()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::Request* _msg = _internal_mutable_request();
  // @@protoc_insertion_point(field_mutable:krpc.schema.MultiplexedRequest.request)
  return _msg;
}
inline void MultiplexedRequest::set_allocated_request(::krpc::schema::Request* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.request_ = reinterpret_cast<::krpc::schema::Request*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.MultiplexedRequest.request)
}

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

// MultiplexedResponse

// .krpc.schema.Response response = 1;
inline bool MultiplexedResponse::has_response() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.response_ != nullptr);
  return value;
}
inline void MultiplexedResponse::clear_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.response_ != nullptr) _impl_.response_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::krpc::schema::Response& MultiplexedResponse::_internal_response() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::Response* p = _impl_.response_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::Response&>(::krpc::schema::_Response_default_instance_);
}
inline const ::krpc::schema::Response& MultiplexedResponse::response() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.MultiplexedResponse.response)
  return _internal_response();
}
inline void MultiplexedResponse::unsafe_arena_set_allocated_response(
    ::krpc::schema::Response* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.response_);
  }
  _impl_.response_ = reinterpret_cast<::krpc::schema::Response*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.MultiplexedResponse.response)
}
inline ::krpc::schema::Response* PROTOBUF_NULLABLE MultiplexedResponse::release_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::Response* released = _impl_.response_;
  _impl_.response_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::Response* PROTOBUF_NULLABLE MultiplexedResponse::unsafe_arena_release_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.MultiplexedResponse.response)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::Response* temp = _impl_.response_;
  _impl_.response_ = nullptr;
  return temp;
}
inline ::krpc::schema::Response* PROTOBUF_NONNULL MultiplexedResponse::_internal_mutable_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.response_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::Response>(GetArena());
    _impl_.response_ = reinterpret_cast<::krpc::schema::Response*>(p);
  }
  return _impl_.response_;
}
inline ::krpc::schema::Response* PROTOBUF_NONNULL MultiplexedResponse::mutable_response()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::krpc::schema::Response* _msg = _internal_mutable_response();
  // @@protoc_insertion_point(field_mutable:krpc.schema.MultiplexedResponse.response)
  return _msg;
}
inline void MultiplexedResponse::set_allocated_response(::krpc::schema::Response* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.response_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.response_ = reinterpret_cast<::krpc::schema::Response*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.MultiplexedResponse.response)
}

// .krpc.schema.StreamUpdate stream_update = 2;
inline bool MultiplexedResponse::has_stream_update() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.stream_update_ != nullptr);
  return value;
}
inline void MultiplexedResponse::clear_stream_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stream_update_ != nullptr) _impl_.stream_update_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::krpc::schema::StreamUpdate& MultiplexedResponse::_internal_stream_update() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::krpc::schema::StreamUpdate* p = _impl_.stream_update_;
  return p != nullptr ? *p : reinterpret_cast<const ::krpc::schema::StreamUpdate&>(::krpc::schema::_StreamUpdate_default_instance_);
}
inline const ::krpc::schema::StreamUpdate& MultiplexedResponse::stream_update() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:krpc.schema.MultiplexedResponse.stream_update)
  return _internal_stream_update();
}
inline void MultiplexedResponse::unsafe_arena_set_allocated_stream_update(
    ::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stream_update_);
  }
  _impl_.stream_update_ = reinterpret_cast<::krpc::schema::StreamUpdate*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:krpc.schema.MultiplexedResponse.stream_update)
}
inline ::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE MultiplexedResponse::release_stream_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::StreamUpdate* released = _impl_.stream_update_;
  _impl_.stream_update_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE MultiplexedResponse::unsafe_arena_release_stream_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:krpc.schema.MultiplexedResponse.stream_update)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::StreamUpdate* temp = _impl_.stream_update_;
  _impl_.stream_update_ = nullptr;
  return temp;
}
inline ::krpc::schema::StreamUpdate* PROTOBUF_NONNULL MultiplexedResponse::_internal_mutable_stream_update() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stream_update_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::krpc::schema::StreamUpdate>(GetArena());
    _impl_.stream_update_ = reinterpret_cast<::krpc::schema::StreamUpdate*>(p);
  }
  return _impl_.stream_update_;
}
inline ::krpc::schema::StreamUpdate* PROTOBUF_NONNULL MultiplexedResponse::mutable_stream_update()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::krpc::schema::StreamUpdate* _msg = _internal_mutable_stream_update();
  // @@protoc_insertion_point(field_mutable:krpc.schema.MultiplexedResponse.stream_update)
  return _msg;
}
inline void MultiplexedResponse::set_allocated_stream_update(::krpc::schema::StreamUpdate* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stream_update_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.stream_update_ = reinterpret_cast<::krpc::schema::StreamUpdate*>(value);
  // @@protoc_insertion_point(field_set_allocated:krpc.schema.MultiplexedResponse.stream_update)
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace schema
}  // namespace krpc


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::krpc::schema::ConnectionRequest_Type> : std::true_type {};
template <>
struct is_proto_enum<::krpc::schema::ConnectionResponse_Status> : std::true_type {};
template <>
struct is_proto_enum<::krpc::schema::Procedure_GameScene> : std::true_type {};
template <>
struct is_proto_enum<::krpc::schema::Type_TypeCode> : std::true_type {};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // krpc_2eproto_2epb_2eh
