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 Case | Status | Duration | Median Deviation | Log | Graph |
|---|