mod compact;
mod file;
mod in_memory;
pub use compact::CompactSnapshotCodec;
pub use file::{FileSnapshotStore, SnapshotOptions};
pub use in_memory::InMemorySnapshotStore;
use crate::{error::Result, projection::ProjectionSnapshot};
pub trait SnapshotStore<P> {
fn save(&mut self, snapshot: &ProjectionSnapshot<P>) -> Result<()>;
fn load_latest(&self) -> Result<Option<ProjectionSnapshot<P>>>;
}