summaryrefslogtreecommitdiffstats
path: root/third_party/rust/tokio/src/fs/rename.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/tokio/src/fs/rename.rs')
-rw-r--r--third_party/rust/tokio/src/fs/rename.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/third_party/rust/tokio/src/fs/rename.rs b/third_party/rust/tokio/src/fs/rename.rs
new file mode 100644
index 0000000000..4f980821d2
--- /dev/null
+++ b/third_party/rust/tokio/src/fs/rename.rs
@@ -0,0 +1,17 @@
+use crate::fs::asyncify;
+
+use std::io;
+use std::path::Path;
+
+/// Renames a file or directory to a new name, replacing the original file if
+/// `to` already exists.
+///
+/// This will not work if the new name is on a different mount point.
+///
+/// This is an async version of [`std::fs::rename`](std::fs::rename)
+pub async fn rename(from: impl AsRef<Path>, to: impl AsRef<Path>) -> io::Result<()> {
+ let from = from.as_ref().to_owned();
+ let to = to.as_ref().to_owned();
+
+ asyncify(move || std::fs::rename(from, to)).await
+}