reth_downloaders/headers/
noop.rs1use futures::Stream;
2use reth_network_p2p::headers::{
3 downloader::{HeaderDownloader, SyncTarget},
4 error::HeadersDownloaderError,
5};
6use reth_primitives::SealedHeader;
7use std::fmt::Debug;
8
9#[derive(Debug, Default)]
11#[non_exhaustive]
12pub struct NoopHeaderDownloader<H>(std::marker::PhantomData<H>);
13
14impl<H: Debug + Send + Sync + Unpin + 'static> HeaderDownloader for NoopHeaderDownloader<H> {
15 type Header = H;
16
17 fn update_local_head(&mut self, _: SealedHeader<H>) {}
18
19 fn update_sync_target(&mut self, _: SyncTarget) {}
20
21 fn set_batch_size(&mut self, _: usize) {}
22}
23
24impl<H> Stream for NoopHeaderDownloader<H> {
25 type Item = Result<Vec<SealedHeader<H>>, HeadersDownloaderError<H>>;
26
27 fn poll_next(
28 self: std::pin::Pin<&mut Self>,
29 _: &mut std::task::Context<'_>,
30 ) -> std::task::Poll<Option<Self::Item>> {
31 panic!("NoopHeaderDownloader shouldn't be polled.")
32 }
33}