//# This file is a part of toml++ and is subject to the the terms of the MIT license. //# Copyright (c) Mark Gillard //# See https://github.com/marzer/tomlplusplus/blob/master/LICENSE for the full license text. // SPDX-License-Identifier: MIT #pragma once #include "forward_declarations.h" #include "std_string.h" #include "header_start.h" TOML_IMPL_NAMESPACE_START { // Q: "why does print_to_stream() exist? why not just use ostream::write(), ostream::put() etc?" // A: - I'm supporting C++20's char8_t as well; wrapping streams allows switching string modes transparently. // - I'm using to format numerics. Faster and locale-independent. // - I can (potentially) avoid forcing users to drag in and . // - Strings in C++. Honestly. TOML_API TOML_ATTR(nonnull) void print_to_stream(std::ostream&, const char*, size_t); TOML_API void print_to_stream(std::ostream&, std::string_view); TOML_API void print_to_stream(std::ostream&, const std::string&); TOML_API void print_to_stream(std::ostream&, char); TOML_API void print_to_stream(std::ostream&, int8_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, int16_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, int32_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, int64_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, uint8_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, uint16_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, uint32_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, uint64_t, value_flags = {}); TOML_API void print_to_stream(std::ostream&, float, value_flags = {}); TOML_API void print_to_stream(std::ostream&, double, value_flags = {}); TOML_API void print_to_stream(std::ostream&, bool); TOML_API void print_to_stream(std::ostream&, const toml::date&); TOML_API void print_to_stream(std::ostream&, const toml::time&); TOML_API void print_to_stream(std::ostream&, const toml::time_offset&); TOML_API void print_to_stream(std::ostream&, const toml::date_time&); TOML_API void print_to_stream(std::ostream&, const source_position&); TOML_API void print_to_stream(std::ostream&, const source_region&); TOML_API void print_to_stream(std::ostream&, const array&); TOML_API void print_to_stream(std::ostream&, const table&); TOML_API void print_to_stream(std::ostream&, const value&); TOML_API void print_to_stream(std::ostream&, const value&); TOML_API void print_to_stream(std::ostream&, const value&); TOML_API void print_to_stream(std::ostream&, const value&); TOML_API void print_to_stream(std::ostream&, const value&); TOML_API void print_to_stream(std::ostream&, const value