Skip to main content

thruput_xdr/
view.rs

1// -*-Rust-*-
2// Generated Code: DO NOT CHECK IN
3
4// Generated from xdrc commit: 6ab835b07c234abb4b0b50b61d687904727a4f32
5
6#![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};
20#[cfg(feature = "xdrs")]
21use xdrs::*;
22
23
24#[cfg(feature = "serde")]
25use ::serde::{{Serialize, Deserialize}};
26
27
28
29// An XDR-encoded AuthToken, left opaque so the node decodes it under the
30// chain's max_auth_token_depth, as it does a token MintAuthToken mints.
31pub type SerializedAuthToken = BytesM;
32
33#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
34#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
35#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
36#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
37#[repr(C)]
38pub struct TransactionViewQuery {
39    // The invocation to be queried
40    pub invocation: Invocation,
41    // Context around the invocation
42    pub parent_address: Option<ContractAddress>,
43    pub auth_claim: AuthClaim,
44    pub forwarded_tokens: VecM<SerializedAuthToken>,
45    pub invoke_flags: InvokeFlagSet,
46}
47
48#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
49#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
50#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
51#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
52#[repr(C)]
53pub struct TransactionViewResult {
54    // The result of the invocation
55    pub output: InvocationFrameOutput,
56    pub gas_consumed: GasAmount,
57    pub events: VecM<TxEmittedEvent>,
58}
59
60#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
61#[cfg_attr(feature = "serde", serde(transparent))]
62#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
63#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
64#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
65#[derive(Copy)]
66#[repr(transparent)]
67pub struct TransactionViewStatus(pub i32);
68
69impl TransactionViewStatus {
70    pub const Ok: Self = Self(0);
71
72    // Block was abandoned (sibling block committed) during view execution.
73    // View operation should be retried later.
74    pub const Abandoned: Self = Self(1);
75
76    // Internal error; should not happen.
77    pub const InternalError: Self = Self(2);
78
79    // Invalid input: i.e. reentrance guard violation.  Deterministic, but the frame does not start,
80    // so no frame output is produced.
81    pub const InvalidInput: Self = Self(3);
82
83    // Validation failure: supplied nondeterministic data is somehow invalid,
84    // such as requesting a queue entry that is not present.
85    pub const NondeterministicDataValidationFailure: Self = Self(4);
86}
87impl From<i32> for TransactionViewStatus {
88    fn from(v: i32) -> Self {
89        Self(v)
90    }
91}
92#[cfg(feature = "std")]
93impl core::fmt::Display for TransactionViewStatus {
94    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
95        match self.0 {
96            x if x == Self::Ok.0 => {
97                write!(f, "TransactionViewStatus::Ok")
98            },
99            x if x == Self::Abandoned.0 => {
100                write!(f, "TransactionViewStatus::Abandoned")
101            },
102            x if x == Self::InternalError.0 => {
103                write!(f, "TransactionViewStatus::InternalError")
104            },
105            x if x == Self::InvalidInput.0 => {
106                write!(f, "TransactionViewStatus::InvalidInput")
107            },
108            x if x == Self::NondeterministicDataValidationFailure.0 => {
109                write!(f, "TransactionViewStatus::NondeterministicDataValidationFailure")
110            },
111            _ => {
112                write!(f, "TransactionViewStatus({})", self.0)
113            }
114        }
115    }
116}
117
118
119#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
120#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
121#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
122#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
123#[repr(i32)]
124#[non_exhaustive]
125pub enum ExpectedViewResult {
126    // case Ok:
127    //   TransactionViewResult result;
128    Ok { result: TransactionViewResult } = TransactionViewStatus::Ok.0 as i32,
129    // case InvalidInput:
130    //   SyscallErrorCode error_code;
131    InvalidInput { error_code: SyscallErrorCode } = TransactionViewStatus::InvalidInput.0 as i32,
132    // case Abandoned:
133    // case InternalError:
134    // case NondeterministicDataValidationFailure:
135    //   void;
136    Abandoned = TransactionViewStatus::Abandoned.0 as i32,
137    InternalError = TransactionViewStatus::InternalError.0 as i32,
138    NondeterministicDataValidationFailure = TransactionViewStatus::NondeterministicDataValidationFailure.0 as i32,
139    
140}
141
142
143//
144// XDR internals below this point
145//
146
147impl ExpectedViewResult {
148    #[allow(clippy::match_single_binding)]
149    pub fn status(&self) -> TransactionViewStatus {
150        match self {
151            
152            _ => (unsafe { *(self as *const Self as *const i32) }).into(),
153        }
154    }
155}
156
157