#include #include "string.hpp" namespace utils::string { const char* va(const char* fmt, ...) { static thread_local va_provider<8, 256> provider; va_list ap; va_start(ap, fmt); const char* result = provider.get(fmt, ap); va_end(ap); return result; } std::string to_lower(std::string text) { std::transform(text.begin(), text.end(), text.begin(), [](const char input) { return CHAR(tolower(input)); }); return text; } std::string to_upper(std::string text) { std::transform(text.begin(), text.end(), text.begin(), [](const char input) { return CHAR(toupper(input)); }); return text; } std::string dump_hex(const std::string& data, const std::string& separator) { std::string result; for (unsigned int i = 0; i < data.size(); ++i) { if (i > 0) { result.append(separator); } result.append(va("%02X", data[i] & 0xFF)); } return result; } }