@@ -226,13 +226,21 @@ impl GroupSessionManager {
226
226
BTreeMap < Box < UserId > , BTreeMap < Box < DeviceId > , ShareInfo > > ,
227
227
Vec < Session > ,
228
228
) > {
229
+ // Use a named type instead of a tuple with rather long type name
230
+ struct EncryptResult {
231
+ used_session : Option < Session > ,
232
+ share_info : BTreeMap < Box < UserId > , BTreeMap < Box < DeviceId > , ShareInfo > > ,
233
+ message :
234
+ BTreeMap < Box < UserId > , BTreeMap < DeviceIdOrAllDevices , Raw < AnyToDeviceEventContent > > > ,
235
+ }
236
+
229
237
let mut messages = BTreeMap :: new ( ) ;
230
238
let mut changed_sessions = Vec :: new ( ) ;
231
239
let mut share_infos = BTreeMap :: new ( ) ;
232
240
233
241
let encrypt = |device : Device , content : AnyToDeviceEventContent | async move {
234
242
let mut message = BTreeMap :: new ( ) ;
235
- let mut share_infos = BTreeMap :: new ( ) ;
243
+ let mut share_info = BTreeMap :: new ( ) ;
236
244
237
245
let encrypted = device. encrypt ( content. clone ( ) ) . await ;
238
246
@@ -246,7 +254,7 @@ impl GroupSessionManager {
246
254
Raw :: new ( & AnyToDeviceEventContent :: RoomEncrypted ( encrypted) )
247
255
. expect ( "Failed to serialize encrypted event" ) ,
248
256
) ;
249
- share_infos
257
+ share_info
250
258
. entry ( device. user_id ( ) . to_owned ( ) )
251
259
. or_insert_with ( BTreeMap :: new)
252
260
. insert (
@@ -265,7 +273,7 @@ impl GroupSessionManager {
265
273
Err ( e) => return Err ( e) ,
266
274
} ;
267
275
268
- Ok ( ( used_session, share_infos , message) )
276
+ Ok ( EncryptResult { used_session, share_info , message } )
269
277
} ;
270
278
271
279
let tasks: Vec < _ > =
@@ -274,7 +282,8 @@ impl GroupSessionManager {
274
282
let results = join_all ( tasks) . await ;
275
283
276
284
for result in results {
277
- let ( used_session, infos, message) = result. expect ( "Encryption task panicked" ) ?;
285
+ let EncryptResult { used_session, share_info, message } =
286
+ result. expect ( "Encryption task panicked" ) ?;
278
287
279
288
if let Some ( session) = used_session {
280
289
changed_sessions. push ( session) ;
@@ -284,7 +293,7 @@ impl GroupSessionManager {
284
293
messages. entry ( user) . or_insert_with ( BTreeMap :: new) . extend ( device_messages) ;
285
294
}
286
295
287
- for ( user, infos) in infos . into_iter ( ) {
296
+ for ( user, infos) in share_info . into_iter ( ) {
288
297
share_infos. entry ( user) . or_insert_with ( BTreeMap :: new) . extend ( infos) ;
289
298
}
290
299
}
0 commit comments