#pragma once

#include <exception>

#include <filesystem>

namespace kuiper
{
namespace exceptions
{
    class file_not_found : public std::exception {
      public:
        file_not_found(const std::filesystem::path& path)
            : m_path(path) {};

      public:
        inline std::filesystem::path path() const noexcept {
            return m_path;
        }

        // Implementing std::exception
        inline const char* what() const noexcept override {
            return "file not found";
        }

      private:
        std::filesystem::path m_path;
    };
} // namespace exceptions
} // namespace kuiper
