13
13
// limitations under the License.
14
14
15
15
use std:: {
16
- collections:: { BTreeMap , BTreeSet , HashSet } ,
16
+ collections:: { BTreeMap , BTreeSet , HashMap , HashSet } ,
17
17
sync:: Arc ,
18
18
} ;
19
19
@@ -23,7 +23,7 @@ use gloo_utils::format::JsValueSerdeExt;
23
23
use growable_bloom_filter:: GrowableBloom ;
24
24
use indexed_db_futures:: prelude:: * ;
25
25
use matrix_sdk_base:: {
26
- deserialized_responses:: RawAnySyncOrStrippedState ,
26
+ deserialized_responses:: { DisplayName , RawAnySyncOrStrippedState } ,
27
27
store:: {
28
28
ChildTransactionId , ComposerDraft , DependentQueuedRequest , DependentQueuedRequestKind ,
29
29
QueuedRequest , QueuedRequestKind , SentRequestKey , SerializableEventContent ,
@@ -1118,12 +1118,12 @@ impl_state_store!({
1118
1118
async fn get_users_with_display_name(
1119
1119
& self ,
1120
1120
room_id: & RoomId ,
1121
- display_name: & str ,
1121
+ display_name: & DisplayName ,
1122
1122
) -> Result <BTreeSet <OwnedUserId >> {
1123
1123
self . inner
1124
1124
. transaction_on_one_with_mode( keys:: DISPLAY_NAMES , IdbTransactionMode :: Readonly ) ?
1125
1125
. object_store( keys:: DISPLAY_NAMES ) ?
1126
- . get( & self . encode_key( keys:: DISPLAY_NAMES , ( room_id, display_name) ) ) ?
1126
+ . get( & self . encode_key( keys:: DISPLAY_NAMES , ( room_id, display_name. as_str ( ) ) ) ) ?
1127
1127
. await ?
1128
1128
. map( |f| self . deserialize_value:: <BTreeSet <OwnedUserId >>( & f) )
1129
1129
. unwrap_or_else( || Ok ( Default :: default ( ) ) )
@@ -1132,26 +1132,27 @@ impl_state_store!({
1132
1132
async fn get_users_with_display_names<' a>(
1133
1133
& self ,
1134
1134
room_id: & RoomId ,
1135
- display_names: & ' a [ String ] ,
1136
- ) -> Result <BTreeMap <& ' a str , BTreeSet <OwnedUserId >>> {
1135
+ display_names: & ' a [ DisplayName ] ,
1136
+ ) -> Result <HashMap <& ' a DisplayName , BTreeSet <OwnedUserId >>> {
1137
+ let mut map = HashMap :: new( ) ;
1138
+
1137
1139
if display_names. is_empty( ) {
1138
- return Ok ( BTreeMap :: new ( ) ) ;
1140
+ return Ok ( map ) ;
1139
1141
}
1140
1142
1141
1143
let txn = self
1142
1144
. inner
1143
1145
. transaction_on_one_with_mode( keys:: DISPLAY_NAMES , IdbTransactionMode :: Readonly ) ?;
1144
1146
let store = txn. object_store( keys:: DISPLAY_NAMES ) ?;
1145
1147
1146
- let mut map = BTreeMap :: new( ) ;
1147
1148
for display_name in display_names {
1148
1149
if let Some ( user_ids) = store
1149
- . get( & self . encode_key( keys:: DISPLAY_NAMES , ( room_id, display_name) ) ) ?
1150
+ . get( & self . encode_key( keys:: DISPLAY_NAMES , ( room_id, display_name. as_str ( ) ) ) ) ?
1150
1151
. await ?
1151
1152
. map( |f| self . deserialize_value:: <BTreeSet <OwnedUserId >>( & f) )
1152
1153
. transpose( ) ?
1153
1154
{
1154
- map. insert( display_name. as_ref ( ) , user_ids) ;
1155
+ map. insert( display_name, user_ids) ;
1155
1156
}
1156
1157
}
1157
1158
0 commit comments