refactor utils

This commit is contained in:
2025-12-04 22:12:32 -05:00
parent 9282b3d531
commit 4b1da89690
5 changed files with 54 additions and 64 deletions

16
utils.h
View File

@@ -7,13 +7,27 @@
#include <sstream>
#include <string_view>
constexpr std::string_view to_string_view(const std::ranges::subrange<const char *> cs) {
namespace utils {
template<typename T>
concept StringLike = requires(const T &t)
{
{ std::string_view{t} } -> std::convertible_to<std::string_view>;
{ t.size() } -> std::convertible_to<size_t>;
};
constexpr std::string_view to_string_view(const std::ranges::subrange<const char *>& cs) {
return std::string_view{cs.data(), cs.size()};
}
constexpr bool non_empty(const std::string_view sv) {
return !sv.empty();
}
inline std::string read_file(std::string_view path) {
std::ifstream input(path.data());
std::stringstream buffer;
buffer << input.rdbuf();
return buffer.str();
}
}