added toml::format_flags::terse_key_value_pairs
This commit is contained in:
parent
cc741c9f5f
commit
b081c3505d
@ -29,6 +29,7 @@ template:
|
||||
- fixed spurious warnings in MSVC 19.34
|
||||
- fixed some `_Float16` detection issues
|
||||
- fixed `toml::parse_file()` on windows for non-ASCII paths
|
||||
- added `toml::format_flags::terse_key_value_pairs`
|
||||
|
||||
<br><br>
|
||||
|
||||
|
@ -124,6 +124,12 @@ TOML_IMPL_NAMESPACE_START
|
||||
return !!(config_.flags & format_flags::allow_unicode_strings);
|
||||
}
|
||||
|
||||
TOML_PURE_INLINE_GETTER
|
||||
bool terse_kvps() const noexcept
|
||||
{
|
||||
return !!(config_.flags & format_flags::terse_key_value_pairs);
|
||||
}
|
||||
|
||||
TOML_EXPORTED_MEMBER_FUNCTION
|
||||
void attach(std::ostream& stream) noexcept;
|
||||
|
||||
|
@ -337,6 +337,9 @@ TOML_NAMESPACE_START // abi namespace
|
||||
/// since floats might have a less precise value upon being written out than they did when being
|
||||
/// read in. Use this flag at your own risk.
|
||||
relaxed_float_precision = (1ull << 11),
|
||||
|
||||
/// \brief Avoids the use of whitespace around key-value pairs.
|
||||
terse_key_value_pairs = (1ull << 12),
|
||||
};
|
||||
TOML_MAKE_FLAGS(format_flags);
|
||||
|
||||
|
@ -43,7 +43,10 @@ TOML_NAMESPACE_START
|
||||
print_indent();
|
||||
|
||||
print_string(k.str(), false);
|
||||
print_unformatted(" : "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted(":"sv);
|
||||
else
|
||||
print_unformatted(" : "sv);
|
||||
|
||||
const auto type = v.type();
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
|
@ -152,7 +152,10 @@ TOML_NAMESPACE_START
|
||||
first = true;
|
||||
|
||||
print(k);
|
||||
print_unformatted(" = "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted("="sv);
|
||||
else
|
||||
print_unformatted(" = "sv);
|
||||
|
||||
const auto type = v.type();
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
@ -255,7 +258,10 @@ TOML_NAMESPACE_START
|
||||
print_newline();
|
||||
print_indent();
|
||||
print(k);
|
||||
print_unformatted(" = "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted("="sv);
|
||||
else
|
||||
print_unformatted(" = "sv);
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
switch (type)
|
||||
{
|
||||
|
@ -83,7 +83,10 @@ TOML_NAMESPACE_START
|
||||
parent_is_array = false;
|
||||
|
||||
print_string(k.str(), false, true);
|
||||
print_unformatted(": "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted(":"sv);
|
||||
else
|
||||
print_unformatted(": "sv);
|
||||
|
||||
const auto type = v.type();
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
|
@ -430,16 +430,16 @@ zyx = 42)"sv;
|
||||
zyx = 42)"sv;
|
||||
static constexpr auto table_quoted_no_close = R"(["where will it end]
|
||||
name = value)"sv;
|
||||
static constexpr auto table_redefine = R"(# Define b as int, and try to use it as a table: error
|
||||
static constexpr auto table_redefine = R"(# Define b as int, and try to use it as a table: error
|
||||
[a]
|
||||
b = 1
|
||||
|
||||
[a.b]
|
||||
c = 2)"sv;
|
||||
static constexpr auto table_rrbrace = R"([[table] ])"sv;
|
||||
static constexpr auto table_text_after_table = R"([error] this shouldn't be here)"sv;
|
||||
static constexpr auto table_whitespace = R"([invalid key])"sv;
|
||||
static constexpr auto table_with_pound = R"([key#group]
|
||||
static constexpr auto table_rrbrace = R"([[table] ])"sv;
|
||||
static constexpr auto table_text_after_table = R"([error] this shouldn't be here)"sv;
|
||||
static constexpr auto table_whitespace = R"([invalid key])"sv;
|
||||
static constexpr auto table_with_pound = R"([key#group]
|
||||
answer = 42)"sv;
|
||||
}
|
||||
|
||||
|
27
toml.hpp
27
toml.hpp
@ -1433,6 +1433,7 @@ TOML_NAMESPACE_START // abi namespace
|
||||
indent_array_elements = (1ull << 10),
|
||||
indentation = indent_sub_tables | indent_array_elements,
|
||||
relaxed_float_precision = (1ull << 11),
|
||||
terse_key_value_pairs = (1ull << 12),
|
||||
};
|
||||
TOML_MAKE_FLAGS(format_flags);
|
||||
|
||||
@ -9343,6 +9344,12 @@ TOML_IMPL_NAMESPACE_START
|
||||
return !!(config_.flags & format_flags::allow_unicode_strings);
|
||||
}
|
||||
|
||||
TOML_PURE_INLINE_GETTER
|
||||
bool terse_kvps() const noexcept
|
||||
{
|
||||
return !!(config_.flags & format_flags::terse_key_value_pairs);
|
||||
}
|
||||
|
||||
TOML_EXPORTED_MEMBER_FUNCTION
|
||||
void attach(std::ostream& stream) noexcept;
|
||||
|
||||
@ -16525,7 +16532,10 @@ TOML_NAMESPACE_START
|
||||
first = true;
|
||||
|
||||
print(k);
|
||||
print_unformatted(" = "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted("="sv);
|
||||
else
|
||||
print_unformatted(" = "sv);
|
||||
|
||||
const auto type = v.type();
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
@ -16628,7 +16638,10 @@ TOML_NAMESPACE_START
|
||||
print_newline();
|
||||
print_indent();
|
||||
print(k);
|
||||
print_unformatted(" = "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted("="sv);
|
||||
else
|
||||
print_unformatted(" = "sv);
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
switch (type)
|
||||
{
|
||||
@ -16815,7 +16828,10 @@ TOML_NAMESPACE_START
|
||||
print_indent();
|
||||
|
||||
print_string(k.str(), false);
|
||||
print_unformatted(" : "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted(":"sv);
|
||||
else
|
||||
print_unformatted(" : "sv);
|
||||
|
||||
const auto type = v.type();
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
@ -16973,7 +16989,10 @@ TOML_NAMESPACE_START
|
||||
parent_is_array = false;
|
||||
|
||||
print_string(k.str(), false, true);
|
||||
print_unformatted(": "sv);
|
||||
if (terse_kvps())
|
||||
print_unformatted(":"sv);
|
||||
else
|
||||
print_unformatted(": "sv);
|
||||
|
||||
const auto type = v.type();
|
||||
TOML_ASSUME(type != node_type::none);
|
||||
|
Loading…
Reference in New Issue
Block a user