diff options
author | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2024-08-07 13:31:32 +0300 |
---|---|---|
committer | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2024-08-07 14:35:26 +0300 |
commit | b92a4e77b0ee24fc7ae9d4488d97999ac39f48e3 (patch) | |
tree | 5bb3e970bb249ea0f0a42f58a65c5a5d6708e8a4 /library/cpp/yt/string/string.h | |
parent | 933bb8d7a12d3881898904226e8884e8695275ef (diff) | |
download | ydb-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.h | 19 |
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 = "..."; |