use std::sync::Arc;
use crate::error::Result;
#[async_trait::async_trait]
pub trait Store: Send + Sync {
async fn set(&self, scope: Arc<[u8]>, key: Arc<[u8]>, value: Arc<[u8]>) -> Result<()>;
async fn get(&self, scope: Arc<[u8]>, key: Arc<[u8]>) -> Result<Option<Arc<[u8]>>>;
async fn delete(&self, scope: Arc<[u8]>, key: Arc<[u8]>) -> Result<()>;
async fn contains_key(&self, scope: Arc<[u8]>, key: Arc<[u8]>) -> Result<bool>;
}