use crate::{BufferOpsContainer, Repository, Unifier, UnifierData};
pub enum BatchOp<'a, K: UnifierData, V: UnifierData> {
Insert {
key: K::View<'a>,
value: V::View<'a>,
},
Delete { key: K::View<'a> },
}
pub trait Storage {
type Repo: Repository<
K = <<Self as Storage>::KeyUnifier as Unifier>::D,
V = <<Self as Storage>::ValueUnifier as Unifier>::D,
>;
type KeyUnifier: Unifier + Default + Copy;
type ValueUnifier: Unifier + Default + Copy;
type Container: BufferOpsContainer;
fn repository(&self) -> &Self::Repo;
fn repository_mut(&mut self) -> &mut Self::Repo;
}