Struct MemoryMediaStore
pub struct MemoryMediaStore { /* private fields */ }Expand description
In-memory, non-persistent implementation of the MediaStore.
Default if no other is configured at startup.
Implementations§
§impl MemoryMediaStore
impl MemoryMediaStore
pub fn new() -> MemoryMediaStore
pub fn new() -> MemoryMediaStore
Create a new empty MemoryMediaStore
Trait Implementations§
§impl Clone for MemoryMediaStore
impl Clone for MemoryMediaStore
§fn clone(&self) -> MemoryMediaStore
fn clone(&self) -> MemoryMediaStore
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for MemoryMediaStore
impl Debug for MemoryMediaStore
§impl Default for MemoryMediaStore
impl Default for MemoryMediaStore
§fn default() -> MemoryMediaStore
fn default() -> MemoryMediaStore
Returns the “default value” for a type. Read more
§impl MediaStore for MemoryMediaStore
impl MediaStore for MemoryMediaStore
§type Error = MediaStoreError
type Error = MediaStoreError
The error type used by this media store.
§fn try_take_leased_lock<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
lease_duration_ms: u32,
key: &'life1 str,
holder: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<u64>, <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MemoryMediaStore: 'async_trait,
fn try_take_leased_lock<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
lease_duration_ms: u32,
key: &'life1 str,
holder: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<u64>, <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MemoryMediaStore: 'async_trait,
Try to take a lock using the given store.
§fn add_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
data: Vec<u8>,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn add_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
data: Vec<u8>,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Add a media file’s content in the media store. Read more
§fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 MediaRequestParameters,
to: &'life2 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MemoryMediaStore: 'async_trait,
fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 MediaRequestParameters,
to: &'life2 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MemoryMediaStore: 'async_trait,
Replaces the given media’s content key with another one. Read more
§fn get_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn get_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Get a media file’s content out of the media store. Read more
§fn remove_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn remove_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Remove a media file’s content from the media store. Read more
§fn get_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn get_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Get a media file’s content associated to an
MxcUri from the
media store. Read more§fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Remove all the media files’ content associated to an
MxcUri from the
media store. Read more§fn set_media_retention_policy<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
fn set_media_retention_policy<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
Set the
MediaRetentionPolicy to use for deciding whether to store or
keep media content. Read more§fn media_retention_policy(&self) -> MediaRetentionPolicy
fn media_retention_policy(&self) -> MediaRetentionPolicy
Get the current
MediaRetentionPolicy.§fn set_ignore_media_retention_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn set_ignore_media_retention_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Set whether the current
MediaRetentionPolicy should be ignored for
the media. Read more§fn clean<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
fn clean<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
Clean up the media cache with the current
MediaRetentionPolicy. Read more§impl MediaStoreInner for MemoryMediaStore
impl MediaStoreInner for MemoryMediaStore
§type Error = MediaStoreError
type Error = MediaStoreError
The error type used by this media cache store.
§fn media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<MediaRetentionPolicy>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
fn media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<MediaRetentionPolicy>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
The persisted media retention policy in the media cache.
§fn set_media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
fn set_media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
Persist the media retention policy in the media cache. Read more
§fn add_media_content_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
data: Vec<u8>,
last_access: SystemTime,
policy: MediaRetentionPolicy,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn add_media_content_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
data: Vec<u8>,
last_access: SystemTime,
policy: MediaRetentionPolicy,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Add a media file’s content in the media cache. Read more
§fn set_ignore_media_retention_policy_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn set_ignore_media_retention_policy_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Set whether the current
MediaRetentionPolicy should be ignored for
the media. Read more§fn get_media_content_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn get_media_content_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Get a media file’s content out of the media cache. Read more
§fn get_media_content_for_uri_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
expected_uri: &'life1 MxcUri,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
fn get_media_content_for_uri_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
expected_uri: &'life1 MxcUri,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MemoryMediaStore: 'async_trait,
Get a media file’s content associated to an
MxcUri from the
media store. Read more§fn clean_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
fn clean_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<(), <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
Clean up the media cache with the given policy. Read more
§fn last_media_cleanup_time_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<SystemTime>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
fn last_media_cleanup_time_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<SystemTime>, <MemoryMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
MemoryMediaStore: 'async_trait,
The time of the last media cache cleanup.
Auto Trait Implementations§
impl Freeze for MemoryMediaStore
impl !RefUnwindSafe for MemoryMediaStore
impl Send for MemoryMediaStore
impl Sync for MemoryMediaStore
impl Unpin for MemoryMediaStore
impl !UnwindSafe for MemoryMediaStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoMediaStore for Twhere
T: MediaStore + 'static,
impl<T> IntoMediaStore for Twhere
T: MediaStore + 'static,
fn into_media_store(self) -> Arc<dyn MediaStore<Error = MediaStoreError>>
§impl<Store> MediaStoreInnerIntegrationTests for Storewhere
Store: MediaStoreInner + Debug,
impl<Store> MediaStoreInnerIntegrationTests for Storewhere
Store: MediaStoreInner + Debug,
§async fn test_store_media_retention_policy(&self)
async fn test_store_media_retention_policy(&self)
Test media retention policy storage.
§async fn test_media_max_file_size(&self)
async fn test_media_max_file_size(&self)
Test media content’s retention policy max file size.
§async fn test_media_max_cache_size(&self)
async fn test_media_max_cache_size(&self)
Test media content’s retention policy max cache size.
§async fn test_media_expiry(&self)
async fn test_media_expiry(&self)
Test media content’s retention policy expiry.
§async fn test_media_ignore_max_size(&self)
async fn test_media_ignore_max_size(&self)
Test
IgnoreMediaRetentionPolicy with the media content’s retention
policy max sizes.§async fn test_media_ignore_expiry(&self)
async fn test_media_ignore_expiry(&self)
Test
IgnoreMediaRetentionPolicy with the media content’s retention
policy expiry.§async fn test_store_last_media_cleanup_time(&self)
async fn test_store_last_media_cleanup_time(&self)
Test last media cleanup time storage.
§impl<Store> MediaStoreIntegrationTests for Storewhere
Store: MediaStore + Debug,
impl<Store> MediaStoreIntegrationTests for Storewhere
Store: MediaStore + Debug,
§async fn test_media_content(&self)
async fn test_media_content(&self)
Test media content storage.
§async fn test_replace_media_key(&self)
async fn test_replace_media_key(&self)
Test replacing a MXID.