@@ -121,11 +121,11 @@ BlockSourceResult<ValidatedBlockHeader> {
121
121
/// [`SpvClient`]: crate::SpvClient
122
122
/// [`ChannelManager`]: lightning::ln::channelmanager::ChannelManager
123
123
/// [`ChannelMonitor`]: lightning::chain::channelmonitor::ChannelMonitor
124
- pub async fn synchronize_listeners < B : BlockSource , C : Cache > (
124
+ pub async fn synchronize_listeners < ' a , B : BlockSource , C : Cache , L : chain :: Listen + ? Sized > (
125
125
block_source : & mut B ,
126
126
network : Network ,
127
127
header_cache : & mut C ,
128
- mut chain_listeners : Vec < ( BlockHash , & dyn chain :: Listen ) > ,
128
+ mut chain_listeners : Vec < ( BlockHash , & ' a L ) > ,
129
129
) -> BlockSourceResult < ValidatedBlockHeader > {
130
130
let best_header = validate_best_block_header ( block_source) . await ?;
131
131
@@ -198,9 +198,9 @@ impl<'a, C: Cache> Cache for ReadOnlyCache<'a, C> {
198
198
}
199
199
200
200
/// Wrapper for supporting dynamically sized chain listeners.
201
- struct DynamicChainListener < ' a > ( & ' a dyn chain:: Listen ) ;
201
+ struct DynamicChainListener < ' a , L : chain:: Listen + ? Sized > ( & ' a L ) ;
202
202
203
- impl < ' a > chain:: Listen for DynamicChainListener < ' a > {
203
+ impl < ' a , L : chain :: Listen + ? Sized > chain:: Listen for DynamicChainListener < ' a , L > {
204
204
fn block_connected ( & self , _block : & Block , _height : u32 ) {
205
205
unreachable ! ( )
206
206
}
@@ -211,9 +211,9 @@ impl<'a> chain::Listen for DynamicChainListener<'a> {
211
211
}
212
212
213
213
/// A set of dynamically sized chain listeners, each paired with a starting block height.
214
- struct ChainListenerSet < ' a > ( Vec < ( u32 , & ' a dyn chain :: Listen ) > ) ;
214
+ struct ChainListenerSet < ' a , L : chain :: Listen + ? Sized > ( Vec < ( u32 , & ' a L ) > ) ;
215
215
216
- impl < ' a > chain:: Listen for ChainListenerSet < ' a > {
216
+ impl < ' a , L : chain :: Listen + ? Sized > chain:: Listen for ChainListenerSet < ' a , L > {
217
217
fn block_connected ( & self , block : & Block , height : u32 ) {
218
218
for ( starting_height, chain_listener) in self . 0 . iter ( ) {
219
219
if height > * starting_height {
0 commit comments