pub trait StateStore: AsyncTraitDeps {
Show 26 methods fn save_filter<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        filter_name: &'life1 str,
        filter_id: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn save_changes<'life0, 'life1, 'async_trait>(
        &'life0 self,
        changes: &'life1 StateChanges
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_filter<'life0, 'life1, 'async_trait>(
        &'life0 self,
        filter_name: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_sync_token<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn get_presence_event<'life0, 'life1, 'async_trait>(
        &'life0 self,
        user_id: &'life1 UserId
    ) -> Pin<Box<dyn Future<Output = Result<Option<Raw<PresenceEvent>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_state_event<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        event_type: StateEventType,
        state_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<Raw<AnySyncStateEvent>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_state_events<'life0, 'life1, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        event_type: StateEventType
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Raw<AnySyncStateEvent>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_profile<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        user_id: &'life2 UserId
    ) -> Pin<Box<dyn Future<Output = Result<Option<MinimalRoomMemberEvent>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_member_event<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        state_key: &'life2 UserId
    ) -> Pin<Box<dyn Future<Output = Result<Option<MemberEvent>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_user_ids<'life0, 'life1, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId
    ) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedUserId>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_invited_user_ids<'life0, 'life1, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId
    ) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedUserId>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_joined_user_ids<'life0, 'life1, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId
    ) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedUserId>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_room_infos<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<RoomInfo>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn get_stripped_room_infos<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<RoomInfo>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn get_users_with_display_name<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        display_name: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<BTreeSet<OwnedUserId>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_account_data_event<'life0, 'async_trait>(
        &'life0 self,
        event_type: GlobalAccountDataEventType
    ) -> Pin<Box<dyn Future<Output = Result<Option<Raw<AnyGlobalAccountDataEvent>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn get_room_account_data_event<'life0, 'life1, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        event_type: RoomAccountDataEventType
    ) -> Pin<Box<dyn Future<Output = Result<Option<Raw<AnyRoomAccountDataEvent>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_user_room_receipt_event<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        receipt_type: ReceiptType,
        user_id: &'life2 UserId
    ) -> Pin<Box<dyn Future<Output = Result<Option<(OwnedEventId, Receipt)>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_event_room_receipt_events<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId,
        receipt_type: ReceiptType,
        event_id: &'life2 EventId
    ) -> Pin<Box<dyn Future<Output = Result<Vec<(OwnedUserId, Receipt)>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_custom_value<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 [u8]
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn set_custom_value<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 [u8],
        value: Vec<u8>
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn add_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequest,
        content: Vec<u8>
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequest
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn remove_media_content<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: &'life1 MediaRequest
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn remove_media_content_for_uri<'life0, 'life1, 'async_trait>(
        &'life0 self,
        uri: &'life1 MxcUri
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn remove_room<'life0, 'life1, 'async_trait>(
        &'life0 self,
        room_id: &'life1 RoomId
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
}
Expand description

An abstract state store trait that can be used to implement different stores for the SDK.

Required Methods

Save the given filter id under the given name.

Arguments
  • filter_name - The name that should be used to store the filter id.

  • filter_id - The filter id that should be stored in the state store.

Save the set of state changes in the store.

Get the filter id that was stored under the given filter name.

Arguments
  • filter_name - The name that was used to store the filter id.

Get the last stored sync token.

Get the stored presence event for the given user.

Arguments
  • user_id - The id of the user for which we wish to fetch the presence event for.

Get a state event out of the state store.

Arguments
  • room_id - The id of the room the state event was received for.

  • event_type - The event type of the state event.

Get a list of state events for a given room and StateEventType.

Arguments
  • room_id - The id of the room to find events for.

  • event_type - The event type.

Get the current profile for the given user in the given room.

Arguments
  • room_id - The room id the profile is used in.

  • user_id - The id of the user the profile belongs to.

Get the MemberEvent for the given state key in the given room id.

Arguments
  • room_id - The room id the member event belongs to.

  • state_key - The user id that the member event defines the state for.

Get all the user ids of members for a given room, for stripped and regular rooms alike.

Get all the user ids of members that are in the invited state for a given room, for stripped and regular rooms alike.

Get all the user ids of members that are in the joined state for a given room, for stripped and regular rooms alike.

Get all the pure RoomInfos the store knows about.

Get all the pure RoomInfos the store knows about.

Get all the users that use the given display name in the given room.

Arguments
  • room_id - The id of the room for which the display name users should be fetched for.

  • display_name - The display name that the users use.

Get an event out of the account data store.

Arguments
  • event_type - The event type of the account data event.

Get an event out of the room account data store.

Arguments
  • room_id - The id of the room for which the room account data event should be fetched.

  • event_type - The event type of the room account data event.

Get an event out of the user room receipt store.

Arguments
  • room_id - The id of the room for which the receipt should be fetched.

  • receipt_type - The type of the receipt.

  • user_id - The id of the user for who the receipt should be fetched.

Get events out of the event room receipt store.

Arguments
  • room_id - The id of the room for which the receipts should be fetched.

  • receipt_type - The type of the receipts.

  • event_id - The id of the event for which the receipts should be fetched.

Get arbitrary data from the custom store

Arguments
  • key - The key to fetch data for

Put arbitrary data into the custom store

Arguments
  • key - The key to insert data into

  • value - The value to insert

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

Arguments
  • request - The MediaRequest of the file.

  • content - The content of the file.

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

Arguments
  • request - The MediaRequest of the file.

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

Arguments
  • request - The MediaRequest of the file.

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

Arguments
  • uri - The MxcUri of the media files.

Removes a room and all elements associated from the state store.

Arguments
  • room_id - The RoomId of the room to delete.

Implementors