/** * @file filesystem.hpp * @author Felix Morgner (felix.morgner@gmail.com) * @since 1.0.0 */ #ifndef WANDA_FILESYSTEM_HPP #define WANDA_FILESYSTEM_HPP #include #include #include namespace wanda { /** * @brief Covenience alias for path lists */ using path_list = std::vector; /** * @brief The default scan filter, allowing only regular files to pass */ constexpr inline auto default_filter = [](std::filesystem::path const & path) { return is_regular_file(path); }; /** * @brief Scan the given folder for files */ std::optional scan(std::filesystem::path folder, bool(filter)(std::filesystem::path const &) = default_filter); /** * @brief Pick a random path from the given list */ std::filesystem::path random_pick(path_list const & paths); } // namespace wanda #endif