pub trait HeadersClient: DownloadClient {
type Header: BlockHeader;
type Output: Future<Output = Result<WithPeerId<Vec<Self::Header>>, RequestError>> + Sync + Send + Unpin;
// Required method
fn get_headers_with_priority(
&self,
request: HeadersRequest,
priority: Priority,
) -> Self::Output;
// Provided methods
fn get_headers(&self, request: HeadersRequest) -> Self::Output { ... }
fn get_header(
&self,
start: HashOrNumber,
) -> SingleHeaderRequest<Self::Output> ⓘ { ... }
fn get_header_with_priority(
&self,
start: HashOrNumber,
priority: Priority,
) -> SingleHeaderRequest<Self::Output> ⓘ { ... }
}Available on crate feature
network only.Expand description
The block headers downloader client
Required Associated Types§
Sourcetype Header: BlockHeader
type Header: BlockHeader
The header type this client fetches.
Required Methods§
Sourcefn get_headers_with_priority(
&self,
request: HeadersRequest,
priority: Priority,
) -> Self::Output
fn get_headers_with_priority( &self, request: HeadersRequest, priority: Priority, ) -> Self::Output
Sends the header request to the p2p network with priority set and returns the header response received from a peer.
Provided Methods§
Sourcefn get_headers(&self, request: HeadersRequest) -> Self::Output
fn get_headers(&self, request: HeadersRequest) -> Self::Output
Sends the header request to the p2p network and returns the header response received from a peer.
Sourcefn get_header(&self, start: HashOrNumber) -> SingleHeaderRequest<Self::Output> ⓘ
fn get_header(&self, start: HashOrNumber) -> SingleHeaderRequest<Self::Output> ⓘ
Fetches a single header for the requested number or hash.
Sourcefn get_header_with_priority(
&self,
start: HashOrNumber,
priority: Priority,
) -> SingleHeaderRequest<Self::Output> ⓘ
fn get_header_with_priority( &self, start: HashOrNumber, priority: Priority, ) -> SingleHeaderRequest<Self::Output> ⓘ
Fetches a single header for the requested number or hash with priority
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<'a, T> HeadersClient for &'a T
impl<'a, T> HeadersClient for &'a T
type Header = <T as HeadersClient>::Header
type Output = <T as HeadersClient>::Output
fn get_headers( &self, request: HeadersRequest, ) -> <&'a T as HeadersClient>::Output
fn get_headers_with_priority( &self, request: HeadersRequest, priority: Priority, ) -> <&'a T as HeadersClient>::Output
fn get_header( &self, start: HashOrNumber, ) -> SingleHeaderRequest<<&'a T as HeadersClient>::Output> ⓘ
fn get_header_with_priority( &self, start: HashOrNumber, priority: Priority, ) -> SingleHeaderRequest<<&'a T as HeadersClient>::Output> ⓘ
Source§impl<B> HeadersClient for FileClient<B>where
B: FullBlock,
impl<B> HeadersClient for FileClient<B>where
B: FullBlock,
type Header = <B as Block>::Header
type Output = Pin<Box<dyn Future<Output = Result<WithPeerId<Vec<<B as Block>::Header>>, RequestError>> + Send + Sync>>
fn get_headers_with_priority( &self, request: HeadersRequest, _priority: Priority, ) -> <FileClient<B> as HeadersClient>::Output
Source§impl<T> HeadersClient for Arc<T>
impl<T> HeadersClient for Arc<T>
type Header = <T as HeadersClient>::Header
type Output = <T as HeadersClient>::Output
fn get_headers( &self, request: HeadersRequest, ) -> <Arc<T> as HeadersClient>::Output ⓘ
fn get_headers_with_priority( &self, request: HeadersRequest, priority: Priority, ) -> <Arc<T> as HeadersClient>::Output ⓘ
fn get_header( &self, start: HashOrNumber, ) -> SingleHeaderRequest<<Arc<T> as HeadersClient>::Output> ⓘ
fn get_header_with_priority( &self, start: HashOrNumber, priority: Priority, ) -> SingleHeaderRequest<<Arc<T> as HeadersClient>::Output> ⓘ
Source§impl<T> HeadersClient for Box<T>
impl<T> HeadersClient for Box<T>
type Header = <T as HeadersClient>::Header
type Output = <T as HeadersClient>::Output
fn get_headers( &self, request: HeadersRequest, ) -> <Box<T> as HeadersClient>::Output
fn get_headers_with_priority( &self, request: HeadersRequest, priority: Priority, ) -> <Box<T> as HeadersClient>::Output
fn get_header( &self, start: HashOrNumber, ) -> SingleHeaderRequest<<Box<T> as HeadersClient>::Output> ⓘ
fn get_header_with_priority( &self, start: HashOrNumber, priority: Priority, ) -> SingleHeaderRequest<<Box<T> as HeadersClient>::Output> ⓘ
Implementors§
Source§impl HeadersClient for TestFullBlockClient
Implements the HeadersClient trait for the TestFullBlockClient struct.
impl HeadersClient for TestFullBlockClient
Implements the HeadersClient trait for the TestFullBlockClient struct.