pub struct IndexeddbEventCacheStore { /* private fields */ }Expand description
A type for providing an IndexedDB implementation of EventCacheStore.
This is meant to be used as a backend to EventCacheStore in browser
contexts.
Implementations§
Source§impl IndexeddbEventCacheStore
impl IndexeddbEventCacheStore
Sourcepub fn builder() -> IndexeddbEventCacheStoreBuilder
pub fn builder() -> IndexeddbEventCacheStoreBuilder
Provides a type with which to conveniently build an
IndexeddbEventCacheStore
Sourcepub fn transaction<'a>(
&'a self,
stores: &[&str],
mode: IdbTransactionMode,
) -> Result<IndexeddbEventCacheStoreTransaction<'a>, IndexeddbEventCacheStoreError>
pub fn transaction<'a>( &'a self, stores: &[&str], mode: IdbTransactionMode, ) -> Result<IndexeddbEventCacheStoreTransaction<'a>, IndexeddbEventCacheStoreError>
Initializes a new transaction on the underlying IndexedDB database and returns a handle which can be used to combine database operations into an atomic unit.
Trait Implementations§
Source§impl Clone for IndexeddbEventCacheStore
impl Clone for IndexeddbEventCacheStore
Source§fn clone(&self) -> IndexeddbEventCacheStore
fn clone(&self) -> IndexeddbEventCacheStore
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 IndexeddbEventCacheStore
impl Debug for IndexeddbEventCacheStore
Source§impl EventCacheStore for IndexeddbEventCacheStore
impl EventCacheStore for IndexeddbEventCacheStore
Source§type Error = IndexeddbEventCacheStoreError
type Error = IndexeddbEventCacheStoreError
The error type used by this event cache store.
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<CrossProcessLockGeneration>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: '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<CrossProcessLockGeneration>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Try to take a lock using the given store.
Source§fn handle_linked_chunk_updates<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
updates: Vec<Update<Event, Gap>>,
) -> Pin<Box<dyn Future<Output = Result<(), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_linked_chunk_updates<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
updates: Vec<Update<Event, Gap>>,
) -> Pin<Box<dyn Future<Output = Result<(), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
An
Update reflects an operation that has happened inside a linked
chunk. The linked chunk is used by the event cache to store the events
in-memory. This method aims at forwarding this update inside this store.Source§fn load_all_chunks_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChunkMetadata>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_all_chunks_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChunkMetadata>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load all of the chunks’ metadata for the given
LinkedChunkId. Read moreSource§fn load_last_chunk<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
) -> Pin<Box<dyn Future<Output = Result<(Option<RawChunk<Event, Gap>>, ChunkIdentifierGenerator), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_last_chunk<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
) -> Pin<Box<dyn Future<Output = Result<(Option<RawChunk<Event, Gap>>, ChunkIdentifierGenerator), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load the last chunk of the
LinkedChunk holding all events of the room
identified by room_id. Read moreSource§fn load_previous_chunk<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
before_chunk_identifier: ChunkIdentifier,
) -> Pin<Box<dyn Future<Output = Result<Option<RawChunk<Event, Gap>>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_previous_chunk<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
before_chunk_identifier: ChunkIdentifier,
) -> Pin<Box<dyn Future<Output = Result<Option<RawChunk<Event, Gap>>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load the chunk before the chunk identified by
before_chunk_identifier
of the LinkedChunk holding all events of the room identified by
room_id Read moreSource§fn clear_all_linked_chunks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear_all_linked_chunks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Clear persisted events for all the rooms. Read more
Source§fn filter_duplicated_events<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
events: Vec<OwnedEventId>,
) -> Pin<Box<dyn Future<Output = Result<Vec<(OwnedEventId, Position)>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn filter_duplicated_events<'life0, 'life1, 'async_trait>(
&'life0 self,
linked_chunk_id: LinkedChunkId<'life1>,
events: Vec<OwnedEventId>,
) -> Pin<Box<dyn Future<Output = Result<Vec<(OwnedEventId, Position)>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Given a set of event IDs, return the duplicated events along with their
position if there are any.
Source§fn find_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event_id: &'life2 EventId,
) -> Pin<Box<dyn Future<Output = Result<Option<Event>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn find_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event_id: &'life2 EventId,
) -> Pin<Box<dyn Future<Output = Result<Option<Event>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Find an event by its ID in a room. Read more
Source§fn find_event_relations<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event_id: &'life2 EventId,
filters: Option<&'life3 [RelationType]>,
) -> Pin<Box<dyn Future<Output = Result<Vec<(Event, Option<Position>)>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn find_event_relations<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event_id: &'life2 EventId,
filters: Option<&'life3 [RelationType]>,
) -> Pin<Box<dyn Future<Output = Result<Vec<(Event, Option<Position>)>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Find all the events (alongside their position in the room’s linked
chunk, if available) that relate to a given event. Read more
Source§fn get_room_events<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event_type: Option<&'life2 str>,
session_id: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn get_room_events<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event_type: Option<&'life2 str>,
session_id: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Get all events in this room. Read more
Source§fn save_event<'life0, 'life1, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event: Event,
) -> Pin<Box<dyn Future<Output = Result<(), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn save_event<'life0, 'life1, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
event: Event,
) -> Pin<Box<dyn Future<Output = Result<(), IndexeddbEventCacheStoreError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Save an event, that might or might not be part of an existing linked
chunk. Read more
Source§fn get_size<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, Self::Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_size<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<usize>, Self::Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the size of the store in bytes, if known.
Source§fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Close the store, releasing all held resources (database connections,
file descriptors, file locks). Read more
Auto Trait Implementations§
impl !Send for IndexeddbEventCacheStore
impl !Sync for IndexeddbEventCacheStore
impl Freeze for IndexeddbEventCacheStore
impl RefUnwindSafe for IndexeddbEventCacheStore
impl Unpin for IndexeddbEventCacheStore
impl UnsafeUnpin for IndexeddbEventCacheStore
impl UnwindSafe for IndexeddbEventCacheStore
Blanket Implementations§
impl<T> AsyncTraitDeps for T
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> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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