Trait HeadersClient
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> ⓘ { ... }
}
Expand description
The block headers downloader client
Required Associated Types§
type Header: BlockHeader
type Header: BlockHeader
The header type this client fetches.
Required Methods§
fn 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§
fn 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.
fn 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.
fn 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
Implementations on Foreign Types§
§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
§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> ⓘ
§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> ⓘ
Implementors§
§impl HeadersClient for NoopFullBlockClient
impl HeadersClient for NoopFullBlockClient
§impl HeadersClient for TestFullBlockClient
Implements the HeadersClient
trait for the TestFullBlockClient
struct.
impl HeadersClient for TestFullBlockClient
Implements the HeadersClient
trait for the TestFullBlockClient
struct.