From 700d5bed10677e5d43c3e72131f2aa6bf8543fd6 Mon Sep 17 00:00:00 2001 From: "Timur A. Fatkhullin" Date: Sat, 27 Jun 2026 00:00:54 +0300 Subject: [PATCH] ... --- examples/str_exam.cpp | 2 ++ include/snipplib/utils/snplib_keyvalue.h | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/examples/str_exam.cpp b/examples/str_exam.cpp index 8a29a16..839342d 100644 --- a/examples/str_exam.cpp +++ b/examples/str_exam.cpp @@ -69,6 +69,7 @@ int main() std::println("key = '{}'", kv.key()); std::println("value = '{}'", kv.value()); std::println("valueSeq = '{}'", kv.valueSeq()); + std::println("valueSeq(4,2) = '{}'", kv.valueSeq(4, 2)); std::println("valueJoinSeq = '{}'", kv.valueJoinSeq(3, 3)); std::println("valueJoinSeq = '{}'", kv.valueJoinSeq(3, 30)); kv.setKeyValue("VAL", std::make_tuple(1, std::string{"RRR"}, 10.24)); @@ -81,6 +82,7 @@ int main() std::println("key = '{}'", kvl.key()); std::println("value = '{}'", kvl.value()); std::println("valueSeq = '{}'", kvl.valueSeq()); + std::println("valueSeq(4,2) = '{}'", kvl.valueSeq(4, 2)); std::println("valueSeq = '{}'", kvl.valueSeq>()); diff --git a/include/snipplib/utils/snplib_keyvalue.h b/include/snipplib/utils/snplib_keyvalue.h index 6293e83..d262004 100644 --- a/include/snipplib/utils/snplib_keyvalue.h +++ b/include/snipplib/utils/snplib_keyvalue.h @@ -187,7 +187,8 @@ public: // std::vector valueSeq(size_t start = 0, size_t N = std::numeric_limits::max()) const { // return valueSeq>(start, N); - return _valueSeq; + return valueSeq(start, N); + // return _valueSeq; } @@ -227,8 +228,8 @@ public: auto err = snplib_serializer_t>{}(_byteSeq, std::forward(key), sparams); if (err) { // return snplib_deduced_error(err, std::errc::invalid_argument); - // return snplib_deduced_error(err, std::make_error_code(std::errc::invalid_argument)); - return std::make_error_code(std::errc::invalid_argument); + return snplib_deduced_error(err, std::make_error_code(std::errc::invalid_argument)); + // return std::make_error_code(std::errc::invalid_argument); } return {}; @@ -237,12 +238,13 @@ public: template requires mutableContent - error_t setValue(ValueT&& value, SParT const& sparams = snplib_serialization_params_t{}) + error_t setValue(ValueT&& value, SParT sparams = snplib_serialization_params_t{}) { auto err = snplib_serializer_t>{}(_byteSeq, std::forward(value), sparams); if (err) { - // return snplib_deduced_error(err, std::make_error_code(std::errc::invalid_argument)); - return std::make_error_code(std::errc::invalid_argument); + // return snplib_deduced_error(err, std::errc::invalid_argument); + return snplib_deduced_error(err, std::make_error_code(std::errc::invalid_argument)); + // return std::make_error_code(std::errc::invalid_argument); } return {}; @@ -254,13 +256,17 @@ public: snplib_serializable_c ValueT, snplib_serialization_params_c SParT = snplib_serialization_params_t> requires mutableContent - error_t setKeyValue(KeyT&& key, ValueT&& value, SParT const& sparams = snplib_serialization_params_t{}) + error_t setKeyValue(KeyT&& key, ValueT&& value, SParT sparams = snplib_serialization_params_t{}) { auto err = setKey(std::forward(key), sparams); if (err) { return err; } + std::ranges::copy(_config.keyval_delim, std::back_inserter(_byteSeq)); + + sparams.elem_delim = _config.valseq_delim; + return setValue(std::forward(value), sparams); }