pub trait DataEngine: Sized {
type Uri: ?Sized;
// Required methods
fn new<T: AsRef<Self::Uri>>(base_dir: T) -> EngineResult<Self>;
fn create_bucket(
&self,
bucket_name: &str,
) -> impl Future<Output = EngineResult<()>> + Send;
fn delete_bucket(
&self,
bucket_name: &str,
) -> impl Future<Output = EngineResult<()>> + Send;
fn create_object(
&self,
bucket_name: &str,
object_name: &str,
data: &[u8],
) -> impl Future<Output = EngineResult<()>> + Send;
fn read_object(
&self,
bucket_name: &str,
object_name: &str,
) -> impl Future<Output = EngineResult<Vec<u8>>> + Send;
fn delete_object(
&self,
bucket_name: &str,
object_name: &str,
) -> impl Future<Output = EngineResult<()>> + Send;
}Expand description
此 trait 定义了 object 从何处来,所有的操作,都是幂等的
Required Associated Types§
Required Methods§
Sourcefn new<T: AsRef<Self::Uri>>(base_dir: T) -> EngineResult<Self>
fn new<T: AsRef<Self::Uri>>(base_dir: T) -> EngineResult<Self>
创建一个新的实现了 DataEngine 的实例
Sourcefn create_bucket(
&self,
bucket_name: &str,
) -> impl Future<Output = EngineResult<()>> + Send
fn create_bucket( &self, bucket_name: &str, ) -> impl Future<Output = EngineResult<()>> + Send
创建一个 bucket
Sourcefn delete_bucket(
&self,
bucket_name: &str,
) -> impl Future<Output = EngineResult<()>> + Send
fn delete_bucket( &self, bucket_name: &str, ) -> impl Future<Output = EngineResult<()>> + Send
删除一个 bucket
Sourcefn create_object(
&self,
bucket_name: &str,
object_name: &str,
data: &[u8],
) -> impl Future<Output = EngineResult<()>> + Send
fn create_object( &self, bucket_name: &str, object_name: &str, data: &[u8], ) -> impl Future<Output = EngineResult<()>> + Send
创建一个 object
Sourcefn read_object(
&self,
bucket_name: &str,
object_name: &str,
) -> impl Future<Output = EngineResult<Vec<u8>>> + Send
fn read_object( &self, bucket_name: &str, object_name: &str, ) -> impl Future<Output = EngineResult<Vec<u8>>> + Send
读取一个 object
Sourcefn delete_object(
&self,
bucket_name: &str,
object_name: &str,
) -> impl Future<Output = EngineResult<()>> + Send
fn delete_object( &self, bucket_name: &str, object_name: &str, ) -> impl Future<Output = EngineResult<()>> + Send
删除一个 object
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".