#pragma once #include "fs/VFS.h" #include #include namespace TmpFS { class FileSystem : public VFS::FileSystem { public: VFS::Inode& root() const override { return *m_root_inode; } static Result> create(); virtual ~FileSystem() = default; private: FileSystem(); Result set_root(SharedPtr root); SharedPtr m_root_inode; Vector> m_inodes; }; class Inode : public VFS::Inode { public: Inode(); void set_fs(FileSystem& fs, Badge); Result find(const char*) const override { return err(ENOTSUP); } VFS::FileSystem& fs() const override { return *m_fs; } virtual ~Inode() = default; private: VFS::FileSystem* m_fs; }; }