diff include/core/filesystem.h @ 61:327568ad9be9

core/fs: finish class-ification of paths
author Paper <mrpapersonic@gmail.com>
date Fri, 29 Sep 2023 15:52:31 -0400
parents 327e9a5c72f1
children 3d2decf093bb
line wrap: on
line diff
--- a/include/core/filesystem.h	Fri Sep 29 13:52:50 2023 -0400
+++ b/include/core/filesystem.h	Fri Sep 29 15:52:31 2023 -0400
@@ -4,14 +4,27 @@
 
 namespace Filesystem {
 
-bool CreateDirectories(const std::string& path);
-bool Exists(const std::string& path);
-std::string Basename(const std::string& path);
-std::string Stem(const std::string& path);
-std::string GetParentDirectory(const std::string& path);
-std::string GetDotPath(); // %APPDATA%/minori, ~/Library/Application Support/minori, ~/.config/minori...
-std::string GetConfigPath(); // (dotpath)/config.json
-std::string GetAnimeDBPath(); // (dotpath)/anime/db.json
+class Path {
+        public:
+                Path();
+                Path(const std::string& path);
+                Path(const Path& path);
+                bool CreateDirectories() const;
+                bool Exists() const;
+                std::string Basename() const;
+                std::string Stem() const;
+                std::string Extension() const;
+                Path GetParent() const;
+                void SetPath(const std::string& path);
+		std::string GetPath() const;
+
+        private:
+                std::string _path;
+};
+
+Path GetDotPath(); // %APPDATA%/minori, ~/Library/Application Support/minori, ~/.config/minori...
+Path GetConfigPath(); // (dotpath)/config.json
+Path GetAnimeDBPath(); // (dotpath)/anime/db.json
 
 } // namespace Filesystem