mirror of
https://github.com/protocolbuffers/protobuf
synced 2026-08-26 02:23:14 -04:00
This represents the future direction of protobuf, replacing proto2/proto3 syntax with editions. These will enable more incremental evolution of protobuf APIs through features, which are individual behaviors (such as whether field presence is explicit or implicit). For more details see https://protobuf.dev/editions/overview/. This PR contains a working implementation of editions for the protoc frontend and C++ code generation, along with various infrastructure improvements to support it. It gives early access for anyone who wants to a preview of editions, but has no effect on proto2/proto3 syntax. It is flag-guarded behind the `--experimental_editions` flag, and is an experimental feature with no guarantees. PiperOrigin-RevId: 544805690
295 lines
10 KiB
C++
295 lines
10 KiB
C++
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
// source: google/protobuf/cpp_features.proto
|
|
|
|
#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh
|
|
#define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh
|
|
|
|
#include <limits>
|
|
#include <string>
|
|
#include <type_traits>
|
|
|
|
#include "google/protobuf/port_def.inc"
|
|
#if PROTOBUF_VERSION < 4023000
|
|
#error "This file was generated by a newer version of protoc which is"
|
|
#error "incompatible with your Protocol Buffer headers. Please update"
|
|
#error "your headers."
|
|
#endif // PROTOBUF_VERSION
|
|
|
|
#if 4023000 < PROTOBUF_MIN_PROTOC_VERSION
|
|
#error "This file was generated by an older version of protoc which is"
|
|
#error "incompatible with your Protocol Buffer headers. Please"
|
|
#error "regenerate this file with a newer version of protoc."
|
|
#endif // PROTOBUF_MIN_PROTOC_VERSION
|
|
#include "google/protobuf/port_undef.inc"
|
|
#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/generated_message_reflection.h"
|
|
#include "google/protobuf/message.h"
|
|
#include "google/protobuf/repeated_field.h" // IWYU pragma: export
|
|
#include "google/protobuf/extension_set.h" // IWYU pragma: export
|
|
#include "google/protobuf/unknown_field_set.h"
|
|
#include "google/protobuf/descriptor.pb.h"
|
|
// @@protoc_insertion_point(includes)
|
|
|
|
// Must be included last.
|
|
#include "google/protobuf/port_def.inc"
|
|
|
|
#define PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fcpp_5ffeatures_2eproto PROTOBUF_EXPORT
|
|
|
|
namespace google {
|
|
namespace protobuf {
|
|
namespace internal {
|
|
class AnyMetadata;
|
|
} // namespace internal
|
|
} // namespace protobuf
|
|
} // namespace google
|
|
|
|
// Internal implementation detail -- do not use these members.
|
|
struct PROTOBUF_EXPORT TableStruct_google_2fprotobuf_2fcpp_5ffeatures_2eproto {
|
|
static const ::uint32_t offsets[];
|
|
};
|
|
PROTOBUF_EXPORT extern const ::google::protobuf::internal::DescriptorTable
|
|
descriptor_table_google_2fprotobuf_2fcpp_5ffeatures_2eproto;
|
|
namespace pb {
|
|
class CppFeatures;
|
|
struct CppFeaturesDefaultTypeInternal;
|
|
PROTOBUF_EXPORT extern CppFeaturesDefaultTypeInternal _CppFeatures_default_instance_;
|
|
} // namespace pb
|
|
namespace google {
|
|
namespace protobuf {
|
|
template <>
|
|
PROTOBUF_EXPORT ::pb::CppFeatures* Arena::CreateMaybeMessage<::pb::CppFeatures>(Arena*);
|
|
} // namespace protobuf
|
|
} // namespace google
|
|
|
|
namespace pb {
|
|
|
|
// ===================================================================
|
|
|
|
|
|
// -------------------------------------------------------------------
|
|
|
|
class PROTOBUF_EXPORT CppFeatures final :
|
|
public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:pb.CppFeatures) */ {
|
|
public:
|
|
inline CppFeatures() : CppFeatures(nullptr) {}
|
|
~CppFeatures() override;
|
|
template<typename = void>
|
|
explicit PROTOBUF_CONSTEXPR CppFeatures(::google::protobuf::internal::ConstantInitialized);
|
|
|
|
CppFeatures(const CppFeatures& from);
|
|
CppFeatures(CppFeatures&& from) noexcept
|
|
: CppFeatures() {
|
|
*this = ::std::move(from);
|
|
}
|
|
|
|
inline CppFeatures& operator=(const CppFeatures& from) {
|
|
CopyFrom(from);
|
|
return *this;
|
|
}
|
|
inline CppFeatures& operator=(CppFeatures&& from) noexcept {
|
|
if (this == &from) return *this;
|
|
if (GetOwningArena() == from.GetOwningArena()
|
|
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
|
|
&& GetOwningArena() != nullptr
|
|
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
|
|
) {
|
|
InternalSwap(&from);
|
|
} else {
|
|
CopyFrom(from);
|
|
}
|
|
return *this;
|
|
}
|
|
|
|
inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
|
|
return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
|
|
}
|
|
inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
|
|
return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
|
|
}
|
|
|
|
static const ::google::protobuf::Descriptor* descriptor() {
|
|
return GetDescriptor();
|
|
}
|
|
static const ::google::protobuf::Descriptor* GetDescriptor() {
|
|
return default_instance().GetMetadata().descriptor;
|
|
}
|
|
static const ::google::protobuf::Reflection* GetReflection() {
|
|
return default_instance().GetMetadata().reflection;
|
|
}
|
|
static const CppFeatures& default_instance() {
|
|
return *internal_default_instance();
|
|
}
|
|
static inline const CppFeatures* internal_default_instance() {
|
|
return reinterpret_cast<const CppFeatures*>(
|
|
&_CppFeatures_default_instance_);
|
|
}
|
|
static constexpr int kIndexInFileMessages =
|
|
0;
|
|
|
|
friend void swap(CppFeatures& a, CppFeatures& b) {
|
|
a.Swap(&b);
|
|
}
|
|
inline void Swap(CppFeatures* other) {
|
|
if (other == this) return;
|
|
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
|
|
if (GetOwningArena() != nullptr &&
|
|
GetOwningArena() == other->GetOwningArena()) {
|
|
#else // PROTOBUF_FORCE_COPY_IN_SWAP
|
|
if (GetOwningArena() == other->GetOwningArena()) {
|
|
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
|
|
InternalSwap(other);
|
|
} else {
|
|
::google::protobuf::internal::GenericSwap(this, other);
|
|
}
|
|
}
|
|
void UnsafeArenaSwap(CppFeatures* other) {
|
|
if (other == this) return;
|
|
ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
|
|
InternalSwap(other);
|
|
}
|
|
|
|
// implements Message ----------------------------------------------
|
|
|
|
CppFeatures* New(::google::protobuf::Arena* arena = nullptr) const final {
|
|
return CreateMaybeMessage<CppFeatures>(arena);
|
|
}
|
|
using ::google::protobuf::Message::CopyFrom;
|
|
void CopyFrom(const CppFeatures& from);
|
|
using ::google::protobuf::Message::MergeFrom;
|
|
void MergeFrom( const CppFeatures& from) {
|
|
CppFeatures::MergeImpl(*this, from);
|
|
}
|
|
private:
|
|
static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
|
|
public:
|
|
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
|
|
bool IsInitialized() const final;
|
|
|
|
::size_t ByteSizeLong() const final;
|
|
const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
|
|
::uint8_t* _InternalSerialize(
|
|
::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
|
|
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
|
|
|
|
private:
|
|
void SharedCtor(::google::protobuf::Arena* arena);
|
|
void SharedDtor();
|
|
void SetCachedSize(int size) const final;
|
|
void InternalSwap(CppFeatures* other);
|
|
|
|
private:
|
|
friend class ::google::protobuf::internal::AnyMetadata;
|
|
static ::absl::string_view FullMessageName() {
|
|
return "pb.CppFeatures";
|
|
}
|
|
protected:
|
|
explicit CppFeatures(::google::protobuf::Arena* arena);
|
|
public:
|
|
|
|
static const ClassData _class_data_;
|
|
const ::google::protobuf::Message::ClassData*GetClassData() const final;
|
|
|
|
::google::protobuf::Metadata GetMetadata() const final;
|
|
|
|
// nested types ----------------------------------------------------
|
|
|
|
// accessors -------------------------------------------------------
|
|
|
|
enum : int {
|
|
kLegacyClosedEnumFieldNumber = 1,
|
|
};
|
|
// optional bool legacy_closed_enum = 1 [retention = RETENTION_RUNTIME, targets = TARGET_TYPE_FIELD, targets = TARGET_TYPE_FILE, edition_defaults = {
|
|
bool has_legacy_closed_enum() const;
|
|
void clear_legacy_closed_enum() ;
|
|
bool legacy_closed_enum() const;
|
|
void set_legacy_closed_enum(bool value);
|
|
|
|
private:
|
|
bool _internal_legacy_closed_enum() const;
|
|
void _internal_set_legacy_closed_enum(bool value);
|
|
|
|
public:
|
|
// @@protoc_insertion_point(class_scope:pb.CppFeatures)
|
|
private:
|
|
class _Internal;
|
|
|
|
friend class ::google::protobuf::internal::TcParser;
|
|
static const ::google::protobuf::internal::TcParseTable<0, 1, 0, 0, 2> _table_;
|
|
template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
|
|
typedef void InternalArenaConstructable_;
|
|
typedef void DestructorSkippable_;
|
|
struct Impl_ {
|
|
::google::protobuf::internal::HasBits<1> _has_bits_;
|
|
mutable ::google::protobuf::internal::CachedSize _cached_size_;
|
|
bool legacy_closed_enum_;
|
|
PROTOBUF_TSAN_DECLARE_MEMBER;
|
|
};
|
|
union { Impl_ _impl_; };
|
|
friend struct ::TableStruct_google_2fprotobuf_2fcpp_5ffeatures_2eproto;
|
|
};
|
|
|
|
// ===================================================================
|
|
|
|
|
|
|
|
static const int kCppFieldNumber = 1000;
|
|
PROTOBUF_EXPORT extern ::google::protobuf::internal::ExtensionIdentifier< ::google::protobuf::FeatureSet,
|
|
::google::protobuf::internal::MessageTypeTraits< ::pb::CppFeatures >, 11, false >
|
|
cpp;
|
|
|
|
// ===================================================================
|
|
|
|
|
|
#ifdef __GNUC__
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
|
|
#endif // __GNUC__
|
|
// -------------------------------------------------------------------
|
|
|
|
// CppFeatures
|
|
|
|
// optional bool legacy_closed_enum = 1 [retention = RETENTION_RUNTIME, targets = TARGET_TYPE_FIELD, targets = TARGET_TYPE_FILE, edition_defaults = {
|
|
inline bool CppFeatures::has_legacy_closed_enum() const {
|
|
bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
|
|
return value;
|
|
}
|
|
inline void CppFeatures::clear_legacy_closed_enum() {
|
|
_impl_.legacy_closed_enum_ = false;
|
|
_impl_._has_bits_[0] &= ~0x00000001u;
|
|
}
|
|
inline bool CppFeatures::legacy_closed_enum() const {
|
|
// @@protoc_insertion_point(field_get:pb.CppFeatures.legacy_closed_enum)
|
|
return _internal_legacy_closed_enum();
|
|
}
|
|
inline void CppFeatures::set_legacy_closed_enum(bool value) {
|
|
_internal_set_legacy_closed_enum(value);
|
|
// @@protoc_insertion_point(field_set:pb.CppFeatures.legacy_closed_enum)
|
|
}
|
|
inline bool CppFeatures::_internal_legacy_closed_enum() const {
|
|
PROTOBUF_TSAN_READ_PRIMITIVE(&_impl_._tsan_detect_race);
|
|
return _impl_.legacy_closed_enum_;
|
|
}
|
|
inline void CppFeatures::_internal_set_legacy_closed_enum(bool value) {
|
|
PROTOBUF_TSAN_WRITE_PRIMITIVE(&_impl_._tsan_detect_race);
|
|
_impl_._has_bits_[0] |= 0x00000001u;
|
|
_impl_.legacy_closed_enum_ = value;
|
|
}
|
|
|
|
#ifdef __GNUC__
|
|
#pragma GCC diagnostic pop
|
|
#endif // __GNUC__
|
|
|
|
// @@protoc_insertion_point(namespace_scope)
|
|
} // namespace pb
|
|
|
|
|
|
// @@protoc_insertion_point(global_scope)
|
|
|
|
#include "google/protobuf/port_undef.inc"
|
|
|
|
#endif // GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh
|