@@ -251,31 +251,29 @@ impl WidgetMachine {
251
251
let mut actions =
252
252
vec ! [ Self :: send_from_widget_response( raw_request, Ok ( OpenIdResponse :: Pending ) ) ] ;
253
253
254
- if let Some ( request_action) = self . send_matrix_driver_request ( RequestOpenId ) . map (
255
- |( request, request_action) | {
256
- request. then ( |res, machine| {
257
- let response = match res {
258
- Ok ( res) => {
259
- OpenIdResponse :: Allowed ( OpenIdState :: new ( request_id, res) )
260
- }
261
- Err ( msg) => {
262
- info ! ( "OpenID request failed: {msg}" ) ;
263
- OpenIdResponse :: Blocked { original_request_id : request_id }
264
- }
265
- } ;
266
-
267
- machine
268
- . send_to_widget_request ( NotifyOpenIdChanged ( response) )
269
- . map ( |( _request, action) | vec ! [ action] )
270
- . unwrap_or_default ( )
271
- } ) ;
272
-
273
- request_action
274
- } ,
275
- ) {
276
- actions. push ( request_action) ;
277
- }
254
+ let Some ( ( request, request_action) ) =
255
+ self . send_matrix_driver_request ( RequestOpenId )
256
+ else {
257
+ // We're done, return early.
258
+ return actions;
259
+ } ;
260
+
261
+ request. then ( |res, machine| {
262
+ let response = match res {
263
+ Ok ( res) => OpenIdResponse :: Allowed ( OpenIdState :: new ( request_id, res) ) ,
264
+ Err ( msg) => {
265
+ info ! ( "OpenID request failed: {msg}" ) ;
266
+ OpenIdResponse :: Blocked { original_request_id : request_id }
267
+ }
268
+ } ;
278
269
270
+ machine
271
+ . send_to_widget_request ( NotifyOpenIdChanged ( response) )
272
+ . map ( |( _request, action) | vec ! [ action] )
273
+ . unwrap_or_default ( )
274
+ } ) ;
275
+
276
+ actions. push ( request_action) ;
279
277
actions
280
278
}
281
279
@@ -347,21 +345,21 @@ impl WidgetMachine {
347
345
self . send_matrix_driver_request ( request) . map ( |( request, action) | {
348
346
request. then ( |result, machine| {
349
347
let response = match & machine. capabilities {
350
- CapabilitiesState :: Unset => Err ( FromWidgetErrorResponse :: from_string (
351
- "Received read event request before capabilities negotiation" ,
352
- ) ) ,
353
- CapabilitiesState :: Negotiating => {
354
- Err ( FromWidgetErrorResponse :: from_string (
355
- "Received read event request while capabilities were negotiating" ,
356
- ) )
357
- }
358
- CapabilitiesState :: Negotiated ( capabilities) => result
359
- . map ( |mut events| {
360
- events. retain ( |e| capabilities. raw_event_matches_read_filter ( e) ) ;
361
- ReadEventResponse { events }
362
- } )
363
- . map_err ( FromWidgetErrorResponse :: from_error) ,
364
- } ;
348
+ CapabilitiesState :: Unset => Err ( FromWidgetErrorResponse :: from_string (
349
+ "Received read event request before capabilities negotiation" ,
350
+ ) ) ,
351
+ CapabilitiesState :: Negotiating => {
352
+ Err ( FromWidgetErrorResponse :: from_string (
353
+ "Received read event request while capabilities were negotiating" ,
354
+ ) )
355
+ }
356
+ CapabilitiesState :: Negotiated ( capabilities) => result
357
+ . map ( |mut events| {
358
+ events. retain ( |e| capabilities. raw_event_matches_read_filter ( e) ) ;
359
+ ReadEventResponse { events }
360
+ } )
361
+ . map_err ( FromWidgetErrorResponse :: from_error) ,
362
+ } ;
365
363
366
364
vec ! [ Self :: send_from_widget_response( raw_request, response) ]
367
365
} ) ;
@@ -390,16 +388,16 @@ impl WidgetMachine {
390
388
} ;
391
389
392
390
if allowed {
393
- let request = ReadStateEventRequest { event_type, state_key } ;
394
- self . send_matrix_driver_request ( request ) . map ( |( request, action) | {
395
- request. then ( |result, _machine| {
396
- let response = result
397
- . map ( |events| ReadEventResponse { events } )
398
- . map_err ( FromWidgetErrorResponse :: from_error) ;
399
- vec ! [ Self :: send_from_widget_response( raw_request, response) ]
400
- } ) ;
401
- action
402
- } )
391
+ self . send_matrix_driver_request ( ReadStateEventRequest { event_type, state_key } )
392
+ . map ( |( request, action) | {
393
+ request. then ( |result, _machine| {
394
+ let response = result
395
+ . map ( |events| ReadEventResponse { events } )
396
+ . map_err ( FromWidgetErrorResponse :: from_error) ;
397
+ vec ! [ Self :: send_from_widget_response( raw_request, response) ]
398
+ } ) ;
399
+ action
400
+ } )
403
401
} else {
404
402
Some ( Self :: send_from_widget_error_string_response (
405
403
raw_request,
@@ -445,19 +443,19 @@ impl WidgetMachine {
445
443
) ) ;
446
444
}
447
445
448
- self . send_matrix_driver_request ( request) . map ( |( request, action) | {
449
- request. then ( |mut result, machine| {
450
- if let Ok ( r) = result. as_mut ( ) {
451
- r. set_room_id ( machine. room_id . clone ( ) ) ;
452
- }
453
- vec ! [ Self :: send_from_widget_response(
454
- raw_request,
455
- result. map_err( FromWidgetErrorResponse :: from_error) ,
456
- ) ]
457
- } ) ;
446
+ let ( request, action) = self . send_matrix_driver_request ( request) ?;
447
+
448
+ request. then ( |mut result, machine| {
449
+ if let Ok ( r) = result. as_mut ( ) {
450
+ r. set_room_id ( machine. room_id . clone ( ) ) ;
451
+ }
452
+ vec ! [ Self :: send_from_widget_response(
453
+ raw_request,
454
+ result. map_err( FromWidgetErrorResponse :: from_error) ,
455
+ ) ]
456
+ } ) ;
458
457
459
- action
460
- } )
458
+ Some ( action)
461
459
}
462
460
463
461
#[ instrument( skip_all, fields( ?request_id) ) ]
@@ -624,57 +622,53 @@ impl WidgetMachine {
624
622
625
623
self . capabilities = CapabilitiesState :: Negotiating ;
626
624
627
- if let Some ( action) =
628
- self . send_to_widget_request ( RequestCapabilities { } ) . map ( | ( request , action ) | {
629
- request . then ( |response , machine| {
630
- let requested_capabilities = response . capabilities ;
625
+ let Some ( ( request , action) ) = self . send_to_widget_request ( RequestCapabilities { } ) else {
626
+ // We're done, return early.
627
+ return actions ;
628
+ } ;
631
629
632
- if let Some ( ( request, action) ) =
633
- machine. send_matrix_driver_request ( AcquireCapabilities {
634
- desired_capabilities : requested_capabilities. clone ( ) ,
635
- } )
636
- {
637
- request. then ( |result, machine| {
638
- let approved_capabilities = result. unwrap_or_else ( |e| {
639
- error ! ( "Acquiring capabilities failed: {e}" ) ;
640
- Capabilities :: default ( )
641
- } ) ;
630
+ request. then ( |response, machine| {
631
+ let requested_capabilities = response. capabilities ;
642
632
643
- let mut actions = Vec :: new ( ) ;
644
- if !approved_capabilities. read . is_empty ( ) {
645
- actions. push ( Action :: Subscribe ) ;
646
- }
633
+ let Some ( ( request, action) ) = machine. send_matrix_driver_request ( AcquireCapabilities {
634
+ desired_capabilities : requested_capabilities. clone ( ) ,
635
+ } ) else {
636
+ // We're done, return early.
637
+ return Vec :: new ( ) ;
638
+ } ;
639
+
640
+ request. then ( |result, machine| {
641
+ let approved_capabilities = result. unwrap_or_else ( |e| {
642
+ error ! ( "Acquiring capabilities failed: {e}" ) ;
643
+ Capabilities :: default ( )
644
+ } ) ;
647
645
648
- machine. capabilities =
649
- CapabilitiesState :: Negotiated ( approved_capabilities. clone ( ) ) ;
646
+ let mut actions = Vec :: new ( ) ;
647
+ if !approved_capabilities. read . is_empty ( ) {
648
+ actions. push ( Action :: Subscribe ) ;
649
+ }
650
650
651
- let notify_caps_changed = NotifyCapabilitiesChanged {
652
- approved : approved_capabilities,
653
- requested : requested_capabilities,
654
- } ;
651
+ machine. capabilities = CapabilitiesState :: Negotiated ( approved_capabilities. clone ( ) ) ;
655
652
656
- if let Some ( action) = machine
657
- . send_to_widget_request ( notify_caps_changed)
658
- . map ( |( _request, action) | action)
659
- {
660
- actions. push ( action) ;
661
- }
653
+ let notify_caps_changed = NotifyCapabilitiesChanged {
654
+ approved : approved_capabilities,
655
+ requested : requested_capabilities,
656
+ } ;
662
657
663
- actions
664
- } ) ;
658
+ if let Some ( action) = machine
659
+ . send_to_widget_request ( notify_caps_changed)
660
+ . map ( |( _request, action) | action)
661
+ {
662
+ actions. push ( action) ;
663
+ }
665
664
666
- vec ! [ action]
667
- } else {
668
- Vec :: new ( )
669
- }
670
- } ) ;
665
+ actions
666
+ } ) ;
671
667
672
- action
673
- } )
674
- {
675
- actions. push ( action) ;
676
- }
668
+ vec ! [ action]
669
+ } ) ;
677
670
671
+ actions. push ( action) ;
678
672
actions
679
673
}
680
674
}
0 commit comments