44#include < memory>
55
66namespace odr ::internal {
7- class Path ;
7+ class AbsPath ;
88} // namespace odr::internal
99
1010namespace odr ::internal::abstract {
@@ -20,7 +20,7 @@ class FileWalker {
2020 [[nodiscard]] virtual bool end () const = 0;
2121 [[nodiscard]] virtual std::uint32_t depth () const = 0;
2222 // TODO by reference?
23- [[nodiscard]] virtual Path path () const = 0;
23+ [[nodiscard]] virtual AbsPath path () const = 0;
2424 [[nodiscard]] virtual bool is_file () const = 0;
2525 [[nodiscard]] virtual bool is_directory () const = 0;
2626
@@ -33,31 +33,31 @@ class ReadableFilesystem {
3333public:
3434 virtual ~ReadableFilesystem () = default ;
3535
36- [[nodiscard]] virtual bool exists (const Path &path) const = 0;
37- [[nodiscard]] virtual bool is_file (const Path &path) const = 0;
38- [[nodiscard]] virtual bool is_directory (const Path &path) const = 0;
36+ [[nodiscard]] virtual bool exists (const AbsPath &path) const = 0;
37+ [[nodiscard]] virtual bool is_file (const AbsPath &path) const = 0;
38+ [[nodiscard]] virtual bool is_directory (const AbsPath &path) const = 0;
3939
4040 [[nodiscard]] virtual std::unique_ptr<FileWalker>
41- file_walker (const Path &path) const = 0 ;
41+ file_walker (const AbsPath &path) const = 0 ;
4242
4343 [[nodiscard]] virtual std::shared_ptr<abstract::File>
44- open (const Path &path) const = 0 ;
44+ open (const AbsPath &path) const = 0 ;
4545};
4646
4747class WriteableFilesystem {
4848public:
4949 virtual ~WriteableFilesystem () = default ;
5050
51- virtual std::unique_ptr<std::ostream> create_file (const Path &path) = 0;
52- virtual bool create_directory (const Path &path) = 0;
51+ virtual std::unique_ptr<std::ostream> create_file (const AbsPath &path) = 0;
52+ virtual bool create_directory (const AbsPath &path) = 0;
5353
54- virtual bool remove (const Path &path) = 0;
55- virtual bool copy (const Path &from, const Path &to) = 0;
54+ virtual bool remove (const AbsPath &path) = 0;
55+ virtual bool copy (const AbsPath &from, const AbsPath &to) = 0;
5656 virtual std::shared_ptr<abstract::File> copy (const abstract::File &from,
57- const Path &to) = 0;
57+ const AbsPath &to) = 0;
5858 virtual std::shared_ptr<abstract::File>
59- copy (std::shared_ptr<abstract::File> from, const Path &to) = 0 ;
60- virtual bool move (const Path &from, const Path &to) = 0;
59+ copy (std::shared_ptr<abstract::File> from, const AbsPath &to) = 0 ;
60+ virtual bool move (const AbsPath &from, const AbsPath &to) = 0;
6161};
6262
6363class Filesystem : public ReadableFilesystem , public WriteableFilesystem {};
0 commit comments