summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/string
diff options
context:
space:
mode:
authorbabenko <[email protected]>2026-04-22 09:41:38 +0300
committerbabenko <[email protected]>2026-04-22 10:08:46 +0300
commit70410f21980c0632b4746ec75cd9ba5762fc109a (patch)
tree9ad9ef9ca392b9a878c2b28db88a16195ae3e792 /library/cpp/yt/string
parent5d2b2544e56b3f70080976477451bfcacd34ec63 (diff)
YT-18571: Add format string checks to TStringBuilderBase::AppendFormat; also fix some releaved issues
commit_hash:dd15e713a6a83c8a14f1df2f011fa06f189f4a00
Diffstat (limited to 'library/cpp/yt/string')
-rw-r--r--library/cpp/yt/string/format-inl.h2
-rw-r--r--library/cpp/yt/string/string_builder-inl.h10
-rw-r--r--library/cpp/yt/string/string_builder.h6
3 files changed, 6 insertions, 12 deletions
diff --git a/library/cpp/yt/string/format-inl.h b/library/cpp/yt/string/format-inl.h
index 5d10c823874..15d8b791e23 100644
--- a/library/cpp/yt/string/format-inl.h
+++ b/library/cpp/yt/string/format-inl.h
@@ -941,7 +941,7 @@ void FormatValue(
{
std::apply(
[&] <class... TInnerArgs> (TInnerArgs&&... args) {
- builder->AppendFormat(value.Format_, std::forward<TInnerArgs>(args)...);
+ builder->AppendFormat(TRuntimeFormat{value.Format_}, std::forward<TInnerArgs>(args)...);
},
value.Args_);
}
diff --git a/library/cpp/yt/string/string_builder-inl.h b/library/cpp/yt/string/string_builder-inl.h
index 5d66e1b0ded..9a0e34ca58d 100644
--- a/library/cpp/yt/string/string_builder-inl.h
+++ b/library/cpp/yt/string/string_builder-inl.h
@@ -81,15 +81,9 @@ inline void TStringBuilderBase::Reset()
}
template <class... TArgs>
-void TStringBuilderBase::AppendFormat(TStringBuf format, TArgs&& ... args)
+void TStringBuilderBase::AppendFormat(TFormatString<TArgs...> format, TArgs&&... args)
{
- Format(this, TRuntimeFormat{format}, std::forward<TArgs>(args)...);
-}
-
-template <size_t Length, class... TArgs>
-void TStringBuilderBase::AppendFormat(const char (&format)[Length], TArgs&& ... args)
-{
- Format(this, TRuntimeFormat{format}, std::forward<TArgs>(args)...);
+ Format(this, format, std::forward<TArgs>(args)...);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/library/cpp/yt/string/string_builder.h b/library/cpp/yt/string/string_builder.h
index 82caed29943..ad2e3280857 100644
--- a/library/cpp/yt/string/string_builder.h
+++ b/library/cpp/yt/string/string_builder.h
@@ -1,5 +1,7 @@
#pragma once
+#include "format_string.h"
+
#include <util/generic/string.h>
namespace NYT {
@@ -28,10 +30,8 @@ public:
void AppendString(TStringBuf str);
void AppendString(const char* str);
- template <size_t Length, class... TArgs>
- void AppendFormat(const char (&format)[Length], TArgs&&... args);
template <class... TArgs>
- void AppendFormat(TStringBuf format, TArgs&&... args);
+ void AppendFormat(TFormatString<TArgs...> format, TArgs&&... args);
void Reset();