aboutsummaryrefslogtreecommitdiff
path: root/src/fs/symlink_dir.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/symlink_dir.rs')
-rw-r--r--src/fs/symlink_dir.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/fs/symlink_dir.rs b/src/fs/symlink_dir.rs
new file mode 100644
index 0000000..736e762
--- /dev/null
+++ b/src/fs/symlink_dir.rs
@@ -0,0 +1,19 @@
+use crate::fs::asyncify;
+
+use std::io;
+use std::path::Path;
+
+/// Creates a new directory symlink on the filesystem.
+///
+/// The `dst` path will be a directory symbolic link pointing to the `src`
+/// path.
+///
+/// This is an async version of [`std::os::windows::fs::symlink_dir`][std]
+///
+/// [std]: std::os::windows::fs::symlink_dir
+pub async fn symlink_dir(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> io::Result<()> {
+ let src = src.as_ref().to_owned();
+ let dst = dst.as_ref().to_owned();
+
+ asyncify(move || std::os::windows::fs::symlink_dir(src, dst)).await
+}