2#include <barretenberg/common/log.hpp>
8inline size_t get_file_size(std::string
const& filename)
11 std::ifstream file(filename, std::ios::binary | std::ios::ate);
16 file.seekg(0, std::ios::end);
17 return (
size_t)file.tellg();
20inline std::vector<uint8_t> read_file(
const std::string& filename,
size_t bytes = 0)
23 auto size = get_file_size(filename);
25 throw std::runtime_error(
"File is empty or there's an error reading it: " + filename);
28 auto to_read = bytes == 0 ? size : bytes;
30 std::ifstream file(filename, std::ios::binary);
32 throw std::runtime_error(
"Unable to open file: " + filename);
36 std::vector<uint8_t> fileData(to_read);
39 file.read(
reinterpret_cast<char*
>(fileData.data()), (std::streamsize)to_read);
44inline void write_file(
const std::string& filename, std::vector<uint8_t>
const& data)
46 std::ofstream file(filename, std::ios::binary);
48 throw std::runtime_error(
"Failed to open data file for writing");
50 file.write((
char*)data.data(), (std::streamsize)data.size());