#pragma once #include #include #include namespace os { class Directory { public: static Result> open(StringView path); static Result> openat(int dirfd, StringView path); enum class Filter { None, Hidden, ParentAndBase }; Result next(Filter filter); int fd() { return dirfd(m_dirp); } ~Directory(); private: Directory(Badge); DIR* m_dirp { nullptr }; }; }