subspace_networking/protocols/request_response/handlers/
segment_header.rs1use super::generic_request_handler::{GenericRequest, GenericRequestHandler};
7use parity_scale_codec::{Decode, Encode};
8use std::sync::Arc;
9use subspace_core_primitives::segments::{SegmentHeader, SegmentIndex};
10
11#[derive(Debug, Clone, Eq, PartialEq, Encode, Decode)]
13pub enum SegmentHeaderRequest {
14 SegmentIndexes {
16 segment_indexes: Arc<Vec<SegmentIndex>>,
20 },
21 LastSegmentHeaders {
23 limit: u32,
25 },
26}
27
28impl GenericRequest for SegmentHeaderRequest {
29 const PROTOCOL_NAME: &'static str = "/subspace/segment-headers-by-indexes/0.1.0";
30 const LOG_TARGET: &'static str = "segment-headers-by-indexes-request-response-handler";
31 type Response = SegmentHeaderResponse;
32}
33
34#[derive(Debug, PartialEq, Eq, Clone, Encode, Decode)]
36pub struct SegmentHeaderResponse {
37 pub segment_headers: Vec<SegmentHeader>,
39}
40
41pub type SegmentHeaderBySegmentIndexesRequestHandler = GenericRequestHandler<SegmentHeaderRequest>;