1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::{
    fs,
    path::{Path, PathBuf},
};

/// Move dir content from `from` dir to `to` dir
pub fn move_dir_content(from: &Path, to: &Path) -> std::io::Result<()> {
    fs::create_dir_all(&to)?;

    for entry in fs::read_dir(&from)? {
        let entry = entry?;
        let path = entry.path();
        let path = path
            .strip_prefix(&from)
            .expect("Strip prefix should have worked");
        fs::rename(from.join(&path), to.join(&path))?;
    }

    Ok(())
}

pub fn append_to_path(path: PathBuf, ext: &str) -> PathBuf {
    let mut path = path.into_os_string();
    path.push(ext);
    path.into()
}