pub(super) const SYNC_HWM_CKPT_STATE: &str = "STATE";
pub(super) fn sync_hwm_ckpt_dir(data_dir: &std::path::Path, core_id: usize) -> std::path::PathBuf {
data_dir
.join("sync-hwm-ckpt")
.join(format!("core-{core_id}"))
}
pub(super) fn sync_hwm_ckpt_state_path(ckpt_dir: &std::path::Path) -> std::path::PathBuf {
ckpt_dir.join(SYNC_HWM_CKPT_STATE)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn per_core_dirs_are_distinct() {
let base = std::path::Path::new("/data");
let d0 = sync_hwm_ckpt_dir(base, 0);
let d1 = sync_hwm_ckpt_dir(base, 1);
assert_ne!(d0, d1);
assert!(d0.to_str().expect("utf8 path").contains("core-0"));
assert!(d1.to_str().expect("utf8 path").contains("core-1"));
}
#[test]
fn state_path_lives_under_the_core_dir() {
let dir = sync_hwm_ckpt_dir(std::path::Path::new("/data"), 3);
assert_eq!(
sync_hwm_ckpt_state_path(&dir),
dir.join(SYNC_HWM_CKPT_STATE)
);
}
}