reth_downloaders/bodies/
noop.rs
1use alloy_primitives::BlockNumber;
2use futures::Stream;
3use reth_network_p2p::{
4 bodies::{downloader::BodyDownloader, response::BlockResponse},
5 error::{DownloadError, DownloadResult},
6};
7use reth_primitives_traits::Block;
8use std::{fmt::Debug, ops::RangeInclusive};
9
10#[derive(Debug, Default)]
12#[non_exhaustive]
13pub struct NoopBodiesDownloader<B> {
14 _block: std::marker::PhantomData<B>,
15}
16
17impl<B: Block + 'static> BodyDownloader for NoopBodiesDownloader<B> {
18 type Block = B;
19
20 fn set_download_range(&mut self, _: RangeInclusive<BlockNumber>) -> DownloadResult<()> {
21 Ok(())
22 }
23}
24
25impl<B: Block + 'static> Stream for NoopBodiesDownloader<B> {
26 type Item = Result<Vec<BlockResponse<B>>, DownloadError>;
27
28 fn poll_next(
29 self: std::pin::Pin<&mut Self>,
30 _: &mut std::task::Context<'_>,
31 ) -> std::task::Poll<Option<Self::Item>> {
32 panic!("NoopBodiesDownloader shouldn't be polled.")
33 }
34}