use super::SnapshotRegion;
pub use crate::identity::vault::Removal;
pub trait PersistedStore {
type Error;
fn stored_len(&self, region: SnapshotRegion) -> Result<Option<usize>, Self::Error>;
fn load<'b>(
&self,
region: SnapshotRegion,
buf: &'b mut [u8],
) -> Result<Option<&'b [u8]>, Self::Error>;
fn store(&mut self, region: SnapshotRegion, snapshot: &[u8]) -> Result<(), Self::Error>;
fn remove(&mut self, region: SnapshotRegion) -> Result<Removal, Self::Error>;
}