6#ifndef ATLASGAMEMANAGER_FILESCANNER_HPP
7#define ATLASGAMEMANAGER_FILESCANNER_HPP
23 std::string
ext {
"" };
24 std::filesystem::path
path {
"" };
32 std::filesystem::path path_in,
33 const std::filesystem::path& source,
34 const std::size_t filesize,
35 const std::uint8_t file_depth ) :
37 ext( path_in.extension().string() ),
52 std::optional< FileInfo >
value { std::nullopt };
68 if ( from.filename ==
"" )
69 throw AtlasException(
"FileScannerGenerator: return value had no filename!" );
71 value = std::move( from );
77 throw AtlasException(
"FromScannerGenerator:: yield value had no filename!" );
79 value = std::move( from );
122 bool operator==(
const std::unreachable_sentinel_t )
const;
135 std::unreachable_sentinel_t
end() {
return {}; }
Definition FileScanner.hpp:105
FileScanner & m_scanner
Definition FileScanner.hpp:107
iterator(const std::size_t idx, FileScanner &scanner)
Definition FileScanner.hpp:111
std::size_t m_idx
Definition FileScanner.hpp:106
const FileInfo & operator*()
Definition FileScanner.hpp:125
FileScanner::iterator & operator++()
Definition FileScanner.hpp:113
bool operator==(const std::unreachable_sentinel_t) const
Definition FileScanner.cpp:141
std::filesystem::path m_path
Definition FileScanner.hpp:97
FileScanner(const std::filesystem::path &path)
Definition FileScanner.cpp:111
friend class iterator
Definition FileScanner.hpp:102
const FileInfo & at(std::size_t index)
Definition FileScanner.cpp:117
FileScannerGenerator file_scanner
Definition FileScanner.hpp:98
std::unreachable_sentinel_t end()
Definition FileScanner.hpp:135
std::filesystem::path path() const
Definition FileScanner.hpp:137
std::vector< FileInfo > files
Definition FileScanner.hpp:99
iterator begin()
Definition FileScanner.hpp:132
Definition engineDetection.hpp:15
Definition exceptions.hpp:17
Definition FileScanner.hpp:21
std::string filename
Definition FileScanner.hpp:22
std::filesystem::path path
Definition FileScanner.hpp:24
std::string ext
Definition FileScanner.hpp:23
std::uint8_t depth
Definition FileScanner.hpp:26
FileInfo(std::filesystem::path path_in, const std::filesystem::path &source, const std::size_t filesize, const std::uint8_t file_depth)
Definition FileScanner.hpp:31
std::size_t size
Definition FileScanner.hpp:25
std::filesystem::path relative
Definition FileScanner.hpp:27
Definition FileScanner.hpp:51
std::suspend_always final_suspend() noexcept
Definition FileScanner.hpp:62
void return_value(FileInfo &&from)
Definition FileScanner.hpp:66
std::suspend_always initial_suspend() noexcept
Definition FileScanner.hpp:60
std::optional< FileInfo > value
Definition FileScanner.hpp:52
FileScannerGenerator get_return_object()
Definition FileScanner.hpp:55
void unhandled_exception()
Definition FileScanner.hpp:64
std::suspend_always yield_value(FileInfo from)
Definition FileScanner.hpp:74
std::exception_ptr exception
Definition FileScanner.hpp:53
Definition FileScanner.hpp:46
~FileScannerGenerator()
Definition FileScanner.hpp:88
FileScannerGenerator(handle_type h)
Definition FileScanner.hpp:86
handle_type m_h
Definition FileScanner.hpp:84
std::coroutine_handle< promise_type > handle_type
Definition FileScanner.hpp:48
FileInfo operator()()
Definition FileScanner.cpp:17