pub struct SqliteMediaStore { /* private fields */ }Available on crate feature
sqlite only.Expand description
An SQLite-based media store.
Implementations§
Source§impl SqliteMediaStore
impl SqliteMediaStore
Sourcepub async fn open(
path: impl AsRef<Path>,
passphrase: Option<&str>,
) -> Result<SqliteMediaStore, OpenStoreError>
pub async fn open( path: impl AsRef<Path>, passphrase: Option<&str>, ) -> Result<SqliteMediaStore, OpenStoreError>
Open the SQLite-based media store at the given path using the given passphrase to encrypt private data.
Sourcepub async fn open_with_key(
path: impl AsRef<Path>,
key: Option<&[u8; 32]>,
) -> Result<SqliteMediaStore, OpenStoreError>
pub async fn open_with_key( path: impl AsRef<Path>, key: Option<&[u8; 32]>, ) -> Result<SqliteMediaStore, OpenStoreError>
Open the SQLite-based media store at the given path using the given key to encrypt private data.
Sourcepub async fn open_with_config(
config: SqliteStoreConfig,
) -> Result<SqliteMediaStore, OpenStoreError>
pub async fn open_with_config( config: SqliteStoreConfig, ) -> Result<SqliteMediaStore, OpenStoreError>
Open the SQLite-based media store with the config open config.
pub async fn vacuum(&self) -> Result<(), Error>
Trait Implementations§
Source§impl Clone for SqliteMediaStore
impl Clone for SqliteMediaStore
Source§fn clone(&self) -> SqliteMediaStore
fn clone(&self) -> SqliteMediaStore
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 moreSource§impl Debug for SqliteMediaStore
Available on non-tarpaulin_include only.
impl Debug for SqliteMediaStore
Available on non-
tarpaulin_include only.Source§impl MediaStore for SqliteMediaStore
impl MediaStore for SqliteMediaStore
Source§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>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteMediaStore: '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>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteMediaStore: 'async_trait,
Try to take a lock using the given store.
Source§fn add_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
content: Vec<u8>,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
fn add_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
content: Vec<u8>,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Add a media file’s content in the media store. Read more
Source§fn replace_media_key<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 MediaRequestParameters,
to: &'life2 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteMediaStore: '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<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
SqliteMediaStore: 'async_trait,
Replaces the given media’s content key with another one. Read more
Source§fn get_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
fn get_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Get a media file’s content out of the media store. Read more
Source§fn remove_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
fn remove_media_content<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Remove a media file’s content from the media store. Read more
Source§fn get_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: '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>>, <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Get a media file’s content associated to an
MxcUri from the
media store. Read moreSource§fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Remove all the media files’ content associated to an
MxcUri from the
media store. Read moreSource§fn set_media_retention_policy<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn set_media_retention_policy<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
Set the
MediaRetentionPolicy to use for deciding whether to store or
keep media content. Read moreSource§fn media_retention_policy(&self) -> MediaRetentionPolicy
fn media_retention_policy(&self) -> MediaRetentionPolicy
Get the current
MediaRetentionPolicy.Source§fn set_ignore_media_retention_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 MediaRequestParameters,
ignore_policy: IgnoreMediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: '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<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Set whether the current
MediaRetentionPolicy should be ignored for
the media. Read moreSource§fn clean<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn clean<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
Clean up the media cache with the current
MediaRetentionPolicy. Read moreSource§fn get_size<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn get_size<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, <SqliteMediaStore as MediaStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
Returns the size of the store in bytes, if known.
Source§impl MediaStoreInner for SqliteMediaStore
impl MediaStoreInner for SqliteMediaStore
Source§fn media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<MediaRetentionPolicy>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<MediaRetentionPolicy>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
The persisted media retention policy in the media cache.
Source§fn set_media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn set_media_retention_policy_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
Persist the media retention policy in the media cache. Read more
Source§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<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: '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<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Add a media file’s content in the media cache. Read more
Source§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<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: '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<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Set whether the current
MediaRetentionPolicy should be ignored for
the media. Read moreSource§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>>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: '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>>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Get a media file’s content out of the media cache. Read more
Source§fn get_media_content_for_uri_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
fn get_media_content_for_uri_inner<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 MxcUri,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SqliteMediaStore: 'async_trait,
Get a media file’s content associated to an
MxcUri from the
media store. Read moreSource§fn clean_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn clean_inner<'life0, 'async_trait>(
&'life0 self,
policy: MediaRetentionPolicy,
current_time: SystemTime,
) -> Pin<Box<dyn Future<Output = Result<(), <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
Clean up the media cache with the given policy. Read more
Source§fn last_media_cleanup_time_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<SystemTime>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
fn last_media_cleanup_time_inner<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<SystemTime>, <SqliteMediaStore as MediaStoreInner>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
SqliteMediaStore: 'async_trait,
The time of the last media cache cleanup.
Auto Trait Implementations§
impl Freeze for SqliteMediaStore
impl !RefUnwindSafe for SqliteMediaStore
impl Send for SqliteMediaStore
impl Sync for SqliteMediaStore
impl Unpin for SqliteMediaStore
impl !UnwindSafe for SqliteMediaStore
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,
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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