@@ -133,7 +133,7 @@ use bitcoin_hashes::sha256::Hash as Sha256;
133
133
use lightning:: ln:: { PaymentHash , PaymentPreimage , PaymentSecret } ;
134
134
use lightning:: ln:: channelmanager:: { ChannelDetails , PaymentId , PaymentSendFailure } ;
135
135
use lightning:: ln:: msgs:: LightningError ;
136
- use lightning:: routing:: scoring:: { LockableScore , Score } ;
136
+ use lightning:: routing:: scoring:: { LockableScore , MultiThreadedLockableScore , Score } ;
137
137
use lightning:: routing:: router:: { Payee , Route , RouteParameters } ;
138
138
use lightning:: util:: events:: { Event , EventHandler } ;
139
139
use lightning:: util:: logger:: Logger ;
@@ -150,17 +150,16 @@ use std::time::{Duration, SystemTime};
150
150
/// See [module-level documentation] for details.
151
151
///
152
152
/// [module-level documentation]: crate::payment
153
- pub struct InvoicePayer < P : Deref , R , S : Deref , L : Deref , E >
153
+ pub struct InvoicePayer < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : Deref >
154
154
where
155
155
P :: Target : Payer ,
156
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
157
- S :: Target : for < ' a > LockableScore < ' a > ,
156
+ R :: Target : Router < S > ,
158
157
L :: Target : Logger ,
159
- E : EventHandler ,
158
+ E :: Target : EventHandler ,
160
159
{
161
160
payer : P ,
162
161
router : R ,
163
- scorer : S ,
162
+ scorer : SR ,
164
163
logger : L ,
165
164
event_handler : E ,
166
165
/// Caches the overall attempts at making a payment, which is updated prior to retrying.
@@ -221,20 +220,19 @@ pub enum PaymentError {
221
220
Sending ( PaymentSendFailure ) ,
222
221
}
223
222
224
- impl < P : Deref , R , S : Deref , L : Deref , E > InvoicePayer < P , R , S , L , E >
223
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : Deref > InvoicePayer < P , S , R , SR , L , E >
225
224
where
226
225
P :: Target : Payer ,
227
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
228
- S :: Target : for < ' a > LockableScore < ' a > ,
226
+ R :: Target : Router < S > ,
229
227
L :: Target : Logger ,
230
- E : EventHandler ,
228
+ E :: Target : EventHandler ,
231
229
{
232
230
/// Creates an invoice payer that retries failed payment paths.
233
231
///
234
232
/// Will forward any [`Event::PaymentPathFailed`] events to the decorated `event_handler` once
235
233
/// `retry_attempts` has been exceeded for a given [`Invoice`].
236
234
pub fn new (
237
- payer : P , router : R , scorer : S , logger : L , event_handler : E , retry_attempts : RetryAttempts
235
+ payer : P , router : R , scorer : SR , logger : L , event_handler : E , retry_attempts : RetryAttempts
238
236
) -> Self {
239
237
Self {
240
238
payer,
@@ -455,13 +453,13 @@ fn has_expired(params: &RouteParameters) -> bool {
455
453
} else { false }
456
454
}
457
455
458
- impl < P : Deref , R , S : Deref , L : Deref , E > EventHandler for InvoicePayer < P , R , S , L , E >
456
+
457
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : Deref > EventHandler for InvoicePayer < P , S , R , SR , L , E >
459
458
where
460
459
P :: Target : Payer ,
461
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
462
- S :: Target : for < ' a > LockableScore < ' a > ,
460
+ R :: Target : Router < S > ,
463
461
L :: Target : Logger ,
464
- E : EventHandler ,
462
+ E :: Target : EventHandler ,
465
463
{
466
464
fn handle_event ( & self , event : & Event ) {
467
465
match event {
0 commit comments