From 7d959c1039946d3e4676f412459766a8046de816 Mon Sep 17 00:00:00 2001 From: Nikolai Vladimirov Date: Fri, 27 Jun 2025 23:28:48 +0000 Subject: [PATCH] Addressed some comments --- .../boost/redis/adapter/detail/adapters.hpp | 9 +++-- include/boost/redis/resp3/node.hpp | 8 ----- include/boost/redis/response.hpp | 34 +++++++++++-------- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/include/boost/redis/adapter/detail/adapters.hpp b/include/boost/redis/adapter/detail/adapters.hpp index 83de233b..0884632c 100644 --- a/include/boost/redis/adapter/detail/adapters.hpp +++ b/include/boost/redis/adapter/detail/adapters.hpp @@ -178,12 +178,12 @@ public: }; template <> -class general_aggregate> { +class general_aggregate> { private: - result* result_; + result* result_; public: - explicit general_aggregate(result* c = nullptr) + explicit general_aggregate(result* c = nullptr) : result_(c) { } template @@ -198,8 +198,7 @@ public: std::string{std::cbegin(nd.value), std::cend(nd.value)} }; break; - default: - result_->value().push_back(nd); + default: result_->value().push_back(nd); } } }; diff --git a/include/boost/redis/resp3/node.hpp b/include/boost/redis/resp3/node.hpp index d55957a3..6e3f4aac 100644 --- a/include/boost/redis/resp3/node.hpp +++ b/include/boost/redis/resp3/node.hpp @@ -59,14 +59,6 @@ using node = basic_node; /// A node in the response tree that does not own its data. using node_view = basic_node; -/** - * TODO: documentation - */ -struct offset_node : node_view { - std::size_t offset{}; - std::size_t size{}; -}; - } // namespace boost::redis::resp3 #endif // BOOST_REDIS_RESP3_NODE_HPP diff --git a/include/boost/redis/response.hpp b/include/boost/redis/response.hpp index 251dcd8c..106a3fd5 100644 --- a/include/boost/redis/response.hpp +++ b/include/boost/redis/response.hpp @@ -31,7 +31,7 @@ using response = std::tuple...>; */ using generic_response = adapter::result>; -struct flat_response_impl { +struct flat_response_value { private: class iterator { public: @@ -41,7 +41,7 @@ private: using reference = value_type; using iterator_category = std::forward_iterator_tag; - explicit iterator(flat_response_impl* owner, std::size_t i) noexcept + explicit iterator(flat_response_value* owner, std::size_t i) noexcept : owner_(owner) , index_(i) { } @@ -58,10 +58,15 @@ private: bool operator!=(const iterator& other) const { return !(*this == other); } private: - flat_response_impl* owner_; + flat_response_value* owner_; std::size_t index_; }; + struct offset_node : resp3::node_view { + std::size_t offset{}; + std::size_t size{}; + }; + public: resp3::node_view at(std::size_t index) { return make_node_view(view_.at(index)); } @@ -76,37 +81,36 @@ public: template void push_back(const resp3::basic_node& nd) { - resp3::offset_node new_node; + 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.offset = data_.size(); new_node.size = nd.value.size(); - data_ += std::string{std::cbegin(nd.value), std::cend(nd.value)}; - + data_.append(nd.value.data()); view_.push_back(std::move(new_node)); } private: - resp3::node_view make_node_view(const resp3::offset_node& n) + resp3::node_view make_node_view(const offset_node& nd) { - return resp3::node_view{ - .data_type = n.data_type, - .aggregate_size = n.aggregate_size, - .depth = n.depth, - .value = std::string_view{data_.data() + n.offset, n.size} - }; + resp3::node_view result; + result.data_type = nd.data_type; + result.aggregate_size = nd.aggregate_size; + result.depth = nd.depth; + result.value = std::string_view{data_.data() + nd.offset, nd.size}; + return result; } std::string data_; - std::vector view_; + std::vector view_; }; /** * TODO: documentation */ -using generic_flat_response = adapter::result; +using generic_flat_response = adapter::result; /** @brief Consume on response from a generic response *