storage_client_interface/
lib.rs1#[cfg(feature = "s3")]
2pub mod s3;
3
4use async_trait::async_trait;
5use thiserror::Error;
6
7#[derive(Error, Debug)]
8pub enum StorageClientError {
9 #[error("GetObject Error: {0}")]
10 GetObject(String),
11 #[error("PutObject Error: {0}")]
12 PutObject(String),
13 #[error("DeleteObject Error: {0}")]
14 DeleteObject(String),
15 #[error("Storage Client Error - {0}")]
16 General(String),
17}
18
19#[async_trait]
20pub trait StorageClientInterface {
21 async fn get_object(&self, key: String) -> Result<Option<String>, StorageClientError>;
22 async fn put_object(&self, key: String, body: String) -> Result<(), StorageClientError>;
23 async fn delete_object(&self, key: String) -> Result<(), StorageClientError>;
24}