#pragma once #include #include #include #include #include namespace bmcweb { // This is a naive replacement for boost::split until // https://github.com/llvm/llvm-project/issues/40486 // is resolved inline void split(std::vector& strings, std::string_view str, char delim) { size_t start = 0; size_t end = 0; while (end <= str.size()) { end = str.find(delim, start); strings.emplace_back(str.substr(start, end - start)); start = end + 1; } } inline char asciiToLower(char c) { // Converts a character to lower case without relying on std::locale if ('A' <= c && c <= 'Z') { c -= ('A' - 'a'); } return c; } inline bool asciiIEquals(std::string_view left, std::string_view right) { return std::ranges::equal(left, right, [](char lChar, char rChar) { return asciiToLower(lChar) == asciiToLower(rChar); }); } } // namespace bmcweb