103 if (!stack_.back().is_parsed) {
104 if (!stack_.back().to) {
105 if (stack_.back().from.IsObject()) {
107 }
else if (stack_.back().from.IsArray()) {
113 if (stack_.back().current_parsing_elem) {
114 ++*stack_.back().current_parsing_elem;
116 stack_.back().current_parsing_elem = stack_.back().from.begin();
118 if (stack_.back().current_parsing_elem.value() == stack_.back().from.end()) {
119 stack_.back().is_parsed =
true;
122 auto new_from = *stack_.back().current_parsing_elem.value();
123 stack_.emplace_back(std::move(new_from));
127 auto& current_docs = stack_[stack_.size() - 2];
128 if (current_docs.from.IsObject()) {
129 current_docs.to.value()[current_docs.current_parsing_elem->GetName()] = std::move(stack_.back().to.value());
130 }
else if (current_docs.from.IsArray()) {
131 current_docs.to->PushBack(std::move(stack_.back().to.value()));
156 boost::container::deque<StackFrame,
void, boost::container::deque_options<boost::container::block_size<16>>::type>