Files
aoccpp2025/utils.h
2025-12-04 22:12:32 -05:00

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();
}
}