use std::{
path::PathBuf,
sync::atomic::{AtomicU64, Ordering},
};
static COUNTER: AtomicU64 = AtomicU64::new(0);
fn unique_path(tag: &str, suffix: &str) -> PathBuf {
let seq = COUNTER.fetch_add(1, Ordering::Relaxed);
std::env::temp_dir().join(format!(
"kinjo-test-{tag}-{}-{seq}{suffix}",
std::process::id()
))
}
pub fn temp_dir(tag: &str) -> PathBuf {
let dir = unique_path(tag, "");
std::fs::create_dir_all(&dir).unwrap();
dir
}
pub fn temp_file(tag: &str, contents: &str) -> PathBuf {
let path = unique_path(tag, ".toml");
std::fs::write(&path, contents).unwrap();
path
}
pub fn remove(path: &std::path::Path) {
let _ = std::fs::remove_file(path);
let _ = std::fs::remove_dir_all(path);
}