Skip to main content

DataEngine

Trait DataEngine 

Source
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§

Source

fn new<T: AsRef<Self::Uri>>(base_dir: T) -> EngineResult<Self>

创建一个新的实现了 DataEngine 的实例

Source

fn create_bucket( &self, bucket_name: &str, ) -> impl Future<Output = EngineResult<()>> + Send

创建一个 bucket

Source

fn delete_bucket( &self, bucket_name: &str, ) -> impl Future<Output = EngineResult<()>> + Send

删除一个 bucket

Source

fn create_object( &self, bucket_name: &str, object_name: &str, data: &[u8], ) -> impl Future<Output = EngineResult<()>> + Send

创建一个 object

Source

fn read_object( &self, bucket_name: &str, object_name: &str, ) -> impl Future<Output = EngineResult<Vec<u8>>> + Send

读取一个 object

Source

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".

Implementors§