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> ⓘ
§impl<B> HeadersClient for FileClient<B>where
B: FullBlock,
impl<B> HeadersClient for FileClient<B>where
B: FullBlock,
§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 TestFullBlockClient
Implements the HeadersClient
trait for the TestFullBlockClient
struct.
impl HeadersClient for TestFullBlockClient
Implements the HeadersClient
trait for the TestFullBlockClient
struct.