pub mod docstore;
pub mod file;
pub mod in_memory;
pub mod layered;
pub mod namespaced;
pub use file::FileStore;
pub use in_memory::InMemoryStore;
pub use layered::LayeredStore;
pub use namespaced::NamespacedStore;
use cognis_core::error::Result;
pub trait Store: Send + Sync {
fn get(&self, key: &str) -> Result<Option<Vec<u8>>>;
fn set(&self, key: &str, value: &[u8]) -> Result<()>;
fn delete(&self, key: &str) -> Result<bool>;
fn exists(&self, key: &str) -> bool;
fn keys(&self) -> Result<Vec<String>>;
fn clear(&self) -> Result<()>;
}