diff options
Diffstat (limited to 'library/cpp/yson/node/node_builder.cpp')
| -rw-r--r-- | library/cpp/yson/node/node_builder.cpp | 10 |
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)]); |
