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 command_lifetime_lock;
8mod error;
9mod file_lock;
10mod integrity;
11mod journal_lock;
12mod json;
13mod layout;
14mod layout_lifetime;
15
16pub use command_lifetime_lock::CommandLifetimeHandle;
17pub(crate) use command_lifetime_lock::{CommandLifetimeLock, CommandLifetimeLockError};
18pub use error::PersistenceError;
19pub(crate) use ic_backup::ops::persistence::commit_artifact_directory;
20pub(crate) use integrity::verify_durable_artifact;
21pub use integrity::{
22    ArtifactIntegrityReport, BackupExecutionIntegrityReport, BackupIntegrityReport,
23    resolve_backup_artifact_path,
24};
25pub use journal_lock::{JournalLock, JournalLockError};
26#[cfg(test)]
27pub(crate) use json::{
28    DurableWriteBarrier, create_json_durable_at_barriers, write_json_durable_at_barriers,
29};
30pub(crate) use json::{create_json_durable, read_json, write_json_durable};
31pub use layout::BackupLayout;
32pub use layout_lifetime::{BackupExecutionGuard, BackupLayoutGuard};
33
34#[cfg(test)]
35mod tests;