This commit is contained in:
Timur A. Fatkhullin 2024-10-05 00:05:21 +03:00
parent 25f60e561b
commit 3e19ca4dd6

View File

@ -67,6 +67,12 @@ struct AdcTokenManip {
return std::views::split(_byteSequence, dl) | std::views::drop(start) | std::views::take(num);
}
template <traits::adc_char_view VT, traits::adc_input_char_range DR>
auto joinTokens(const DR& delimiter, size_t start = 0, size_t num = std::numeric_limits<size_t>::max())
{
}
template <traits::adc_input_char_range DR, typename T, typename... Ts>
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<size_t>::max())
// {
// std::vector<std::span<const char>> 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 <traits::adc_range_of_view_char_range RT>
auto tokens(RT& res, size_t start = 0, size_t num = std::numeric_limits<size_t>::max())
auto tokens(size_t start = 0, size_t num = std::numeric_limits<size_t>::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<size_t>::max())
{
return tokens<std::vector<std::span<const char>>>(start, num);
}
template <typename TokT, typename... TokTs>
AdcTokenMessage& addTokens(TokT&& token, TokTs&&... tokens)
{