kaspa_p2p_lib/convert/
pruning.rs

1use super::error::ConversionError;
2use crate::pb as protowire;
3use kaspa_consensus_core::header::Header;
4use std::sync::Arc;
5
6// ----------------------------------------------------------------------------
7// consensus_core to protowire
8// ----------------------------------------------------------------------------
9
10impl From<&Vec<Arc<Header>>> for protowire::PruningPointProofHeaderArray {
11    fn from(v: &Vec<Arc<Header>>) -> Self {
12        Self { headers: v.iter().map(|header| header.as_ref().into()).collect() }
13    }
14}
15
16// ----------------------------------------------------------------------------
17// protowire to consensus_core
18// ----------------------------------------------------------------------------
19
20impl TryFrom<protowire::PruningPointProofHeaderArray> for Vec<Arc<Header>> {
21    type Error = ConversionError;
22
23    fn try_from(v: protowire::PruningPointProofHeaderArray) -> Result<Self, Self::Error> {
24        v.headers.into_iter().map(|x| x.try_into().map(Arc::new)).collect()
25    }
26}