use std::fmt::Debug;
pub trait FromKeyStoreValue: Sized {
type Error: Debug + Clone + PartialEq + Into<String>;
fn from_key_store_value(ksv: &[u8]) -> Result<Self, Self::Error>;
}
pub trait ToKeyStoreValue {
type Error: Debug + Clone + PartialEq + Into<String>;
fn to_key_store_value(&self) -> Result<Vec<u8>, Self::Error>;
}
pub trait OpenMlsKeyStore: Send + Sync {
type Error: Debug + Clone + PartialEq + Into<String>;
fn store<V: ToKeyStoreValue>(&self, k: &[u8], v: &V) -> Result<(), Self::Error>
where
Self: Sized;
fn read<V: FromKeyStoreValue>(&self, k: &[u8]) -> Option<V>
where
Self: Sized;
fn delete(&self, k: &[u8]) -> Result<(), Self::Error>;
}