11use crate :: {
2- hex_utils, ChannelManager , Error , FilesystemPersister , LdkLiteChainAccess , LdkLiteConfig ,
2+ hex_utils, ChannelManager , Error , LdkLiteChainAccess , LdkLiteConfig ,
33 NetworkGraph , PaymentInfo , PaymentInfoStorage , PaymentStatus ,
44} ;
55
66#[ allow( unused_imports) ]
77use crate :: logger:: {
8- log_error, log_given_level, log_info, log_internal, log_trace, log_warn, FilesystemLogger ,
8+ log_error, log_given_level, log_info, log_internal, log_trace, log_warn,
99 Logger ,
1010} ;
1111
@@ -22,6 +22,7 @@ use lightning::util::ser::{Readable, ReadableArgs, Writeable, Writer};
2222use bitcoin:: secp256k1:: Secp256k1 ;
2323use rand:: { thread_rng, Rng } ;
2424use std:: collections:: { hash_map, VecDeque } ;
25+ use std:: ops:: Deref ;
2526use std:: sync:: { Arc , Condvar , Mutex } ;
2627use std:: thread;
2728use std:: time:: Duration ;
@@ -152,14 +153,20 @@ impl Writeable for LdkLiteEvent {
152153 }
153154}
154155
155- pub ( crate ) struct LdkLiteEventQueue < K : KVStorePersister > {
156+ pub ( crate ) struct LdkLiteEventQueue < K : Deref >
157+ where
158+ K :: Target : KVStorePersister ,
159+ {
156160 queue : Mutex < EventQueueSerWrapper > ,
157161 notifier : Condvar ,
158- persister : Arc < K > ,
162+ persister : K ,
159163}
160164
161- impl < K : KVStorePersister > LdkLiteEventQueue < K > {
162- pub ( crate ) fn new ( persister : Arc < K > ) -> Self {
165+ impl < K : Deref > LdkLiteEventQueue < K >
166+ where
167+ K :: Target : KVStorePersister ,
168+ {
169+ pub ( crate ) fn new ( persister : K ) -> Self {
163170 let queue: Mutex < EventQueueSerWrapper > = Mutex :: new ( EventQueueSerWrapper ( VecDeque :: new ( ) ) ) ;
164171 let notifier = Condvar :: new ( ) ;
165172 Self { queue, notifier, persister }
@@ -194,10 +201,13 @@ impl<K: KVStorePersister> LdkLiteEventQueue<K> {
194201 }
195202}
196203
197- impl < K : KVStorePersister > ReadableArgs < Arc < K > > for LdkLiteEventQueue < K > {
204+ impl < K : Deref > ReadableArgs < K > for LdkLiteEventQueue < K >
205+ where
206+ K :: Target : KVStorePersister ,
207+ {
198208 #[ inline]
199209 fn read < R : lightning:: io:: Read > (
200- reader : & mut R , persister : Arc < K > ,
210+ reader : & mut R , persister : K ,
201211 ) -> Result < Self , lightning:: ln:: msgs:: DecodeError > {
202212 let queue: Mutex < EventQueueSerWrapper > = Mutex :: new ( Readable :: read ( reader) ?) ;
203213 let notifier = Condvar :: new ( ) ;
@@ -230,26 +240,32 @@ impl Writeable for EventQueueSerWrapper {
230240 }
231241}
232242
233- pub ( crate ) struct LdkLiteEventHandler {
234- chain_access : Arc < LdkLiteChainAccess < bdk:: sled:: Tree > > ,
235- event_queue : Arc < LdkLiteEventQueue < FilesystemPersister > > ,
243+ pub ( crate ) struct LdkLiteEventHandler < K : Deref , L : Deref >
244+ where
245+ K :: Target : KVStorePersister ,
246+ L :: Target : Logger ,
247+ {
248+ chain_access : Arc < ChainAccess < bdk:: sled:: Tree > > ,
249+ event_queue : Arc < EventQueue < K > > ,
236250 channel_manager : Arc < ChannelManager > ,
237251 network_graph : Arc < NetworkGraph > ,
238252 keys_manager : Arc < KeysManager > ,
239253 inbound_payments : Arc < PaymentInfoStorage > ,
240254 outbound_payments : Arc < PaymentInfoStorage > ,
241- logger : Arc < FilesystemLogger > ,
242- _config : Arc < LdkLiteConfig > ,
255+ logger : L ,
256+ _config : Arc < Config > ,
243257}
244258
245- impl LdkLiteEventHandler {
259+ impl < K : Deref , L : Deref > LdkLiteEventHandler < K , L >
260+ where
261+ K :: Target : KVStorePersister ,
262+ L :: Target : Logger ,
263+ {
246264 pub fn new (
247- chain_access : Arc < LdkLiteChainAccess < bdk:: sled:: Tree > > ,
248- event_queue : Arc < LdkLiteEventQueue < FilesystemPersister > > ,
265+ chain_access : Arc < ChainAccess < bdk:: sled:: Tree > > , event_queue : Arc < EventQueue < K > > ,
249266 channel_manager : Arc < ChannelManager > , network_graph : Arc < NetworkGraph > ,
250267 keys_manager : Arc < KeysManager > , inbound_payments : Arc < PaymentInfoStorage > ,
251- outbound_payments : Arc < PaymentInfoStorage > , logger : Arc < FilesystemLogger > ,
252- _config : Arc < LdkLiteConfig > ,
268+ outbound_payments : Arc < PaymentInfoStorage > , logger : L , _config : Arc < Config > ,
253269 ) -> Self {
254270 Self {
255271 event_queue,
@@ -265,8 +281,12 @@ impl LdkLiteEventHandler {
265281 }
266282}
267283
268- impl LdkEventHandler for LdkLiteEventHandler {
269- fn handle_event ( & self , event : & LdkEvent ) {
284+ impl < K : Deref , L : Deref > LdkEventHandler for LdkLiteEventHandler < K , L >
285+ where
286+ K :: Target : KVStorePersister ,
287+ L :: Target : Logger ,
288+ {
289+ fn handle_event ( & self , event : LdkEvent ) {
270290 match event {
271291 LdkEvent :: FundingGenerationReady {
272292 temporary_channel_id,
0 commit comments