#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(unused_imports)]
#![allow(dead_code)]
#![allow(unused_variables)]
#![allow(clippy::unnecessary_cast)]
use crate::*;
use core::option::Option;
use core::ops::{Deref, DerefMut};
#[cfg(feature = "std")]
use std::io::{Read, Write};
use xdrs::*;
#[cfg(feature = "serde")]
use ::serde::{{Serialize, Deserialize}};
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[derive(schemars::JsonSchema)]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct ProposalTxs {
pub ext: ExtensionPoint,
pub signed_hash: ParallelSignedTransactionHashBatch,
pub nondeterministic_data: ParallelNondeterministicProposalDataBatch,
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[derive(schemars::JsonSchema)]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(transparent)]
#[cfg_attr(feature = "serde", serde(transparent))]
pub struct ProposalTxsHash {
inner: SHA256Hash,
}
impl From<SHA256Hash> for ProposalTxsHash {
fn from(_inner: SHA256Hash) -> Self {
Self { inner: _inner }
}
}
impl ProposalTxsHash {
pub fn into_inner(self) -> SHA256Hash {
self.inner
}
pub const fn new(_inner: SHA256Hash) -> Self {
Self { inner: _inner }
}
}
impl Deref for ProposalTxsHash {
type Target = SHA256Hash;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl DerefMut for ProposalTxsHash {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[derive(schemars::JsonSchema)]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct Proposal {
pub header: ProposalHeader,
pub transactions: ProposalTxs,
}
pub type OptProposal = Option::<Proposal>;
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(ReadXDR, WriteXDR, ConstXDRSize)]
#[derive(schemars::JsonSchema)]
#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[repr(C)]
pub struct PrevProposalSummary {
pub value_hash: ConsensusValueHash,
}