#include "string_utils.h" #include "container_utils.h" #include "network_utils.h" #include #include #include namespace sls { std::vector split(const std::string &strToSplit, char delimeter) { std::stringstream ss(strToSplit); std::string item; std::vector splittedStrings; while (std::getline(ss, item, delimeter)) { splittedStrings.push_back(item); } return splittedStrings; } std::string concatenateNonEmptyStrings(const std::vector &vec) { std::string ret; for (const auto &s : vec) if (!s.empty()) ret += s + '+'; return ret; } std::string concatenateIfDifferent(const std::vector &container) { if (allEqual(container)) { return container.front(); } else { std::string result; for (const auto &s : container) result += s + '+'; return result; } } template std::string concatenateIfDifferent(const std::vector &container) { if (allEqual(container)) { return container.front().str(); } else { std::string result; for (const auto &s : container) result += s.str() + '+'; return result; } } std::string RemoveUnit(std::string &str) { auto it = str.begin(); while (it != str.end()) { if (std::isalpha(*it)) break; ++it; } auto pos = it - str.begin(); auto unit = str.substr(pos); str.erase(it, end(str)); return unit; } template std::string concatenateIfDifferent(const std::vector &); template std::string concatenateIfDifferent(const std::vector &); }; // namespace sls