34 lines
734 B
C++
34 lines
734 B
C++
//
|
|
// Created by Grant Horner on 12/4/25.
|
|
//
|
|
|
|
#pragma once
|
|
#include <fstream>
|
|
#include <sstream>
|
|
#include <string_view>
|
|
|
|
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();
|
|
}
|
|
}
|