]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Drop `EventHandler` support for `Future`s since its nonsense in bindings
authorMatt Corallo <git@bluematt.me>
Thu, 22 Dec 2022 21:54:35 +0000 (21:54 +0000)
committerMatt Corallo <git@bluematt.me>
Tue, 3 Jan 2023 22:09:15 +0000 (22:09 +0000)
lightning-invoice/src/payment.rs

index 03dc9361f7e4fecf827b9878c569bb412a8c163f..ae1a7d6131e925909eee4bf7397b02a2fc3481a3 100644 (file)
@@ -174,19 +174,12 @@ use crate::time_utils;
 #[cfg(feature = "no-std")]
 type ConfiguredTime = time_utils::Eternity;
 
-/// Sealed trait with a blanket implementation to allow both sync and async implementations of event
-/// handling to exist within the InvoicePayer.
-mod sealed {
-       pub trait BaseEventHandler {}
-       impl<T> BaseEventHandler for T {}
-}
-
 /// (C-not exported) generally all users should use the [`InvoicePayer`] type alias.
 pub struct InvoicePayerUsingTime<
        P: Deref,
        R: Router,
        L: Deref,
-       E: sealed::BaseEventHandler,
+       E: EventHandler,
        T: Time
 > where
        P::Target: Payer,
@@ -316,7 +309,7 @@ pub enum PaymentError {
        Sending(PaymentSendFailure),
 }
 
-impl<P: Deref, R: Router, L: Deref, E: sealed::BaseEventHandler, T: Time>
+impl<P: Deref, R: Router, L: Deref, E: EventHandler, T: Time>
        InvoicePayerUsingTime<P, R, L, E, T>
 where
        P::Target: Payer,
@@ -630,7 +623,7 @@ fn has_expired(route_params: &RouteParameters) -> bool {
        } else { false }
 }
 
-impl<P: Deref, R: Router, L: Deref, E: sealed::BaseEventHandler, T: Time>
+impl<P: Deref, R: Router, L: Deref, E: EventHandler, T: Time>
        InvoicePayerUsingTime<P, R, L, E, T>
 where
        P::Target: Payer,
@@ -711,6 +704,7 @@ where
        }
 }
 
+#[cfg(not(c_bindings))]
 impl<P: Deref, R: Router, L: Deref, T: Time, F: Future, H: Fn(Event) -> F>
        InvoicePayerUsingTime<P, R, L, H, T>
 where