thruput_node_types/
proposal.rs1#![allow(non_camel_case_types)]
7#![allow(non_snake_case)]
8#![allow(non_upper_case_globals)]
9#![allow(unused_imports)]
10#![allow(dead_code)]
11#![allow(unused_variables)]
12#![allow(clippy::unnecessary_cast)]
13
14use crate::*;
15use core::option::Option;
16use core::ops::{Deref, DerefMut};
17
18#[cfg(feature = "std")]
19use std::io::{Read, Write};
20use xdrs::*;
21
22
23#[cfg(feature = "serde")]
24use ::serde::{{Serialize, Deserialize}};
25
26
27
28#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
41#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
42#[derive(schemars::JsonSchema)]
43#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
44#[repr(C)]
45pub struct ProposalTxs {
46 pub ext: ExtensionPoint,
47 pub signed_hash: ParallelSignedTransactionHashBatch,
50 pub nondeterministic_data: ParallelNondeterministicProposalDataBatch,
53}
54
55#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
62#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
63#[derive(schemars::JsonSchema)]
64#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
65#[repr(transparent)]
66#[cfg_attr(feature = "serde", serde(transparent))]
67pub struct ProposalTxsHash {
68 inner: SHA256Hash,
69}
70impl From<SHA256Hash> for ProposalTxsHash {
71 fn from(_inner: SHA256Hash) -> Self {
72 Self { inner: _inner }
73 }
74}
75impl ProposalTxsHash {
76 pub fn into_inner(self) -> SHA256Hash {
77 self.inner
78 }
79 pub const fn new(_inner: SHA256Hash) -> Self {
80 Self { inner: _inner }
81 }
82}
83
84impl Deref for ProposalTxsHash {
85 type Target = SHA256Hash;
86
87 fn deref(&self) -> &Self::Target {
88 &self.inner
89 }
90}
91impl DerefMut for ProposalTxsHash {
92 fn deref_mut(&mut self) -> &mut Self::Target {
93 &mut self.inner
94 }
95}
96
97#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
103#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
104#[derive(schemars::JsonSchema)]
105#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
106#[repr(C)]
107pub struct Proposal {
108 pub header: ProposalHeader,
109 pub transactions: ProposalTxs,
110}
111
112pub type OptProposal = Option::<Proposal>;
113
114#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
119#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
120#[derive(schemars::JsonSchema)]
121#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
122#[repr(C)]
123pub struct PrevProposalSummary {
124 pub value_hash: ConsensusValueHash,
125}
126
127
128