@@ -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,15 @@ 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 : EventHandler >
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 ,
160
158
{
161
159
payer : P ,
162
160
router : R ,
163
- scorer : S ,
161
+ scorer : SR ,
164
162
logger : L ,
165
163
event_handler : E ,
166
164
/// Caches the overall attempts at making a payment, which is updated prior to retrying.
@@ -221,20 +219,18 @@ pub enum PaymentError {
221
219
Sending ( PaymentSendFailure ) ,
222
220
}
223
221
224
- impl < P : Deref , R , S : Deref , L : Deref , E > InvoicePayer < P , R , S , L , E >
222
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler > InvoicePayer < P , S , R , SR , L , E >
225
223
where
226
224
P :: Target : Payer ,
227
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
228
- S :: Target : for < ' a > LockableScore < ' a > ,
225
+ R :: Target : Router < S > ,
229
226
L :: Target : Logger ,
230
- E : EventHandler ,
231
227
{
232
228
/// Creates an invoice payer that retries failed payment paths.
233
229
///
234
230
/// Will forward any [`Event::PaymentPathFailed`] events to the decorated `event_handler` once
235
231
/// `retry_attempts` has been exceeded for a given [`Invoice`].
236
232
pub fn new (
237
- payer : P , router : R , scorer : S , logger : L , event_handler : E , retry_attempts : RetryAttempts
233
+ payer : P , router : R , scorer : SR , logger : L , event_handler : E , retry_attempts : RetryAttempts
238
234
) -> Self {
239
235
Self {
240
236
payer,
@@ -455,13 +451,11 @@ fn has_expired(params: &RouteParameters) -> bool {
455
451
} else { false }
456
452
}
457
453
458
- impl < P : Deref , R , S : Deref , L : Deref , E > EventHandler for InvoicePayer < P , R , S , L , E >
454
+ 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 >
459
455
where
460
456
P :: Target : Payer ,
461
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
462
- S :: Target : for < ' a > LockableScore < ' a > ,
457
+ R :: Target : Router < S > ,
463
458
L :: Target : Logger ,
464
- E : EventHandler ,
465
459
{
466
460
fn handle_event ( & self , event : & Event ) {
467
461
match event {
0 commit comments