49 using base = impl::formatter;
50 std::vector<const key*> key_path_;
51 bool pending_table_separator_ =
false;
54 void print_pending_table_separator();
57 void print(
const key&);
60 void print_inline(
const toml::table&);
63 void print(
const toml::array&);
66 void print(
const toml::table&);
71 static constexpr impl::formatter_constants constants = { format_flags::none,
83 static constexpr format_flags default_flags = constants.mandatory_flags
84 | format_flags::allow_literal_strings
85 | format_flags::allow_multi_line_strings
86 | format_flags::allow_unicode_strings
87 | format_flags::allow_real_tabs_in_strings
88 | format_flags::allow_binary_integers
89 | format_flags::allow_octal_integers
90 | format_flags::allow_hexadecimal_integers
91 | format_flags::indentation;
98 explicit toml_formatter(
const toml::node& source,
format_flags flags = default_flags) noexcept
99 : base{ &source,
nullptr, constants, { flags,
" "sv } }
102#if TOML_DOXYGEN || (TOML_ENABLE_PARSER && !TOML_EXCEPTIONS)
127 explicit toml_formatter(
const toml::parse_result& result,
format_flags flags = default_flags) noexcept
128 : base{
nullptr, &result, constants, { flags,
" "sv } }
134 friend std::ostream&
operator<<(std::ostream& lhs, toml_formatter& rhs)
137 rhs.key_path_.clear();
144 friend std::ostream&
operator<<(std::ostream& lhs, toml_formatter&& rhs)
enum TOML_CLOSED_FLAGS_ENUM format_flags
Format flags for modifying how TOML data is printed to streams.
Definition forward_declarations.hpp:297
std::basic_ostream< Char > & operator<<(std::basic_ostream< Char > &lhs, node_type rhs)
Pretty-prints the value of a node_type to a stream.
Definition forward_declarations.hpp:256
#define TOML_EXPORTED_CLASS
An 'export' annotation to add to classes. \detail Not defined by default.
Definition preprocessor.hpp:979
#define TOML_EXPORTED_MEMBER_FUNCTION
An 'export' annotation to add to non-static class member functions. \detail Not defined by default.
Definition preprocessor.hpp:982