diff --git a/src/libs/nanotrace/nanotracehr.h b/src/libs/nanotrace/nanotracehr.h index 5f2b031d55a..37e06b559b4 100644 --- a/src/libs/nanotrace/nanotracehr.h +++ b/src/libs/nanotrace/nanotracehr.h @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -247,8 +248,10 @@ void convertToString(String &string, const Container &values) { string.append('['); - for (const auto &value : values) + for (const auto &value : values) { convertToString(string, value); + string.append(','); + } if (values.size()) string.pop_back(); @@ -256,6 +259,42 @@ void convertToString(String &string, const Container &values) string.append(']'); } +template +struct is_map : std::false_type +{}; + +template +struct is_map> : std::true_type +{}; + +template +struct is_map> : std::true_type +{}; + +template::value, bool> = true> +void convertToString(String &string, const Map &map) +{ + string.append('{'); + + for (const auto &[key, value] : map) { + convertToString(string, key); + string.append(':'); + convertToString(string, value); + string.append(','); + } + + if (map.begin() != map.end()) + string.pop_back(); + + string.append('}'); +} + +template +void convertToString(String &string, const QMap &dictonary) +{ + convertToString(string, dictonary.asKeyValueRange()); +} + namespace Internal { template