fix: move is_dir & is_file to path

This commit is contained in:
YuKun Liu 2022-09-22 17:01:38 -07:00
parent 1c59c902a6
commit b59e41eaee
2 changed files with 21 additions and 9 deletions

View file

@ -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;

View file

@ -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())
});
}
}
}