use serde::{de::DeserializeOwned, Serialize};
pub trait Store {
type Error;
type Key: Serialize + DeserializeOwned;
fn put<T>(&mut self, value: &T) -> Result<Self::Key, Self::Error>
where
T: Serialize;
fn get<T>(&mut self, key: &Self::Key) -> Result<Option<T>, Self::Error>
where
T: DeserializeOwned;
}
#[cfg(feature = "json-store")]
pub mod json;