diff options
author | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2023-12-05 14:44:02 +0300 |
---|---|---|
committer | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2023-12-05 15:47:34 +0300 |
commit | d7830d26621b08d508ba92fccf9e4971cc8ded61 (patch) | |
tree | 231e17a9b97711289a1eb59a7fad4e140e26c515 /yt | |
parent | 496b43dd6e141cae303b3a4c727cabc0d04ed1ae (diff) | |
download | ydb-d7830d26621b08d508ba92fccf9e4971cc8ded61.tar.gz |
YT-20547: OperationId is strongly typed
Diffstat (limited to 'yt')
-rw-r--r-- | yt/yt/client/driver/scheduler_commands.h | 5 | ||||
-rw-r--r-- | yt/yt/client/job_tracker_client/public.h | 3 | ||||
-rw-r--r-- | yt/yt/client/object_client/public.h | 3 | ||||
-rw-r--r-- | yt/yt/client/scheduler/operation_id_or_alias.cpp | 2 | ||||
-rw-r--r-- | yt/yt/core/ytree/yson_serializable-inl.h | 5 | ||||
-rw-r--r-- | yt/yt/core/ytree/yson_struct_detail-inl.h | 6 |
6 files changed, 13 insertions, 11 deletions
diff --git a/yt/yt/client/driver/scheduler_commands.h b/yt/yt/client/driver/scheduler_commands.h index 28f68fd757..b0daea15fb 100644 --- a/yt/yt/client/driver/scheduler_commands.h +++ b/yt/yt/client/driver/scheduler_commands.h @@ -35,8 +35,9 @@ public: .Default(); registrar.Postprocessor([] (TThis* command) { - if (!command->OperationId.IsEmpty() && command->OperationAlias.operator bool() || - command->OperationId.IsEmpty() && !command->OperationAlias.operator bool()) + auto operationId = command->OperationId; + if (operationId && command->OperationAlias.has_value() || + !operationId && !command->OperationAlias.has_value()) { THROW_ERROR_EXCEPTION("Exactly one of \"operation_id\" and \"operation_alias\" should be set") << TErrorAttribute("operation_id", command->OperationId) diff --git a/yt/yt/client/job_tracker_client/public.h b/yt/yt/client/job_tracker_client/public.h index 984fa0fcec..5e1886f458 100644 --- a/yt/yt/client/job_tracker_client/public.h +++ b/yt/yt/client/job_tracker_client/public.h @@ -12,7 +12,8 @@ YT_DEFINE_STRONG_TYPEDEF(TJobId, TGuid); extern const TJobId NullJobId; -using TOperationId = TGuid; +YT_DEFINE_STRONG_TYPEDEF(TOperationId, TGuid); + extern const TOperationId NullOperationId; //////////////////////////////////////////////////////////////////////////////// diff --git a/yt/yt/client/object_client/public.h b/yt/yt/client/object_client/public.h index d8f98323f6..1d002cdc36 100644 --- a/yt/yt/client/object_client/public.h +++ b/yt/yt/client/object_client/public.h @@ -5,6 +5,7 @@ #include <library/cpp/yt/misc/hash.h> #include <yt/yt/client/election/public.h> +#include <yt/yt/client/job_tracker_client/public.h> #include <library/cpp/yt/misc/strong_typedef.h> @@ -345,7 +346,7 @@ constexpr EObjectType MaxErasureJournalChunkPartType = EObjectType::ErasureJourn using TTransactionId = TObjectId; constexpr TTransactionId NullTransactionId = {}; -using TOperationId = TObjectId; +using NJobTrackerClient::TOperationId; //////////////////////////////////////////////////////////////////////////////// diff --git a/yt/yt/client/scheduler/operation_id_or_alias.cpp b/yt/yt/client/scheduler/operation_id_or_alias.cpp index 4a64364815..5711c11c69 100644 --- a/yt/yt/client/scheduler/operation_id_or_alias.cpp +++ b/yt/yt/client/scheduler/operation_id_or_alias.cpp @@ -24,7 +24,7 @@ TOperationIdOrAlias TOperationIdOrAlias::FromString(TString operationIdOrAlias) if (!operationIdOrAlias.empty() && operationIdOrAlias[0] == '*') { return TOperationIdOrAlias(operationIdOrAlias); } else { - return TOperationIdOrAlias(TOperationId::FromString(operationIdOrAlias)); + return TOperationIdOrAlias(TOperationId(TGuid::FromString(operationIdOrAlias))); } } diff --git a/yt/yt/core/ytree/yson_serializable-inl.h b/yt/yt/core/ytree/yson_serializable-inl.h index 7269174a30..b28578fd39 100644 --- a/yt/yt/core/ytree/yson_serializable-inl.h +++ b/yt/yt/core/ytree/yson_serializable-inl.h @@ -21,6 +21,7 @@ #include <yt/yt/core/actions/bind.h> #include <library/cpp/yt/misc/enum.h> +#include <library/cpp/yt/misc/wrapper_traits.h> #include <util/datetime/base.h> @@ -622,9 +623,7 @@ concept SupportsDontSerializeDefaultImpl = template <class T> concept SupportsDontSerializeDefault = - SupportsDontSerializeDefaultImpl<T> || - TStdOptionalTraits<T>::IsStdOptional && - SupportsDontSerializeDefaultImpl<typename TStdOptionalTraits<T>::TValueType>; + SupportsDontSerializeDefaultImpl<typename TWrapperTraits<T>::TRecursiveUnwrapped>; //////////////////////////////////////////////////////////////////////////////// diff --git a/yt/yt/core/ytree/yson_struct_detail-inl.h b/yt/yt/core/ytree/yson_struct_detail-inl.h index ce7ded1def..bee8d63aeb 100644 --- a/yt/yt/core/ytree/yson_struct_detail-inl.h +++ b/yt/yt/core/ytree/yson_struct_detail-inl.h @@ -9,6 +9,8 @@ #include <yt/yt/core/yson/token_writer.h> +#include <library/cpp/yt/misc/wrapper_traits.h> + namespace NYT::NYTree { //////////////////////////////////////////////////////////////////////////////// @@ -31,9 +33,7 @@ concept SupportsDontSerializeDefaultImpl = template <class T> concept SupportsDontSerializeDefault = - SupportsDontSerializeDefaultImpl<T> || - TStdOptionalTraits<T>::IsStdOptional && - SupportsDontSerializeDefaultImpl<typename TStdOptionalTraits<T>::TValueType>; + SupportsDontSerializeDefaultImpl<typename TWrapperTraits<T>::TRecursiveUnwrapped>; //////////////////////////////////////////////////////////////////////////////// |