Test Details Overview

Keep the TOML parser out of the config header (#5214)

* Keep the TOML parser out of the config header

`nano/lib/config.hpp` included `nano/lib/tomlconfig.hpp` only for the helpers that read a config
file into a `tomlconfig`, which a dozen files call. Every file that includes the config header, and
the logging header that only names `tomlconfig` by reference, got the header-only cpptoml parser
with it: 250 of the 417 translation units, so it was parsed far more often than it was used.

The config file helpers move to `nano/lib/config_file.hpp`, which the files that read config files
include. The logging header uses the forward declaration from `nano/lib/fwd.hpp`. cpptoml now
reaches 39 translation units.

Files that implement `serialize_toml` or `deserialize_toml`, and files that relied on cpptoml for
standard headers, include those headers themselves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Include what the logging, JSON error and stats sink headers use

`logging.hpp` names `std::function` and `std::string`, `json_error_response.hpp` takes a
`std::function` and `std::string`, and `stats_sinks.hpp` writes to a `std::ostringstream`, but each
got those headers only through other includes. `logging.cpp` implements the TOML serializers and
now includes `tomlconfig.hpp` itself rather than through `config_file.hpp`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

__________

Type: commit

Hash: dec36317f80e9b4ab9bef9ab23b4833c2166727d

Created: yesterday

__________

gr0v1ty/nano-node:dec36317f80e9b4ab9bef9ab23b4833c2166727d

Test Results

Test Case Status Duration Median Deviation Log Graph