/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IReadDir.hpp Date: 2022-07-22 Author: Reece ***/ #pragma once namespace Aurora::IO::FS { struct StatEx : Stat { /** * @brief A normalized file path of the file or directory */ AuString path; /** * @brief The filename part of a full path */ AuString fileName; }; struct IReadDir { /** * @brief Iterates over files and directories * * @return * 1) a temporary pointer to an `StatEx` of the next file/dir in the directory * 1) nullptr to indicate end of listing * 2) nullptr to indicate error; wont recover TODO (Reece): this sucks but it's still an acceptable ambiguation for end of iteration. */ virtual StatEx *Next() = 0; }; }