summaryrefslogtreecommitdiffstats
path: root/library/cpp/yson/node/node_builder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'library/cpp/yson/node/node_builder.cpp')
-rw-r--r--library/cpp/yson/node/node_builder.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/library/cpp/yson/node/node_builder.cpp b/library/cpp/yson/node/node_builder.cpp
index b4431bc77af..cb79ab0c976 100644
--- a/library/cpp/yson/node/node_builder.cpp
+++ b/library/cpp/yson/node/node_builder.cpp
@@ -44,6 +44,11 @@ void TNodeBuilder::OnBeginList()
AddNode(TNode::CreateList(), false);
}
+void TNodeBuilder::OnBeginList(ui64 reserveSize) {
+ OnBeginList();
+ Stack_.top()->AsList().reserve(reserveSize);
+}
+
void TNodeBuilder::OnListItem()
{
Stack_.push(&Stack_.top()->Add());
@@ -59,6 +64,11 @@ void TNodeBuilder::OnBeginMap()
AddNode(TNode::CreateMap(), false);
}
+void TNodeBuilder::OnBeginMap(ui64 reserveSize) {
+ OnBeginMap();
+ Stack_.top()->AsMap().reserve(reserveSize);
+}
+
void TNodeBuilder::OnKeyedItem(TStringBuf key)
{
Stack_.push(&(*Stack_.top())[TString(key)]);