diff options
author | gritukan <gritukan@yandex-team.com> | 2023-08-04 22:15:31 +0300 |
---|---|---|
committer | gritukan <gritukan@yandex-team.com> | 2023-08-04 23:04:41 +0300 |
commit | 8ae4e32a94ece3ed932340bf2efe0677596ea2fe (patch) | |
tree | 07fdffe5798d6cf7cfadaf2e626912c480be0e0b | |
parent | a563c2cdaa73de61fe398c7fb2951292d26a844f (diff) | |
download | ydb-8ae4e32a94ece3ed932340bf2efe0677596ea2fe.tar.gz |
YT-19686: Introduce efficient TGuid <-> std::string proto conversions
-rw-r--r-- | yt/yt/core/misc/guid-inl.h | 20 | ||||
-rw-r--r-- | yt/yt/core/misc/guid.h | 7 |
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); //////////////////////////////////////////////////////////////////////////////// |