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