diff options
| author | babenko <[email protected]> | 2026-07-12 22:45:59 +0300 |
|---|---|---|
| committer | babenko <[email protected]> | 2026-07-12 23:04:29 +0300 |
| commit | cd13e45cc7d33d1117fd7f6126fa7707ba9af3ca (patch) | |
| tree | 31385733560528e4c519bee4f645b74dc69a6d7a | |
| parent | 674ff3020e01b2f6112da285b763aaed27873dcb (diff) | |
YT-18571: Fold TExtendedYsonProducer into TYsonProducer
commit_hash:265f5f763739e2a7a45e2089989c461c23ea77a6
| -rw-r--r-- | yt/yt/core/yson/producer-inl.h | 8 | ||||
| -rw-r--r-- | yt/yt/core/yson/producer.cpp | 14 | ||||
| -rw-r--r-- | yt/yt/core/yson/producer.h | 38 | ||||
| -rw-r--r-- | yt/yt/core/yson/public.h | 4 | ||||
| -rw-r--r-- | yt/yt/core/ytree/ypath_service.cpp | 4 | ||||
| -rw-r--r-- | yt/yt/core/ytree/ypath_service.h | 2 |
6 files changed, 20 insertions, 50 deletions
diff --git a/yt/yt/core/yson/producer-inl.h b/yt/yt/core/yson/producer-inl.h index 7cfe5ff572c..034b972a234 100644 --- a/yt/yt/core/yson/producer-inl.h +++ b/yt/yt/core/yson/producer-inl.h @@ -11,8 +11,8 @@ namespace NYT::NYson { //////////////////////////////////////////////////////////////////////////////// template <class... TAdditionalArgs> -TExtendedYsonProducer<TAdditionalArgs...>::TExtendedYsonProducer( - TExtendedYsonProducer::TUnderlyingCallback callback, +TParametricYsonProducer<TAdditionalArgs...>::TParametricYsonProducer( + TParametricYsonProducer::TUnderlyingCallback callback, EYsonType type) : Type_(type) , Callback_(std::move(callback)) @@ -21,11 +21,11 @@ TExtendedYsonProducer<TAdditionalArgs...>::TExtendedYsonProducer( } template <class... TAdditionalArgs> -void TExtendedYsonProducer<TAdditionalArgs...>::Run(IYsonConsumer* consumer, TAdditionalArgs... args) const +void TParametricYsonProducer<TAdditionalArgs...>::Run(IYsonConsumer* consumer, TAdditionalArgs... args) const { Callback_(consumer, std::forward<TAdditionalArgs>(args)...); } //////////////////////////////////////////////////////////////////////////////// -} // namespace NYT::NYson
\ No newline at end of file +} // namespace NYT::NYson diff --git a/yt/yt/core/yson/producer.cpp b/yt/yt/core/yson/producer.cpp index aeff4b7266a..4951612d786 100644 --- a/yt/yt/core/yson/producer.cpp +++ b/yt/yt/core/yson/producer.cpp @@ -4,20 +4,6 @@ namespace NYT::NYson { //////////////////////////////////////////////////////////////////////////////// -TYsonProducer::TYsonProducer(TYsonCallback callback, EYsonType type) - : Type_(type) - , Callback_(std::move(callback)) -{ - YT_ASSERT(Callback_); -} - -void TYsonProducer::Run(IYsonConsumer* consumer) const -{ - Callback_(consumer); -} - -//////////////////////////////////////////////////////////////////////////////// - void Serialize(const TYsonProducer& value, IYsonConsumer* consumer) { value.Run(consumer); diff --git a/yt/yt/core/yson/producer.h b/yt/yt/core/yson/producer.h index 7310d1540ba..5ddae14f540 100644 --- a/yt/yt/core/yson/producer.h +++ b/yt/yt/core/yson/producer.h @@ -12,45 +12,26 @@ namespace NYT::NYson { //////////////////////////////////////////////////////////////////////////////// //! A callback capable of generating YSON by calling appropriate -//! methods for its IYsonConsumer argument. -using TYsonCallback = TCallback<void(IYsonConsumer*)>; - -//! A callback capable of generating YSON by calling appropriate //! methods for its IYsonConsumer and some additional arguments. template <class... TAdditionalArgs> -using TExtendedYsonCallback = TCallback<void(IYsonConsumer*, TAdditionalArgs...)>; - -//////////////////////////////////////////////////////////////////////////////// - -class TYsonProducer -{ -public: - DEFINE_BYVAL_RO_PROPERTY(NYson::EYsonType, Type); +using TParametricYsonCallback = TCallback<void(IYsonConsumer*, TAdditionalArgs...)>; -public: - TYsonProducer() = default; - TYsonProducer( - TYsonCallback callback, - EYsonType type = NYson::EYsonType::Node); - - void Run(IYsonConsumer* consumer) const; - -private: - TYsonCallback Callback_; -}; +//! A callback capable of generating YSON by calling appropriate +//! methods for its IYsonConsumer argument. +using TYsonCallback = TParametricYsonCallback<>; //////////////////////////////////////////////////////////////////////////////// template <class... TAdditionalArgs> -class TExtendedYsonProducer +class TParametricYsonProducer { - using TUnderlyingCallback = TExtendedYsonCallback<TAdditionalArgs...>; + using TUnderlyingCallback = TParametricYsonCallback<TAdditionalArgs...>; public: DEFINE_BYVAL_RO_PROPERTY(NYson::EYsonType, Type); public: - TExtendedYsonProducer() = default; - TExtendedYsonProducer( + TParametricYsonProducer() = default; + TParametricYsonProducer( TUnderlyingCallback callback, EYsonType type = NYson::EYsonType::Node); @@ -60,6 +41,9 @@ private: TUnderlyingCallback Callback_; }; +//! A producer generating a plain YSON with no additional arguments. +using TYsonProducer = TParametricYsonProducer<>; + //////////////////////////////////////////////////////////////////////////////// void Serialize(const TYsonProducer& value, NYson::IYsonConsumer* consumer); diff --git a/yt/yt/core/yson/public.h b/yt/yt/core/yson/public.h index b322e9007f1..70bd806d5a7 100644 --- a/yt/yt/core/yson/public.h +++ b/yt/yt/core/yson/public.h @@ -12,9 +12,9 @@ namespace NYT::NYson { enum class ETokenType; -class TYsonProducer; template <class... TAdditionalArgs> -class TExtendedYsonProducer; +class TParametricYsonProducer; +using TYsonProducer = TParametricYsonProducer<>; class TYsonInput; class TYsonOutput; diff --git a/yt/yt/core/ytree/ypath_service.cpp b/yt/yt/core/ytree/ypath_service.cpp index 3d3e4185617..16460f9b0cb 100644 --- a/yt/yt/core/ytree/ypath_service.cpp +++ b/yt/yt/core/ytree/ypath_service.cpp @@ -233,7 +233,7 @@ class TFromExtendedProducerYPathService : public TYPathServiceBase , public TSupportsGet { - using TUnderlyingProducer = TExtendedYsonProducer<const IAttributeDictionaryPtr&>; + using TUnderlyingProducer = TParametricYsonProducer<const IAttributeDictionaryPtr&>; public: explicit TFromExtendedProducerYPathService(TUnderlyingProducer producer) : Producer_(std::move(producer)) @@ -326,7 +326,7 @@ private: }; IYPathServicePtr IYPathService::FromProducer( - NYson::TExtendedYsonProducer<const IAttributeDictionaryPtr&> producer) + NYson::TParametricYsonProducer<const IAttributeDictionaryPtr&> producer) { return New<TFromExtendedProducerYPathService>(std::move(producer)); } diff --git a/yt/yt/core/ytree/ypath_service.h b/yt/yt/core/ytree/ypath_service.h index 6df44dba804..dbd655c2688 100644 --- a/yt/yt/core/ytree/ypath_service.h +++ b/yt/yt/core/ytree/ypath_service.h @@ -106,7 +106,7 @@ struct IYPathService * an ephemeral tree, and the request is forwarded to that tree. */ static IYPathServicePtr FromProducer( - NYson::TExtendedYsonProducer<const IAttributeDictionaryPtr&> producer); + NYson::TParametricYsonProducer<const IAttributeDictionaryPtr&> producer); //! Creates a producer from YPath service. /*! |
