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 RoomInfos the store knows about.
Get all the pure RoomInfos 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- TheMediaRequestof the file. - 
content- The content of the file. 
Get a media file’s content out of the media store.
Arguments
request- TheMediaRequestof 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- TheMediaRequestof the file.
Removes all the media files’ content associated to an MxcUri from the
media store.
Arguments
uri- TheMxcUriof the media files.
Removes a room and all elements associated from the state store.
Arguments
room_id- TheRoomIdof the room to delete.