celestia_core/abci/request/
process_proposal.rs1use crate::block::{Data, Header};
2use crate::prelude::*;
3
4#[doc = include_str!("../doc/request-processproposal.md")]
5#[derive(Clone, Debug, PartialEq, Eq)]
6pub struct ProcessProposal {
7 pub header: Header,
8 pub block_data: Data,
9}
10
11mod v0_34 {
16 use super::ProcessProposal;
17 use crate::{prelude::*, Error};
18 use celestia_core_proto::v0_34::abci as pb;
19 use celestia_core_proto::Protobuf;
20
21 impl From<ProcessProposal> for pb::RequestProcessProposal {
22 fn from(value: ProcessProposal) -> Self {
23 Self {
24 header: Some(value.header.into()),
25 block_data: Some(value.block_data.into()),
26 }
27 }
28 }
29
30 impl TryFrom<pb::RequestProcessProposal> for ProcessProposal {
31 type Error = Error;
32
33 fn try_from(message: pb::RequestProcessProposal) -> Result<Self, Self::Error> {
34 Ok(ProcessProposal {
35 header: message
36 .header
37 .ok_or_else(Error::missing_header)?
38 .try_into()?,
39 block_data: message
40 .block_data
41 .ok_or_else(Error::missing_data)?
42 .try_into()?,
43 })
44 }
45 }
46
47 impl Protobuf<pb::RequestProcessProposal> for ProcessProposal {}
48}