This commit is contained in:
Timur A. Fatkhullin
2026-06-27 00:00:54 +03:00
parent 5f26dadad2
commit 700d5bed10
2 changed files with 15 additions and 7 deletions

View File

@@ -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<std::string_view>(3, 3));
std::println("valueJoinSeq = '{}'", kv.valueJoinSeq<std::string_view>(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::string>());
std::println("value = '{}'", kvl.value());
std::println("valueSeq = '{}'", kvl.valueSeq());
std::println("valueSeq(4,2) = '{}'", kvl.valueSeq(4, 2));
std::println("valueSeq = '{}'", kvl.valueSeq<std::list<std::string>>());

View File

@@ -187,7 +187,8 @@ public:
// std::vector<std::string_view> valueSeq(size_t start = 0, size_t N = std::numeric_limits<size_t>::max()) const
{
// return valueSeq<std::vector<std::string_view>>(start, N);
return _valueSeq;
return valueSeq<decltype(_valueSeq)>(start, N);
// return _valueSeq;
}
@@ -227,8 +228,8 @@ public:
auto err = snplib_serializer_t<std::remove_cvref_t<KeyT>>{}(_byteSeq, std::forward<KeyT>(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 <snplib_serializable_c ValueT, snplib_serialization_params_c SParT = snplib_serialization_params_t>
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<std::remove_cvref_t<ValueT>>{}(_byteSeq, std::forward<ValueT>(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<KeyT>(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<ValueT>(value), sparams);
}