aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/protobuf/src
diff options
context:
space:
mode:
authorvadim-xd <vadim-xd@yandex-team.com>2024-10-29 23:26:02 +0300
committervadim-xd <vadim-xd@yandex-team.com>2024-10-29 23:37:18 +0300
commitc0831b65c047f0894f63562b9da3024dfa779baf (patch)
tree81aded4973d6396774de89e8c5bc0796307628d5 /contrib/libs/protobuf/src
parentfa653f89746744964114f44dce53c0f6ffb6deba (diff)
downloadydb-c0831b65c047f0894f63562b9da3024dfa779baf.tar.gz
[protobuf] Restore methods with std::string_view
commit_hash:abb56697e948fac46777acec62a62b40767ea74d
Diffstat (limited to 'contrib/libs/protobuf/src')
-rw-r--r--contrib/libs/protobuf/src/google/protobuf/arenastring.cc5
-rw-r--r--contrib/libs/protobuf/src/google/protobuf/arenastring.h19
2 files changed, 19 insertions, 5 deletions
diff --git a/contrib/libs/protobuf/src/google/protobuf/arenastring.cc b/contrib/libs/protobuf/src/google/protobuf/arenastring.cc
index 4c4eb75da1..f466d542d9 100644
--- a/contrib/libs/protobuf/src/google/protobuf/arenastring.cc
+++ b/contrib/libs/protobuf/src/google/protobuf/arenastring.cc
@@ -96,7 +96,8 @@ class ScopedCheckPtrInvariants {
#endif // NDEBUG || !GOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL
// Creates a heap allocated TProtoStringType value.
-inline TaggedStringPtr CreateString(const TProtoStringType& value) {
+template <typename TArg>
+inline TaggedStringPtr CreateString(const TArg& value) {
TaggedStringPtr res;
res.SetAllocated(new TProtoStringType(value));
return res;
@@ -115,7 +116,7 @@ TaggedStringPtr CreateArenaString(Arena& arena, y_absl::string_view s) {
} // namespace
-void ArenaStringPtr::Set(const TProtoStringType& value, Arena* arena) {
+void ArenaStringPtr::Set(y_absl::string_view value, Arena* arena) {
ScopedCheckPtrInvariants check(&tagged_ptr_);
if (IsDefault()) {
// If we're not on an arena, skip straight to a true string to avoid
diff --git a/contrib/libs/protobuf/src/google/protobuf/arenastring.h b/contrib/libs/protobuf/src/google/protobuf/arenastring.h
index 62a1ae3d4a..edee6ef4cb 100644
--- a/contrib/libs/protobuf/src/google/protobuf/arenastring.h
+++ b/contrib/libs/protobuf/src/google/protobuf/arenastring.h
@@ -259,19 +259,28 @@ struct PROTOBUF_EXPORT ArenaStringPtr {
// instance known to not carry any heap allocated value.
inline void InitAllocated(TProtoStringType* str, Arena* arena);
- void Set(const TProtoStringType& value, Arena* arena);
+ void Set(y_absl::string_view value, Arena* arena);
void Set(TProtoStringType&& value, Arena* arena);
template <typename... OverloadDisambiguator>
void Set(const TProtoStringType& value, Arena* arena);
void Set(const char* s, Arena* arena);
void Set(const char* s, size_t n, Arena* arena);
+ void Set(std::string&& value, Arena* arena) {
+ return Set(TProtoStringType(std::move(value)), arena);
+ }
+
+ void SetBytes(y_absl::string_view value, Arena* arena);
void SetBytes(TProtoStringType&& value, Arena* arena);
template <typename... OverloadDisambiguator>
void SetBytes(const TProtoStringType& value, Arena* arena);
void SetBytes(const char* s, Arena* arena);
void SetBytes(const void* p, size_t n, Arena* arena);
+ void SetBytes(std::string&& value, Arena* arena) {
+ return SetBytes(TProtoStringType(std::move(value)), arena);
+ }
+
template <typename RefWrappedType>
void Set(std::reference_wrapper<RefWrappedType> const_string_ref,
::google::protobuf::Arena* arena) {
@@ -413,7 +422,11 @@ inline void ArenaStringPtr::Set(const char* s, Arena* arena) {
}
inline void ArenaStringPtr::Set(const char* s, size_t n, Arena* arena) {
- Set(TProtoStringType(s, s + n), arena);
+ Set(y_absl::string_view{s, n}, arena);
+}
+
+inline void ArenaStringPtr::SetBytes(y_absl::string_view value, Arena* arena) {
+ Set(value, arena);
}
template <>
@@ -434,7 +447,7 @@ inline void ArenaStringPtr::SetBytes(const char* s, Arena* arena) {
}
inline void ArenaStringPtr::SetBytes(const void* p, size_t n, Arena* arena) {
- Set(TProtoStringType(static_cast<const char*>(p), static_cast<const char*>(p) + n), arena);
+ Set(y_absl::string_view{static_cast<const char*>(p), n}, arena);
}
// Make sure rhs_arena allocated rhs, and lhs_arena allocated lhs.