Prechádzať zdrojové kódy

fix: move `is_dir` & `is_file` to path

YuKun Liu 2 rokov pred
rodič
commit
b59e41eaee
2 zmenil súbory, kde vykonal 21 pridanie a 9 odobranie
  1. 0 8
      src/plugin/interface/fs.rs
  2. 21 1
      src/plugin/interface/path.rs

+ 0 - 8
src/plugin/interface/fs.rs

@@ -14,14 +14,6 @@ impl UserData for PluginFileSystem {
             let path = PathBuf::from(path);
             Ok(path.exists())
         });
-        methods.add_function("is_dir", |_, path: String| {
-            let path = PathBuf::from(path);
-            Ok(path.is_dir())
-        });
-        methods.add_function("is_file", |_, path: String| {
-            let path = PathBuf::from(path);
-            Ok(path.is_file())
-        });
         methods.add_function("create_dir", |_, args: (String, bool)| {
             let path = args.0;
             let recursive = args.1;

+ 21 - 1
src/plugin/interface/path.rs

@@ -5,10 +5,30 @@ use mlua::UserData;
 pub struct PluginPath;
 impl UserData for PluginPath {
     fn add_methods<'lua, M: mlua::UserDataMethods<'lua, Self>>(methods: &mut M) {
+        // join function
         methods.add_function("join", |_, args: (String, String)| {
             let current_path = PathBuf::from(args.0);
             let new_path = current_path.join(args.1);
             Ok(new_path.to_str().unwrap().to_string())
         });
+
+        // parent function
+        methods.add_function("parent", |_, path: String| {
+            let current_path = PathBuf::from(&path);
+            let parent = current_path.parent();
+            if parent.is_none() {
+                return Ok(path);
+            } else {
+                return Ok(parent.unwrap().to_str().unwrap().to_string());
+            }
+        });
+        methods.add_function("is_dir", |_, path: String| {
+            let path = PathBuf::from(path);
+            Ok(path.is_dir())
+        });
+        methods.add_function("is_file", |_, path: String| {
+            let path = PathBuf::from(path);
+            Ok(path.is_file())
+        });
     }
-}
+}