ab_networking/protocols/request_response/handlers/
segment_header.rs1use super::generic_request_handler::{GenericRequest, GenericRequestHandler};
7use ab_core_primitives::segments::{SuperSegmentHeader, SuperSegmentIndex};
8use parity_scale_codec::{Decode, Encode};
9use std::sync::Arc;
10
11#[derive(Debug, Clone, Eq, PartialEq, Encode, Decode)]
13pub enum SuperSegmentHeaderRequest {
14 SuperSegmentIndices {
16 super_segment_indices: Arc<Vec<SuperSegmentIndex>>,
20 },
21 LastSuperSegmentHeaders {
25 limit: u32,
27 },
28}
29
30impl GenericRequest for SuperSegmentHeaderRequest {
31 const PROTOCOL_NAME: &'static str = "/subspace/super-segment-headers-by-indexes/0.1.0";
32 const LOG_TARGET: &'static str = "super-segment-headers-by-indexes-request-response-handler";
33 type Response = SuperSegmentHeaderResponse;
34}
35
36#[derive(Debug, PartialEq, Eq, Clone, Encode, Decode)]
38pub struct SuperSegmentHeaderResponse {
39 pub super_segment_headers: Vec<SuperSegmentHeader>,
41}
42
43pub type SuperSegmentHeaderBySegmentIndexesRequestHandler =
45 GenericRequestHandler<SuperSegmentHeaderRequest>;