From 3e19ca4dd606bb778f0376de352aa898a59a9567 Mon Sep 17 00:00:00 2001 From: "Timur A. Fatkhullin" Date: Sat, 5 Oct 2024 00:05:21 +0300 Subject: [PATCH] ... --- net/adc_netmsg.h | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/net/adc_netmsg.h b/net/adc_netmsg.h index 0e509bd..0d6d670 100644 --- a/net/adc_netmsg.h +++ b/net/adc_netmsg.h @@ -67,6 +67,12 @@ struct AdcTokenManip { return std::views::split(_byteSequence, dl) | std::views::drop(start) | std::views::take(num); } + + template + auto joinTokens(const DR& delimiter, size_t start = 0, size_t num = std::numeric_limits::max()) + { + } + template AdcTokenManip& addTokens(const DR& delimiter, T&& v, Ts&&... vs) { @@ -618,24 +624,24 @@ public: AdcTokenMessage(R& byte_seq) : base_t(byte_seq) {} - // auto tokens(size_t start = 0, size_t num = std::numeric_limits::max()) - // { - // std::vector> res; - // std::ranges::for_each(base_t::tokens(tokenDelimiter, start, num), - // [&res](const auto& el) { res.emplace_back(el.begin(), el.end()); }); - - // return res; - // } - template - auto tokens(RT& res, size_t start = 0, size_t num = std::numeric_limits::max()) + auto tokens(size_t start = 0, size_t num = std::numeric_limits::max()) { + RT res; + std::ranges::for_each(base_t::tokens(tokenDelimiter, start, num), [&res](const auto& el) { res.emplace_back(el.begin(), el.end()); }); - return &res; + return res; } + + auto tokens(size_t start = 0, size_t num = std::numeric_limits::max()) + { + return tokens>>(start, num); + } + + template AdcTokenMessage& addTokens(TokT&& token, TokTs&&... tokens) {