aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/string/string.h
diff options
context:
space:
mode:
authorarkady-e1ppa <arkady-e1ppa@yandex-team.com>2024-08-07 13:31:32 +0300
committerarkady-e1ppa <arkady-e1ppa@yandex-team.com>2024-08-07 14:35:26 +0300
commitb92a4e77b0ee24fc7ae9d4488d97999ac39f48e3 (patch)
tree5bb3e970bb249ea0f0a42f58a65c5a5d6708e8a4 /library/cpp/yt/string/string.h
parent933bb8d7a12d3881898904226e8884e8695275ef (diff)
downloadydb-b92a4e77b0ee24fc7ae9d4488d97999ac39f48e3.tar.gz
YT-22473: Enable for-each formatting in known ranges
5a3405e64b730f0056e381af07658d6c2edcb92b
Diffstat (limited to 'library/cpp/yt/string/string.h')
-rw-r--r--library/cpp/yt/string/string.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/library/cpp/yt/string/string.h b/library/cpp/yt/string/string.h
index 8257c1a5ea..b91d1b3805 100644
--- a/library/cpp/yt/string/string.h
+++ b/library/cpp/yt/string/string.h
@@ -27,6 +27,25 @@ struct TDefaultFormatter
}
};
+//! Bind spec to a formatter.
+//! Used in ranges processing.
+class TSpecBoundFormatter
+{
+public:
+ explicit TSpecBoundFormatter(TStringBuf spec)
+ : Spec_(spec)
+ { }
+
+ template <class T>
+ void operator()(TStringBuilderBase* builder, const T& obj) const
+ {
+ FormatValue(builder, obj, Spec_);
+ }
+
+private:
+ TStringBuf Spec_;
+};
+
static constexpr TStringBuf DefaultJoinToStringDelimiter = ", ";
static constexpr TStringBuf DefaultKeyValueDelimiter = ": ";
static constexpr TStringBuf DefaultRangeEllipsisFormat = "...";