pub trait EventCacheStore: AsyncTraitDeps {
    type Error: Debug + Into<EventCacheStoreError>;

    // Required methods
    fn add_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequest,
        content: Vec<u8>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        from: &'life1 MediaRequest,
        to: &'life2 MediaRequest,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn get_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequest,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn remove_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequest,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
        &'life0 self,
        uri: &'life1 MxcUri,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

An abstract trait that can be used to implement different store backends for the event cache of the SDK.

Required Associated Types§

source

type Error: Debug + Into<EventCacheStoreError>

The error type used by this event cache store.

Required Methods§

source

fn add_media_content<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 MediaRequest, content: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Add a media file’s content in the media store.

§Arguments
  • request - The MediaRequest of the file.

  • content - The content of the file.

source

fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, from: &'life1 MediaRequest, to: &'life2 MediaRequest, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Replaces the given media’s content key with another one.

This should be used whenever a temporary (local) MXID has been used, and it must now be replaced with its actual remote counterpart (after uploading some content, or creating an empty MXC URI).

⚠ No check is performed to ensure that the media formats are consistent, i.e. it’s possible to update with a thumbnail key a media that was keyed as a file before. The caller is responsible of ensuring that the replacement makes sense, according to their use case.

§Arguments
  • from - The previous MediaRequest of the file.

  • to - The new MediaRequest of the file.

source

fn get_media_content<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 MediaRequest, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get a media file’s content out of the media store.

§Arguments
  • request - The MediaRequest of the file.
source

fn remove_media_content<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 MediaRequest, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove a media file’s content from the media store.

§Arguments
  • request - The MediaRequest of the file.
source

fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>( &'life0 self, uri: &'life1 MxcUri, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove all the media files’ content associated to an MxcUri from the media store.

§Arguments
  • uri - The MxcUri of the media files.

Implementors§