sync/src/utils.rs
Rama main · réplica de lectura del repositorio original.
use std::fs::{self, File};
use std::io::Write;
use tempfile::tempdir;
#[derive(Default)]
pub struct TempDirBuilder {
files: Vec<(String, String)>,
}
impl TempDirBuilder {
pub fn new() -> Self {
Self::default()
}
pub fn add(&mut self, path: &str, content: &str) -> &mut Self {
self.files.push((path.to_string(), content.to_string()));
self
}
pub fn create(&self) -> tempfile::TempDir {
let temp_dir = tempdir().expect("Failed to create temp dir");
for (path, content) in &self.files {
let file_path = temp_dir.path().join(path);
if let Some(dir) = file_path.parent() {
fs::create_dir_all(dir).expect("Failed to create directory");
}
let mut file = File::create(&file_path).expect("Failed to create test file");
writeln!(file, "{content}").expect("Failed to write to test file");
}
temp_dir
}
}