@@ -142,7 +142,7 @@ use crate::prelude::*;
142
142
use lightning:: ln:: { PaymentHash , PaymentPreimage , PaymentSecret } ;
143
143
use lightning:: ln:: channelmanager:: { ChannelDetails , PaymentId , PaymentSendFailure } ;
144
144
use lightning:: ln:: msgs:: LightningError ;
145
- use lightning:: routing:: scoring:: { LockableScore , Score } ;
145
+ use lightning:: routing:: scoring:: { LockableScore , MultiThreadedLockableScore , Score } ;
146
146
use lightning:: routing:: router:: { PaymentParameters , Route , RouteParameters } ;
147
147
use lightning:: util:: events:: { Event , EventHandler } ;
148
148
use lightning:: util:: logger:: Logger ;
@@ -160,16 +160,15 @@ use std::time::SystemTime;
160
160
/// See [module-level documentation] for details.
161
161
///
162
162
/// [module-level documentation]: crate::payment
163
- pub struct InvoicePayer < P : Deref , R , S : Deref , L : Deref , E : EventHandler >
163
+ pub struct InvoicePayer < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler >
164
164
where
165
165
P :: Target : Payer ,
166
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
167
- S :: Target : for < ' a > LockableScore < ' a > ,
166
+ R :: Target : Router < S > ,
168
167
L :: Target : Logger ,
169
168
{
170
169
payer : P ,
171
170
router : R ,
172
- scorer : S ,
171
+ scorer : SR ,
173
172
logger : L ,
174
173
event_handler : E ,
175
174
/// Caches the overall attempts at making a payment, which is updated prior to retrying.
@@ -230,19 +229,18 @@ pub enum PaymentError {
230
229
Sending ( PaymentSendFailure ) ,
231
230
}
232
231
233
- impl < P : Deref , R , S : Deref , L : Deref , E : EventHandler > InvoicePayer < P , R , S , L , E >
232
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler > InvoicePayer < P , S , R , SR , L , E >
234
233
where
235
234
P :: Target : Payer ,
236
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
237
- S :: Target : for < ' a > LockableScore < ' a > ,
235
+ R :: Target : Router < S > ,
238
236
L :: Target : Logger ,
239
237
{
240
238
/// Creates an invoice payer that retries failed payment paths.
241
239
///
242
240
/// Will forward any [`Event::PaymentPathFailed`] events to the decorated `event_handler` once
243
241
/// `retry_attempts` has been exceeded for a given [`Invoice`].
244
242
pub fn new (
245
- payer : P , router : R , scorer : S , logger : L , event_handler : E , retry_attempts : RetryAttempts
243
+ payer : P , router : R , scorer : SR , logger : L , event_handler : E , retry_attempts : RetryAttempts
246
244
) -> Self {
247
245
Self {
248
246
payer,
@@ -468,11 +466,10 @@ fn has_expired(route_params: &RouteParameters) -> bool {
468
466
} else { false }
469
467
}
470
468
471
- impl < P : Deref , R , S : Deref , L : Deref , E : EventHandler > EventHandler for InvoicePayer < P , R , S , L , E >
469
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler > EventHandler for InvoicePayer < P , S , R , SR , L , E >
472
470
where
473
471
P :: Target : Payer ,
474
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
475
- S :: Target : for < ' a > LockableScore < ' a > ,
472
+ R :: Target : Router < S > ,
476
473
L :: Target : Logger ,
477
474
{
478
475
fn handle_event ( & self , event : & Event ) {
0 commit comments