blob: 0aa8a447c07e5022e73ee469983fcae626f34104 [file] [log] [blame]
#pragma once
#include <string>
#include <string_view>
#include <vector>
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<std::string>& 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 void append_with_sep(std::string& out, const char sep,
const std::string& arg)
{
if (!out.empty())
{
out += sep;
}
out += arg;
}
// join 'args' strings with a separator without creating any intermediate
// objects, append to 'out'
template <typename... Args>
void append_with_sep(std::string& out, const char sep, const std::string& arg,
const Args&... args)
{
append_with_sep(out, sep, arg);
append_with_sep(out, sep, args...);
}
} // namespace bmcweb