use async_trait::async_trait;
use ecat_errors::Error;
#[async_trait]
pub trait StorageClient: Send + Sync {
async fn put(&self, bucket: &str, key: &str, data: &[u8]) -> Result<(), Error>;
async fn get(&self, bucket: &str, key: &str) -> Result<Vec<u8>, Error>;
async fn delete(&self, bucket: &str, key: &str) -> Result<(), Error>;
async fn list(&self, bucket: &str, prefix: &str) -> Result<Vec<String>, Error>;
}