Line data Source code
1 : #include "core/data/FileReader.hpp"
2 : #include "core/data/IFileReader.hpp"
3 :
4 : #include <fstream>
5 : #include <sstream>
6 :
7 : namespace Soldank
8 : {
9 0 : std::expected<std::string, FileReaderError> FileReader::Read(const std::string& file_path,
10 : std::ios_base::openmode mode) const
11 : {
12 0 : std::ifstream file_to_read(file_path, mode);
13 0 : if (!file_to_read.is_open()) {
14 0 : return std::unexpected(FileReaderError::FileNotFound);
15 : }
16 :
17 0 : std::stringstream buffer;
18 0 : buffer << file_to_read.rdbuf();
19 :
20 0 : if (buffer.bad()) {
21 0 : return std::unexpected(FileReaderError::BufferError);
22 : }
23 :
24 0 : return buffer.str();
25 0 : }
26 : } // namespace Soldank
|