aboutsummaryrefslogtreecommitdiffstats
path: root/yt
diff options
context:
space:
mode:
authorgritukan <gritukan@yandex-team.com>2023-08-04 22:15:31 +0300
committergritukan <gritukan@yandex-team.com>2023-08-04 23:04:41 +0300
commit8ae4e32a94ece3ed932340bf2efe0677596ea2fe (patch)
tree07fdffe5798d6cf7cfadaf2e626912c480be0e0b /yt
parenta563c2cdaa73de61fe398c7fb2951292d26a844f (diff)
downloadydb-8ae4e32a94ece3ed932340bf2efe0677596ea2fe.tar.gz
YT-19686: Introduce efficient TGuid <-> std::string proto conversions
Diffstat (limited to 'yt')
-rw-r--r--yt/yt/core/misc/guid-inl.h20
-rw-r--r--yt/yt/core/misc/guid.h7
2 files changed, 22 insertions, 5 deletions
diff --git a/yt/yt/core/misc/guid-inl.h b/yt/yt/core/misc/guid-inl.h
index 6002a1cfa7..bb991c1c55 100644
--- a/yt/yt/core/misc/guid-inl.h
+++ b/yt/yt/core/misc/guid-inl.h
@@ -20,14 +20,28 @@ Y_FORCE_INLINE void FromProto(TGuid* guid, const NYT::NProto::TGuid& protoGuid)
guid->Parts64[1] = protoGuid.second();
}
-Y_FORCE_INLINE void ToProto(TProtoStringType* protoGuid, TGuid guid)
+Y_FORCE_INLINE void ToProto(TString* protoGuid, TGuid guid)
{
*protoGuid = guid ? ToString(guid) : TString();
}
-Y_FORCE_INLINE void FromProto(TGuid* guid, const TProtoStringType& protoGuid)
+Y_FORCE_INLINE void FromProto(TGuid* guid, const TString& protoGuid)
{
- *guid = protoGuid ? TGuid::FromString(protoGuid) : TGuid();
+ *guid = protoGuid.empty() ? TGuid() : TGuid::FromString(protoGuid);
+}
+
+Y_FORCE_INLINE void ToProto(std::string* protoGuid, TGuid guid)
+{
+ if (guid) {
+ *protoGuid = std::move(ToString(guid).MutRef());
+ } else {
+ protoGuid->clear();
+ }
+}
+
+Y_FORCE_INLINE void FromProto(TGuid* guid, const std::string& protoGuid)
+{
+ *guid = protoGuid.empty() ? TGuid() : TGuid::FromString(protoGuid);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/core/misc/guid.h b/yt/yt/core/misc/guid.h
index 66ab218880..db2c677f43 100644
--- a/yt/yt/core/misc/guid.h
+++ b/yt/yt/core/misc/guid.h
@@ -15,8 +15,11 @@ namespace NYT {
void ToProto(NProto::TGuid* protoGuid, TGuid guid);
void FromProto(TGuid* guid, const NProto::TGuid& protoGuid);
-void ToProto(TProtoStringType* protoGuid, TGuid guid);
-void FromProto(TGuid* guid, const TProtoStringType& protoGuid);
+void ToProto(TString* protoGuid, TGuid guid);
+void FromProto(TGuid* guid, const TString& protoGuid);
+
+void ToProto(std::string* protoGuid, TGuid guid);
+void FromProto(TGuid* guid, const std::string& protoGuid);
////////////////////////////////////////////////////////////////////////////////