     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    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
    }