[][src]Trait hold::provider::Provider

pub trait Provider: Debug {
#[must_use]    fn get_blob<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<Blob>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn store_blob<'life0, 'async_trait>(
        &'life0 self,
        blob: Blob
    ) -> Pin<Box<dyn Future<Output = Result<Blob>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn is_blob_present<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn delete_blob<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; }

An abstract storage provider

Required methods

#[must_use]fn get_blob<'life0, 'life1, 'async_trait>(
    &'life0 self,
    key: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Option<Blob>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 

Fetches a blob from the storage provider given its key

#[must_use]fn store_blob<'life0, 'async_trait>(
    &'life0 self,
    blob: Blob
) -> Pin<Box<dyn Future<Output = Result<Blob>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 

Stores the given blob and returns it back

#[must_use]fn is_blob_present<'life0, 'life1, 'async_trait>(
    &'life0 self,
    key: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 

Checks if the blob exists. Some implementation may still be loading the blob content in memory if the underlying implementation does not support headless lookups.

#[must_use]fn delete_blob<'life0, 'life1, 'async_trait>(
    &'life0 self,
    key: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 

Fetches a blob from the storage provider given its key

Loading content...

Implementors

Loading content...