From e5a2b0d442acfb816f7f9a6e0e9661bc87f67cc5 Mon Sep 17 00:00:00 2001 From: Olivier BICHLER <olivier.bichler@cea.fr> Date: Mon, 17 Mar 2025 14:44:14 +0100 Subject: [PATCH] Remove regex dependency --- include/aidge/utils/DynamicAttributes.hpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/include/aidge/utils/DynamicAttributes.hpp b/include/aidge/utils/DynamicAttributes.hpp index be3bc1a97..352ea0f50 100644 --- a/include/aidge/utils/DynamicAttributes.hpp +++ b/include/aidge/utils/DynamicAttributes.hpp @@ -19,7 +19,6 @@ #include <cassert> #include <string> #include <typeindex> -#include <regex> #include "aidge/utils/future_std/any.hpp" #include "aidge/utils/Attributes.hpp" @@ -486,14 +485,24 @@ struct fmt::formatter<T, Char, std::enable_if_t<std::is_convertible<T*, Aidge:: template<typename FormatContext> inline auto format(const Aidge::Attributes& attrs, FormatContext& ctx) const { + auto indent = [](const std::string& subAttrs, const std::string& prefix = " ") { + std::string result(prefix); + for (size_t i = 0; i < subAttrs.length(); ++i) { + result += subAttrs[i]; + if (subAttrs[i] == '\n') { + result += prefix; + } + } + return result; + }; + std::string attrsStr; for (const auto& attr : attrs.getAttrs()) { const auto anyUtilsIt = Aidge::DynamicAttributes::mAnyUtils.find(attr.second.type()); if (attr.second.type() == typeid(Aidge::DynamicAttributes)) { auto subAttrs = anyUtilsIt->second->str(attr.second); - subAttrs = std::regex_replace(subAttrs, std::regex("(^|\n)"), "$1 "); - attrsStr += fmt::format("{}:\n{}\n", attr.first, subAttrs); + attrsStr += fmt::format("{}:\n{}\n", attr.first, indent(subAttrs)); } else { if (anyUtilsIt != Aidge::DynamicAttributes::mAnyUtils.end()) { -- GitLab