map-file: memory-map a file
#include "map-file.hh"
// print out file content
auto file = tue::map_file("filename");
for (auto i=0u; i<file->size; i++)
std::cerr << reinterpret_cast<char*>(file->data)[i];
std::cerr << "\n";
namespace tue
{
struct file_map final
{
using uptr = std::unique_ptr<file_map>;
void* data;
std::size_t size;
};
file_map::uptr map_file(std::string const& path);
inline namespace map_file_exceptions
{
struct open_failure : std::runtime_error;
struct stat_failure : std::runtime_error;
struct map_failure : std::runtime_error;
}
}