summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/string/string_builder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'library/cpp/yt/string/string_builder.cpp')
-rw-r--r--library/cpp/yt/string/string_builder.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/library/cpp/yt/string/string_builder.cpp b/library/cpp/yt/string/string_builder.cpp
new file mode 100644
index 00000000000..bca493fa325
--- /dev/null
+++ b/library/cpp/yt/string/string_builder.cpp
@@ -0,0 +1,30 @@
+#include "string_builder.h"
+
+namespace NYT {
+
+////////////////////////////////////////////////////////////////////////////////
+
+TDelimitedStringBuilderWrapper::TDelimitedStringBuilderWrapper(
+ TStringBuilderBase* builder,
+ TStringBuf delimiter)
+ : Builder_(builder)
+ , Delimiter_(delimiter)
+{ }
+
+TStringBuilderBase* TDelimitedStringBuilderWrapper::operator->()
+{
+ return operator&();
+}
+
+TStringBuilderBase* TDelimitedStringBuilderWrapper::operator&()
+{
+ if (!FirstCall_) {
+ Builder_->AppendString(Delimiter_);
+ }
+ FirstCall_ = false;
+ return Builder_;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT