use crate::store::Store;
pub trait Casserole<S>: Sized
where
S: Store,
{
type Target: serde::Serialize;
fn casserole(&self, store: &mut S) -> Result<Self::Target, S::Error>;
fn decasserole(target: &Self::Target, store: &mut S) -> Result<Self, S::Error>;
}