fix
This commit is contained in:
@@ -130,6 +130,8 @@ public:
|
|||||||
OPOLICY_FULL // serialize entire set of key-value pairs
|
OPOLICY_FULL // serialize entire set of key-value pairs
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static constexpr std::string_view DEFAULT_RECORD_DELIMITER{"\n"};
|
||||||
|
|
||||||
static constexpr std::string_view COMMENT_SEQ{COMM_SEQ == nullptr ? constants::MCC_KV_COMMENT_SEQ_ARR
|
static constexpr std::string_view COMMENT_SEQ{COMM_SEQ == nullptr ? constants::MCC_KV_COMMENT_SEQ_ARR
|
||||||
: COMM_SEQ[0] == '\0' ? constants::MCC_KV_COMMENT_SEQ_ARR
|
: COMM_SEQ[0] == '\0' ? constants::MCC_KV_COMMENT_SEQ_ARR
|
||||||
: COMM_SEQ};
|
: COMM_SEQ};
|
||||||
@@ -226,7 +228,8 @@ public:
|
|||||||
traits::mcc_input_char_range RecDelimT = std::string_view,
|
traits::mcc_input_char_range RecDelimT = std::string_view,
|
||||||
mcc_serialization_params_c SerParamsT = mcc_serialization_params_t>
|
mcc_serialization_params_c SerParamsT = mcc_serialization_params_t>
|
||||||
std::error_code fromCharRange(const R& buffer,
|
std::error_code fromCharRange(const R& buffer,
|
||||||
RecDelimT rec_delim = std::string_view("\n") // records delimiter
|
size_t skip_records = 0, // number of skipped records (from the beginning)
|
||||||
|
RecDelimT rec_delim = DEFAULT_RECORD_DELIMITER // records delimiter
|
||||||
)
|
)
|
||||||
requires std::ranges::contiguous_range<R>
|
requires std::ranges::contiguous_range<R>
|
||||||
{
|
{
|
||||||
@@ -254,7 +257,7 @@ public:
|
|||||||
// set values to its defaults
|
// set values to its defaults
|
||||||
setToDefaults();
|
setToDefaults();
|
||||||
|
|
||||||
auto recs = std::views::split(buffer, std::move(rec_delim));
|
auto recs = std::views::split(buffer, std::move(rec_delim)) | std::views::drop(skip_records);
|
||||||
|
|
||||||
for (auto const& el : recs) {
|
for (auto const& el : recs) {
|
||||||
rec = mcc::utils::trimSpaces(el, utils::TrimType::TRIM_LEFT);
|
rec = mcc::utils::trimSpaces(el, utils::TrimType::TRIM_LEFT);
|
||||||
@@ -318,7 +321,7 @@ public:
|
|||||||
template <OutputPolicy OPOLICY = MccKeyValueHolder::OPOLICY_CHANGED_ONLY,
|
template <OutputPolicy OPOLICY = MccKeyValueHolder::OPOLICY_CHANGED_ONLY,
|
||||||
traits::mcc_output_char_range R,
|
traits::mcc_output_char_range R,
|
||||||
traits::mcc_input_char_range RecDelimT = std::string_view>
|
traits::mcc_input_char_range RecDelimT = std::string_view>
|
||||||
std::error_code toCharRange(R& output_buffer, RecDelimT rec_delim = std::string_view{"\n"})
|
std::error_code toCharRange(R& output_buffer, RecDelimT rec_delim = DEFAULT_RECORD_DELIMITER)
|
||||||
{
|
{
|
||||||
if (std::is_pointer_v<std::decay_t<RecDelimT>>) { // char*, const char*, char[], conat char[]
|
if (std::is_pointer_v<std::decay_t<RecDelimT>>) { // char*, const char*, char[], conat char[]
|
||||||
return toCharRange(output_buffer, std::string_view{rec_delim});
|
return toCharRange(output_buffer, std::string_view{rec_delim});
|
||||||
@@ -485,7 +488,7 @@ struct mcc_simple_kv_record_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <mcc_variant_valid_type_c T>
|
template <mcc_variant_valid_type_c T>
|
||||||
mcc_simple_kv_record_t<T> mcc_make_simple_kv_record(
|
static mcc_simple_kv_record_t<T> mcc_make_simple_kv_record(
|
||||||
std::string_view key,
|
std::string_view key,
|
||||||
T const& def_value,
|
T const& def_value,
|
||||||
mcc_serialization_params_t const& spars = mcc_serialization_params_t{})
|
mcc_serialization_params_t const& spars = mcc_serialization_params_t{})
|
||||||
|
|||||||
Reference in New Issue
Block a user