use crate::error::IoResultExt;
use crate::TempDir;
use std::io;
use std::path::PathBuf;
pub fn create(
path: PathBuf,
permissions: Option<&std::fs::Permissions>,
keep: bool,
) -> io::Result<TempDir> {
let mut dir_options = std::fs::DirBuilder::new();
#[cfg(not(target_os = "wasi"))]
{
use std::os::unix::fs::{DirBuilderExt, PermissionsExt};
if let Some(p) = permissions {
dir_options.mode(p.mode());
}
}
dir_options
.create(&path)
.with_err_path(|| &path)
.map(|_| TempDir {
path: path.into_boxed_path(),
keep,
})
}