2
0
mirror of https://github.com/boostorg/redis.git synced 2026-01-19 16:52:08 +00:00

create flat_response_value::add_node()

This commit is contained in:
Nikolai Vladimirov
2025-08-18 19:48:09 +00:00
committed by Marcelo Zimbres
parent c284960549
commit bd799aff96
2 changed files with 20 additions and 17 deletions

View File

@@ -206,22 +206,7 @@ public:
std::string{std::cbegin(nd.value), std::cend(nd.value)}
};
break;
default:
auto& data = result_->value().data_;
resp3::offset_string offset_string;
offset_string.offset = data.size();
offset_string.size = nd.value.size();
data.append(nd.value.data(), nd.value.size());
resp3::offset_node new_node;
new_node.data_type = nd.data_type;
new_node.aggregate_size = nd.aggregate_size;
new_node.depth = nd.depth;
new_node.value = std::move(offset_string);
result_->value().view_.push_back(std::move(new_node));
default: result_->value().add_node(nd);
}
}
};

View File

@@ -75,7 +75,25 @@ private:
}
}
template <typename T>
template <class String>
void add_node(resp3::basic_node<String> const& nd)
{
resp3::offset_string offset_string;
offset_string.offset = data_.size();
offset_string.size = nd.value.size();
data_.append(nd.value.data(), nd.value.size());
resp3::offset_node new_node;
new_node.data_type = nd.data_type;
new_node.aggregate_size = nd.aggregate_size;
new_node.depth = nd.depth;
new_node.value = std::move(offset_string);
view_.push_back(std::move(new_node));
}
template <class T>
friend class adapter::detail::general_aggregate;
std::string data_;