pub struct PersistenceManager { /* private fields */ }Expand description
Manages JSON snapshot-based persistence for service state.
When a data_dir is configured, each service can serialize its state to a JSON
file under {data_dir}/snapshots/{service}.json. On startup those snapshots are
loaded and passed back to each service so it can rebuild its in-memory state.
Implementations§
Source§impl PersistenceManager
impl PersistenceManager
Sourcepub fn new(data_dir: impl Into<PathBuf>) -> Self
pub fn new(data_dir: impl Into<PathBuf>) -> Self
Create a new PersistenceManager rooted at data_dir.
Sourcepub fn save_snapshot(&self, service_name: &str, data: &[u8]) -> Result<()>
pub fn save_snapshot(&self, service_name: &str, data: &[u8]) -> Result<()>
Save a service’s state snapshot to {data_dir}/snapshots/{service_name}.json.
Uses atomic write (write to temp file, then rename) to prevent corruption if the process is killed mid-write.
Sourcepub fn load_snapshot(&self, service_name: &str) -> Option<Vec<u8>>
pub fn load_snapshot(&self, service_name: &str) -> Option<Vec<u8>>
Load a service’s state snapshot from disk. Returns None if no snapshot exists.
Sourcepub fn list_snapshots(&self) -> Vec<String>
pub fn list_snapshots(&self) -> Vec<String>
List the names of all saved snapshots (without the .json suffix).
Sourcepub fn save_all(&self, services: &HashMap<String, Arc<dyn ServiceHandler>>)
pub fn save_all(&self, services: &HashMap<String, Arc<dyn ServiceHandler>>)
Save snapshots for all services that support it.
Sourcepub fn restore_all(&self, services: &HashMap<String, Arc<dyn ServiceHandler>>)
pub fn restore_all(&self, services: &HashMap<String, Arc<dyn ServiceHandler>>)
Restore snapshots for all services that support it.