Skip to main content

canic_backup/persistence/
mod.rs

1//! Module: persistence
2//!
3//! Responsibility: persist backup manifests, journals, plans, and integrity reports.
4//! Does not own: manifest construction, journal state transitions, or backup execution.
5//! Boundary: validates data before filesystem writes and before resume integrity checks.
6
7mod artifact_commit;
8mod command_lifetime_lock;
9mod error;
10mod file_lock;
11mod integrity;
12mod journal_lock;
13mod json;
14mod layout;
15
16pub(crate) use artifact_commit::commit_artifact_directory;
17#[cfg(all(
18    test,
19    any(target_os = "linux", target_os = "android", target_vendor = "apple")
20))]
21pub(crate) use artifact_commit::{ArtifactCommitBarrier, commit_artifact_directory_at_barriers};
22pub use command_lifetime_lock::CommandLifetimeHandle;
23pub(crate) use command_lifetime_lock::{CommandLifetimeLock, CommandLifetimeLockError};
24pub use error::PersistenceError;
25pub(crate) use integrity::verify_durable_artifact;
26pub use integrity::{
27    ArtifactIntegrityReport, BackupExecutionIntegrityReport, BackupIntegrityReport,
28    resolve_backup_artifact_path,
29};
30pub(crate) use journal_lock::{JournalLock, JournalLockError};
31#[cfg(test)]
32pub(crate) use json::{
33    DurableWriteBarrier, create_json_durable_at_barriers, write_json_durable_at_barriers,
34};
35pub(crate) use json::{create_json_durable, read_json, write_json_durable};
36pub use layout::BackupLayout;
37
38#[cfg(test)]
39mod tests;