1+ // / @copyright Copyright (C) 2022-2024 LAAS-CNRS, 2022-2025 INRIA
12#include " aligator/utils/logger.hpp"
23
34#include < fmt/color.h>
@@ -13,25 +14,26 @@ void Logger::printHeadline() {
1314 return ;
1415 std::vector<std::string> formattedCols;
1516 formattedCols.reserve (m_colSpecs.size ());
16- for (const auto &[name, spec] : m_colSpecs) {
17+ for (const auto &name : m_columnNames) {
18+ const auto &spec = m_colSpecs[name];
1719 formattedCols.push_back (fmt::format (fstr, name, spec.first + 1 ));
1820 }
19- fmt::print (fmt::emphasis::bold, " {}" , fmt::join (formattedCols, " ┬" ));
20- fmt::print (" \n " );
21+ fmt::print (fmt::emphasis::bold, " {}\n " , fmt::join (formattedCols, " ┬" ));
2122}
2223
2324void Logger::log () {
2425 if (!active)
2526 return ;
2627 std::vector<std::string_view> cols;
2728 cols.reserve (m_colSpecs.size ());
28- for (const auto &[ name, spec] : m_colSpecs ) {
29+ for (const auto &name : m_columnNames ) {
2930 cols.emplace_back (m_currentLine[name]);
3031 }
3132 fmt::print (" {}\n " , fmt::join (cols, " │" ));
3233}
3334
3435void Logger::reset () {
36+ m_columnNames.clear ();
3537 m_colSpecs.clear ();
3638 m_currentLine.clear ();
3739}
@@ -51,17 +53,20 @@ void Logger::finish(bool conv) {
5153
5254void Logger::addColumn (std::string_view name, uint width,
5355 std::string_view format) {
54- m_colSpecs[name] = {width, std::string (format)};
56+ m_columnNames.emplace_back (name);
57+ m_colSpecs.emplace (name, std::pair (width, std::string (format)));
5558}
5659
5760void Logger::addEntry (std::string_view name, double val) {
5861 const auto spec = m_colSpecs[name];
59- m_currentLine[name] = fmt::format (fmt::runtime (spec.second ), val, spec.first );
62+ m_currentLine.insert_or_assign (
63+ name, fmt::format (fmt::runtime (spec.second ), val, spec.first ));
6064}
6165
6266void Logger::addEntry (std::string_view name, size_t val) {
6367 const auto spec = m_colSpecs[name];
64- m_currentLine[name] = fmt::format (fmt::runtime (spec.second ), val, spec.first );
68+ m_currentLine.insert_or_assign (
69+ name, fmt::format (fmt::runtime (spec.second ), val, spec.first ));
6570}
6671
6772} // namespace aligator
0 commit comments