pub mod wave_01_core;
pub mod wave_02_graph;
pub mod wave_03_search;
pub mod wave_04_edit;
pub mod wave_05_cfg;
pub mod wave_06_analysis;
pub mod wave_07_workflow;
use std::path::PathBuf;
use std::sync::atomic::{AtomicU64, Ordering};
static PROJECT_SEQ: AtomicU64 = AtomicU64::new(0);
pub fn unique_project_dir() -> (tempfile::TempDir, PathBuf) {
let temp = tempfile::tempdir().expect("create temp dir");
let id = PROJECT_SEQ.fetch_add(1, Ordering::Relaxed);
let project_path = temp.path().join(format!("proj_{id}"));
std::fs::create_dir(&project_path).expect("create project dir");
(temp, project_path)
}