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
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
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<A, B> HeadersClient for Either<A, B>
impl<A, B> HeadersClient for Either<A, B>
type Header = <A as HeadersClient>::Header
type Output = Either<<A as HeadersClient>::Output, <B as HeadersClient>::Output>
fn get_headers_with_priority( &self, request: HeadersRequest, priority: Priority, ) -> <Either<A, B> 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>
§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§
§impl HeadersClient for TestFullBlockClient
Implements the HeadersClient trait for the TestFullBlockClient struct.
impl HeadersClient for TestFullBlockClient
Implements the HeadersClient trait for the TestFullBlockClient struct.