summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbabenko <[email protected]>2026-07-12 22:45:59 +0300
committerbabenko <[email protected]>2026-07-12 23:04:29 +0300
commitcd13e45cc7d33d1117fd7f6126fa7707ba9af3ca (patch)
tree31385733560528e4c519bee4f645b74dc69a6d7a
parent674ff3020e01b2f6112da285b763aaed27873dcb (diff)
YT-18571: Fold TExtendedYsonProducer into TYsonProducer
commit_hash:265f5f763739e2a7a45e2089989c461c23ea77a6
-rw-r--r--yt/yt/core/yson/producer-inl.h8
-rw-r--r--yt/yt/core/yson/producer.cpp14
-rw-r--r--yt/yt/core/yson/producer.h38
-rw-r--r--yt/yt/core/yson/public.h4
-rw-r--r--yt/yt/core/ytree/ypath_service.cpp4
-rw-r--r--yt/yt/core/ytree/ypath_service.h2
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.
/*!