diff --git a/src/odr/internal/util/file_util.cpp b/src/odr/internal/util/file_util.cpp index e3dd0e66..c67fee59 100644 --- a/src/odr/internal/util/file_util.cpp +++ b/src/odr/internal/util/file_util.cpp @@ -7,6 +7,14 @@ namespace odr::internal::util { +std::size_t file::size(const std::string &path) { + std::ifstream in(path, std::ios::binary | std::ios::ate); + if (!in.is_open() || in.fail()) { + throw FileNotFound(); + } + return in.tellg(); +} + std::string file::read(const std::string &path) { std::ifstream in(path); if (!in.is_open() || in.fail()) { diff --git a/src/odr/internal/util/file_util.hpp b/src/odr/internal/util/file_util.hpp index 023d249b..1285996f 100644 --- a/src/odr/internal/util/file_util.hpp +++ b/src/odr/internal/util/file_util.hpp @@ -3,5 +3,9 @@ #include namespace odr::internal::util::file { + +std::size_t size(const std::string &path); + std::string read(const std::string &path); + } // namespace odr::internal::util::file