Trait matrix_sdk_base::store::StateStore
source · [−]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.
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 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,
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.
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_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,
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.
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_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,
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.
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_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,
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.
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_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,
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.
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_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,
Get all the user ids of members for a given room, for stripped and regular rooms alike.
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_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,
Get all the user ids of members that are in the invited state for a given room, for stripped and regular rooms alike.
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_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,
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 RoomInfo
s the store knows about.
Get all the pure RoomInfo
s the store knows about.
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_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,
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.
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_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,
Get an event out of the account data store.
Arguments
event_type
- The event type of the account data event.
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_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,
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.
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_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,
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.
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_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,
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.
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
- TheMediaRequest
of the file. -
content
- The content of the file.
Get a media file’s content out of the media store.
Arguments
request
- TheMediaRequest
of the file.
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<'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,
Removes a media file’s content from the media store.
Arguments
request
- TheMediaRequest
of the file.
Removes all the media files’ content associated to an MxcUri
from the
media store.
Arguments
uri
- TheMxcUri
of the media files.
Removes a room and all elements associated from the state store.
Arguments
room_id
- TheRoomId
of the room to delete.