Swap around generic argument ordering in InvoicePayer for bindings 2021-12-minor-bindings-tweaks
authorMatt Corallo <git@bluematt.me>
Sat, 18 Dec 2021 19:52:11 +0000 (19:52 +0000)
committerMatt Corallo <git@bluematt.me>
Sat, 18 Dec 2021 20:20:23 +0000 (20:20 +0000)
The bindings generation really should support generic bounds other
than Deref::Target in where clauses, but currently does not. To
avoid needing to add support during the current release process,
we simply swap around the arguments to move them to the first <>
instead of the where.

lightning-invoice/src/payment.rs

index d08f38facd45acbc5c173d147499f49d72779619..4e249a85c3f09d238a59cd09c1e55e6b920eea66 100644 (file)
@@ -150,13 +150,12 @@ use std::time::{Duration, SystemTime};
 /// See [module-level documentation] for details.
 ///
 /// [module-level documentation]: crate::payment
-pub struct InvoicePayer<P: Deref, R, S: Deref, L: Deref, E>
+pub struct InvoicePayer<P: Deref, R, S: Deref, L: Deref, E: EventHandler>
 where
        P::Target: Payer,
        R: for <'a> Router<<<S as Deref>::Target as LockableScore<'a>>::Locked>,
        S::Target: for <'a> LockableScore<'a>,
        L::Target: Logger,
-       E: EventHandler,
 {
        payer: P,
        router: R,
@@ -221,13 +220,12 @@ pub enum PaymentError {
        Sending(PaymentSendFailure),
 }
 
-impl<P: Deref, R, S: Deref, L: Deref, E> InvoicePayer<P, R, S, L, E>
+impl<P: Deref, R, S: Deref, L: Deref, E: EventHandler> InvoicePayer<P, R, S, L, E>
 where
        P::Target: Payer,
        R: for <'a> Router<<<S as Deref>::Target as LockableScore<'a>>::Locked>,
        S::Target: for <'a> LockableScore<'a>,
        L::Target: Logger,
-       E: EventHandler,
 {
        /// Creates an invoice payer that retries failed payment paths.
        ///
@@ -455,13 +453,12 @@ fn has_expired(params: &RouteParameters) -> bool {
        } else { false }
 }
 
-impl<P: Deref, R, S: Deref, L: Deref, E> EventHandler for InvoicePayer<P, R, S, L, E>
+impl<P: Deref, R, S: Deref, L: Deref, E: EventHandler> EventHandler for InvoicePayer<P, R, S, L, E>
 where
        P::Target: Payer,
        R: for <'a> Router<<<S as Deref>::Target as LockableScore<'a>>::Locked>,
        S::Target: for <'a> LockableScore<'a>,
        L::Target: Logger,
-       E: EventHandler,
 {
        fn handle_event(&self, event: &Event) {
                match event {