9#ifndef DRYCHEM_COMMON_UTILITIES_INCLUDE_COMMON_UTILS_FILES_FILEPARSING_FILEPARSER_HPP
10#define DRYCHEM_COMMON_UTILITIES_INCLUDE_COMMON_UTILS_FILES_FILEPARSING_FILEPARSER_HPP
37 if (std::filesystem::is_regular_file(
fileName))
41 fileContentCache.assign(std::istreambuf_iterator<char>(inputFile), std::istreambuf_iterator<char>());
44 throw FileNotFound {
"Common-Utilities", __FILE__, __LINE__};
67 template<
typename F,
typename... TArgs>
74 if constexpr (std::is_void_v<std::invoke_result_t<F, std::string, TArgs...>>)
75 std::invoke(std::forward<F>(f_), std::cref(
fileContentCache), std::forward<TArgs>(args_)...);
77 return std::invoke(std::forward<F>(f_), std::cref(
fileContentCache), std::forward<TArgs>(args_)...);
Definition fileExceptions.hpp:25
void clearCache() noexcept
Definition fileParser.hpp:80
FileParser(const std::filesystem::path &fileName_) noexcept
Definition fileParser.hpp:48
std::string fileContentCache
Definition fileParser.hpp:28
const std::filesystem::path fileName
Definition fileParser.hpp:27
constexpr decltype(auto) parseDataFile(F &&f_, TArgs &&... args_) const
Definition fileParser.hpp:68
std::filesystem::path getFileName() const noexcept
Definition fileParser.hpp:50
void readFileContent() const
Definition fileParser.hpp:35
Definition fileParser.hpp:23