Skip to main content

stellar_xdr/generated/
type_enum.rs

1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg(feature = "type_enum")]
5#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
6#[cfg_attr(
7    all(feature = "serde", feature = "alloc"),
8    derive(serde::Serialize, serde::Deserialize),
9    serde(rename_all = "snake_case")
10)]
11#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
12pub enum TypeVariant {
13    Value,
14    ScpBallot,
15    ScpStatementType,
16    ScpNomination,
17    ScpStatement,
18    ScpStatementPledges,
19    ScpStatementPrepare,
20    ScpStatementConfirm,
21    ScpStatementExternalize,
22    ScpEnvelope,
23    ScpQuorumSet,
24    EncodedLedgerKey,
25    ConfigSettingContractExecutionLanesV0,
26    ConfigSettingContractComputeV0,
27    ConfigSettingContractParallelComputeV0,
28    ConfigSettingContractLedgerCostV0,
29    ConfigSettingContractLedgerCostExtV0,
30    ConfigSettingContractHistoricalDataV0,
31    ConfigSettingContractEventsV0,
32    ConfigSettingContractBandwidthV0,
33    ContractCostType,
34    ContractCostParamEntry,
35    StateArchivalSettings,
36    EvictionIterator,
37    ConfigSettingScpTiming,
38    FrozenLedgerKeys,
39    FrozenLedgerKeysDelta,
40    FreezeBypassTxs,
41    FreezeBypassTxsDelta,
42    ContractCostParams,
43    ConfigSettingId,
44    ConfigSettingEntry,
45    ScEnvMetaKind,
46    ScEnvMetaEntry,
47    ScEnvMetaEntryInterfaceVersion,
48    ScMetaV0,
49    ScMetaKind,
50    ScMetaEntry,
51    ScSpecType,
52    ScSpecTypeOption,
53    ScSpecTypeResult,
54    ScSpecTypeVec,
55    ScSpecTypeMap,
56    ScSpecTypeTuple,
57    ScSpecTypeBytesN,
58    ScSpecTypeUdt,
59    ScSpecTypeDef,
60    ScSpecUdtStructFieldV0,
61    ScSpecUdtStructV0,
62    ScSpecUdtUnionCaseVoidV0,
63    ScSpecUdtUnionCaseTupleV0,
64    ScSpecUdtUnionCaseV0Kind,
65    ScSpecUdtUnionCaseV0,
66    ScSpecUdtUnionV0,
67    ScSpecUdtEnumCaseV0,
68    ScSpecUdtEnumV0,
69    ScSpecUdtErrorEnumCaseV0,
70    ScSpecUdtErrorEnumV0,
71    ScSpecFunctionInputV0,
72    ScSpecFunctionV0,
73    ScSpecEventParamLocationV0,
74    ScSpecEventParamV0,
75    ScSpecEventDataFormat,
76    ScSpecEventV0,
77    ScSpecEntryKind,
78    ScSpecEntry,
79    ScValType,
80    ScErrorType,
81    ScErrorCode,
82    ScError,
83    UInt128Parts,
84    Int128Parts,
85    UInt256Parts,
86    Int256Parts,
87    ContractExecutableType,
88    ContractExecutable,
89    ScAddressType,
90    MuxedEd25519Account,
91    ScAddress,
92    ScVec,
93    ScMap,
94    ScBytes,
95    ScString,
96    ScSymbol,
97    ScNonceKey,
98    ScContractInstance,
99    ScVal,
100    ScMapEntry,
101    LedgerCloseMetaBatch,
102    StoredTransactionSet,
103    StoredDebugTransactionSet,
104    PersistedScpStateV0,
105    PersistedScpStateV1,
106    PersistedScpState,
107    Thresholds,
108    String32,
109    String64,
110    SequenceNumber,
111    DataValue,
112    AssetCode4,
113    AssetCode12,
114    AssetType,
115    AssetCode,
116    AlphaNum4,
117    AlphaNum12,
118    Asset,
119    Price,
120    Liabilities,
121    ThresholdIndexes,
122    LedgerEntryType,
123    Signer,
124    AccountFlags,
125    SponsorshipDescriptor,
126    AccountEntryExtensionV3,
127    AccountEntryExtensionV2,
128    AccountEntryExtensionV2Ext,
129    AccountEntryExtensionV1,
130    AccountEntryExtensionV1Ext,
131    AccountEntry,
132    AccountEntryExt,
133    TrustLineFlags,
134    LiquidityPoolType,
135    TrustLineAsset,
136    TrustLineEntryExtensionV2,
137    TrustLineEntryExtensionV2Ext,
138    TrustLineEntry,
139    TrustLineEntryExt,
140    TrustLineEntryV1,
141    TrustLineEntryV1Ext,
142    OfferEntryFlags,
143    OfferEntry,
144    OfferEntryExt,
145    DataEntry,
146    DataEntryExt,
147    ClaimPredicateType,
148    ClaimPredicate,
149    ClaimantType,
150    Claimant,
151    ClaimantV0,
152    ClaimableBalanceFlags,
153    ClaimableBalanceEntryExtensionV1,
154    ClaimableBalanceEntryExtensionV1Ext,
155    ClaimableBalanceEntry,
156    ClaimableBalanceEntryExt,
157    LiquidityPoolConstantProductParameters,
158    LiquidityPoolEntry,
159    LiquidityPoolEntryBody,
160    LiquidityPoolEntryConstantProduct,
161    ContractDataDurability,
162    ContractDataEntry,
163    ContractCodeCostInputs,
164    ContractCodeEntry,
165    ContractCodeEntryExt,
166    ContractCodeEntryV1,
167    TtlEntry,
168    LedgerEntryExtensionV1,
169    LedgerEntryExtensionV1Ext,
170    LedgerEntry,
171    LedgerEntryData,
172    LedgerEntryExt,
173    LedgerKey,
174    LedgerKeyAccount,
175    LedgerKeyTrustLine,
176    LedgerKeyOffer,
177    LedgerKeyData,
178    LedgerKeyClaimableBalance,
179    LedgerKeyLiquidityPool,
180    LedgerKeyContractData,
181    LedgerKeyContractCode,
182    LedgerKeyConfigSetting,
183    LedgerKeyTtl,
184    EnvelopeType,
185    BucketListType,
186    BucketEntryType,
187    HotArchiveBucketEntryType,
188    BucketMetadata,
189    BucketMetadataExt,
190    BucketEntry,
191    HotArchiveBucketEntry,
192    UpgradeType,
193    StellarValueType,
194    LedgerCloseValueSignature,
195    StellarValue,
196    StellarValueExt,
197    #[cfg(feature = "cap_0083")]
198    StellarValueProposedValue,
199    LedgerHeaderFlags,
200    LedgerHeaderExtensionV1,
201    LedgerHeaderExtensionV1Ext,
202    LedgerHeader,
203    LedgerHeaderExt,
204    LedgerUpgradeType,
205    ConfigUpgradeSetKey,
206    LedgerUpgrade,
207    ConfigUpgradeSet,
208    TxSetComponentType,
209    DependentTxCluster,
210    ParallelTxExecutionStage,
211    ParallelTxsComponent,
212    TxSetComponent,
213    TxSetComponentTxsMaybeDiscountedFee,
214    TransactionPhase,
215    TransactionSet,
216    TransactionSetV1,
217    GeneralizedTransactionSet,
218    TransactionResultPair,
219    TransactionResultSet,
220    TransactionHistoryEntry,
221    TransactionHistoryEntryExt,
222    TransactionHistoryResultEntry,
223    TransactionHistoryResultEntryExt,
224    LedgerHeaderHistoryEntry,
225    LedgerHeaderHistoryEntryExt,
226    LedgerScpMessages,
227    ScpHistoryEntryV0,
228    ScpHistoryEntry,
229    LedgerEntryChangeType,
230    LedgerEntryChange,
231    LedgerEntryChanges,
232    OperationMeta,
233    TransactionMetaV1,
234    TransactionMetaV2,
235    ContractEventType,
236    ContractEvent,
237    ContractEventBody,
238    ContractEventV0,
239    DiagnosticEvent,
240    SorobanTransactionMetaExtV1,
241    SorobanTransactionMetaExt,
242    SorobanTransactionMeta,
243    TransactionMetaV3,
244    OperationMetaV2,
245    SorobanTransactionMetaV2,
246    TransactionEventStage,
247    TransactionEvent,
248    TransactionMetaV4,
249    InvokeHostFunctionSuccessPreImage,
250    TransactionMeta,
251    TransactionResultMeta,
252    TransactionResultMetaV1,
253    UpgradeEntryMeta,
254    LedgerCloseMetaV0,
255    LedgerCloseMetaExtV1,
256    LedgerCloseMetaExt,
257    LedgerCloseMetaV1,
258    LedgerCloseMetaV2,
259    LedgerCloseMeta,
260    ErrorCode,
261    SError,
262    SendMore,
263    SendMoreExtended,
264    AuthCert,
265    Hello,
266    Auth,
267    IpAddrType,
268    PeerAddress,
269    PeerAddressIp,
270    MessageType,
271    DontHave,
272    SurveyMessageCommandType,
273    SurveyMessageResponseType,
274    TimeSlicedSurveyStartCollectingMessage,
275    SignedTimeSlicedSurveyStartCollectingMessage,
276    TimeSlicedSurveyStopCollectingMessage,
277    SignedTimeSlicedSurveyStopCollectingMessage,
278    SurveyRequestMessage,
279    TimeSlicedSurveyRequestMessage,
280    SignedTimeSlicedSurveyRequestMessage,
281    EncryptedBody,
282    SurveyResponseMessage,
283    TimeSlicedSurveyResponseMessage,
284    SignedTimeSlicedSurveyResponseMessage,
285    PeerStats,
286    TimeSlicedNodeData,
287    TimeSlicedPeerData,
288    TimeSlicedPeerDataList,
289    TopologyResponseBodyV2,
290    SurveyResponseBody,
291    TxAdvertVector,
292    FloodAdvert,
293    TxDemandVector,
294    FloodDemand,
295    StellarMessage,
296    AuthenticatedMessage,
297    AuthenticatedMessageV0,
298    LiquidityPoolParameters,
299    MuxedAccount,
300    MuxedAccountMed25519,
301    DecoratedSignature,
302    OperationType,
303    CreateAccountOp,
304    PaymentOp,
305    PathPaymentStrictReceiveOp,
306    PathPaymentStrictSendOp,
307    ManageSellOfferOp,
308    ManageBuyOfferOp,
309    CreatePassiveSellOfferOp,
310    SetOptionsOp,
311    ChangeTrustAsset,
312    ChangeTrustOp,
313    AllowTrustOp,
314    ManageDataOp,
315    BumpSequenceOp,
316    CreateClaimableBalanceOp,
317    ClaimClaimableBalanceOp,
318    BeginSponsoringFutureReservesOp,
319    RevokeSponsorshipType,
320    RevokeSponsorshipOp,
321    RevokeSponsorshipOpSigner,
322    ClawbackOp,
323    ClawbackClaimableBalanceOp,
324    SetTrustLineFlagsOp,
325    LiquidityPoolDepositOp,
326    LiquidityPoolWithdrawOp,
327    HostFunctionType,
328    ContractIdPreimageType,
329    ContractIdPreimage,
330    ContractIdPreimageFromAddress,
331    CreateContractArgs,
332    CreateContractArgsV2,
333    InvokeContractArgs,
334    HostFunction,
335    SorobanAuthorizedFunctionType,
336    SorobanAuthorizedFunction,
337    SorobanAuthorizedInvocation,
338    SorobanAddressCredentials,
339    SorobanDelegateSignature,
340    SorobanAddressCredentialsWithDelegates,
341    SorobanCredentialsType,
342    SorobanCredentials,
343    SorobanAuthorizationEntry,
344    SorobanAuthorizationEntries,
345    InvokeHostFunctionOp,
346    ExtendFootprintTtlOp,
347    RestoreFootprintOp,
348    Operation,
349    OperationBody,
350    HashIdPreimage,
351    HashIdPreimageOperationId,
352    HashIdPreimageRevokeId,
353    HashIdPreimageContractId,
354    HashIdPreimageSorobanAuthorization,
355    HashIdPreimageSorobanAuthorizationWithAddress,
356    MemoType,
357    Memo,
358    TimeBounds,
359    LedgerBounds,
360    PreconditionsV2,
361    PreconditionType,
362    Preconditions,
363    LedgerFootprint,
364    SorobanResources,
365    SorobanResourcesExtV0,
366    SorobanTransactionData,
367    SorobanTransactionDataExt,
368    TransactionV0,
369    TransactionV0Ext,
370    TransactionV0Envelope,
371    Transaction,
372    TransactionExt,
373    TransactionV1Envelope,
374    FeeBumpTransaction,
375    FeeBumpTransactionInnerTx,
376    FeeBumpTransactionExt,
377    FeeBumpTransactionEnvelope,
378    TransactionEnvelope,
379    TransactionSignaturePayload,
380    TransactionSignaturePayloadTaggedTransaction,
381    ClaimAtomType,
382    ClaimOfferAtomV0,
383    ClaimOfferAtom,
384    ClaimLiquidityAtom,
385    ClaimAtom,
386    CreateAccountResultCode,
387    CreateAccountResult,
388    PaymentResultCode,
389    PaymentResult,
390    PathPaymentStrictReceiveResultCode,
391    SimplePaymentResult,
392    PathPaymentStrictReceiveResult,
393    PathPaymentStrictReceiveResultSuccess,
394    PathPaymentStrictSendResultCode,
395    PathPaymentStrictSendResult,
396    PathPaymentStrictSendResultSuccess,
397    ManageSellOfferResultCode,
398    ManageOfferEffect,
399    ManageOfferSuccessResult,
400    ManageOfferSuccessResultOffer,
401    ManageSellOfferResult,
402    ManageBuyOfferResultCode,
403    ManageBuyOfferResult,
404    SetOptionsResultCode,
405    SetOptionsResult,
406    ChangeTrustResultCode,
407    ChangeTrustResult,
408    AllowTrustResultCode,
409    AllowTrustResult,
410    AccountMergeResultCode,
411    AccountMergeResult,
412    InflationResultCode,
413    InflationPayout,
414    InflationResult,
415    ManageDataResultCode,
416    ManageDataResult,
417    BumpSequenceResultCode,
418    BumpSequenceResult,
419    CreateClaimableBalanceResultCode,
420    CreateClaimableBalanceResult,
421    ClaimClaimableBalanceResultCode,
422    ClaimClaimableBalanceResult,
423    BeginSponsoringFutureReservesResultCode,
424    BeginSponsoringFutureReservesResult,
425    EndSponsoringFutureReservesResultCode,
426    EndSponsoringFutureReservesResult,
427    RevokeSponsorshipResultCode,
428    RevokeSponsorshipResult,
429    ClawbackResultCode,
430    ClawbackResult,
431    ClawbackClaimableBalanceResultCode,
432    ClawbackClaimableBalanceResult,
433    SetTrustLineFlagsResultCode,
434    SetTrustLineFlagsResult,
435    LiquidityPoolDepositResultCode,
436    LiquidityPoolDepositResult,
437    LiquidityPoolWithdrawResultCode,
438    LiquidityPoolWithdrawResult,
439    InvokeHostFunctionResultCode,
440    InvokeHostFunctionResult,
441    ExtendFootprintTtlResultCode,
442    ExtendFootprintTtlResult,
443    RestoreFootprintResultCode,
444    RestoreFootprintResult,
445    OperationResultCode,
446    OperationResult,
447    OperationResultTr,
448    TransactionResultCode,
449    InnerTransactionResult,
450    InnerTransactionResultResult,
451    InnerTransactionResultExt,
452    InnerTransactionResultPair,
453    TransactionResult,
454    TransactionResultResult,
455    TransactionResultExt,
456    Hash,
457    Uint256,
458    Uint32,
459    Int32,
460    Uint64,
461    Int64,
462    TimePoint,
463    Duration,
464    ExtensionPoint,
465    CryptoKeyType,
466    PublicKeyType,
467    SignerKeyType,
468    PublicKey,
469    SignerKey,
470    SignerKeyEd25519SignedPayload,
471    Signature,
472    SignatureHint,
473    NodeId,
474    AccountId,
475    ContractId,
476    Curve25519Secret,
477    Curve25519Public,
478    HmacSha256Key,
479    HmacSha256Mac,
480    ShortHashSeed,
481    BinaryFuseFilterType,
482    SerializedBinaryFuseFilter,
483    PoolId,
484    ClaimableBalanceIdType,
485    ClaimableBalanceId,
486    #[cfg(feature = "test_feature")]
487    TestNextType,
488}
489
490#[cfg(feature = "type_enum")]
491impl TypeVariant {
492    const _VARIANTS: &[TypeVariant] = &[
493        TypeVariant::Value,
494        TypeVariant::ScpBallot,
495        TypeVariant::ScpStatementType,
496        TypeVariant::ScpNomination,
497        TypeVariant::ScpStatement,
498        TypeVariant::ScpStatementPledges,
499        TypeVariant::ScpStatementPrepare,
500        TypeVariant::ScpStatementConfirm,
501        TypeVariant::ScpStatementExternalize,
502        TypeVariant::ScpEnvelope,
503        TypeVariant::ScpQuorumSet,
504        TypeVariant::EncodedLedgerKey,
505        TypeVariant::ConfigSettingContractExecutionLanesV0,
506        TypeVariant::ConfigSettingContractComputeV0,
507        TypeVariant::ConfigSettingContractParallelComputeV0,
508        TypeVariant::ConfigSettingContractLedgerCostV0,
509        TypeVariant::ConfigSettingContractLedgerCostExtV0,
510        TypeVariant::ConfigSettingContractHistoricalDataV0,
511        TypeVariant::ConfigSettingContractEventsV0,
512        TypeVariant::ConfigSettingContractBandwidthV0,
513        TypeVariant::ContractCostType,
514        TypeVariant::ContractCostParamEntry,
515        TypeVariant::StateArchivalSettings,
516        TypeVariant::EvictionIterator,
517        TypeVariant::ConfigSettingScpTiming,
518        TypeVariant::FrozenLedgerKeys,
519        TypeVariant::FrozenLedgerKeysDelta,
520        TypeVariant::FreezeBypassTxs,
521        TypeVariant::FreezeBypassTxsDelta,
522        TypeVariant::ContractCostParams,
523        TypeVariant::ConfigSettingId,
524        TypeVariant::ConfigSettingEntry,
525        TypeVariant::ScEnvMetaKind,
526        TypeVariant::ScEnvMetaEntry,
527        TypeVariant::ScEnvMetaEntryInterfaceVersion,
528        TypeVariant::ScMetaV0,
529        TypeVariant::ScMetaKind,
530        TypeVariant::ScMetaEntry,
531        TypeVariant::ScSpecType,
532        TypeVariant::ScSpecTypeOption,
533        TypeVariant::ScSpecTypeResult,
534        TypeVariant::ScSpecTypeVec,
535        TypeVariant::ScSpecTypeMap,
536        TypeVariant::ScSpecTypeTuple,
537        TypeVariant::ScSpecTypeBytesN,
538        TypeVariant::ScSpecTypeUdt,
539        TypeVariant::ScSpecTypeDef,
540        TypeVariant::ScSpecUdtStructFieldV0,
541        TypeVariant::ScSpecUdtStructV0,
542        TypeVariant::ScSpecUdtUnionCaseVoidV0,
543        TypeVariant::ScSpecUdtUnionCaseTupleV0,
544        TypeVariant::ScSpecUdtUnionCaseV0Kind,
545        TypeVariant::ScSpecUdtUnionCaseV0,
546        TypeVariant::ScSpecUdtUnionV0,
547        TypeVariant::ScSpecUdtEnumCaseV0,
548        TypeVariant::ScSpecUdtEnumV0,
549        TypeVariant::ScSpecUdtErrorEnumCaseV0,
550        TypeVariant::ScSpecUdtErrorEnumV0,
551        TypeVariant::ScSpecFunctionInputV0,
552        TypeVariant::ScSpecFunctionV0,
553        TypeVariant::ScSpecEventParamLocationV0,
554        TypeVariant::ScSpecEventParamV0,
555        TypeVariant::ScSpecEventDataFormat,
556        TypeVariant::ScSpecEventV0,
557        TypeVariant::ScSpecEntryKind,
558        TypeVariant::ScSpecEntry,
559        TypeVariant::ScValType,
560        TypeVariant::ScErrorType,
561        TypeVariant::ScErrorCode,
562        TypeVariant::ScError,
563        TypeVariant::UInt128Parts,
564        TypeVariant::Int128Parts,
565        TypeVariant::UInt256Parts,
566        TypeVariant::Int256Parts,
567        TypeVariant::ContractExecutableType,
568        TypeVariant::ContractExecutable,
569        TypeVariant::ScAddressType,
570        TypeVariant::MuxedEd25519Account,
571        TypeVariant::ScAddress,
572        TypeVariant::ScVec,
573        TypeVariant::ScMap,
574        TypeVariant::ScBytes,
575        TypeVariant::ScString,
576        TypeVariant::ScSymbol,
577        TypeVariant::ScNonceKey,
578        TypeVariant::ScContractInstance,
579        TypeVariant::ScVal,
580        TypeVariant::ScMapEntry,
581        TypeVariant::LedgerCloseMetaBatch,
582        TypeVariant::StoredTransactionSet,
583        TypeVariant::StoredDebugTransactionSet,
584        TypeVariant::PersistedScpStateV0,
585        TypeVariant::PersistedScpStateV1,
586        TypeVariant::PersistedScpState,
587        TypeVariant::Thresholds,
588        TypeVariant::String32,
589        TypeVariant::String64,
590        TypeVariant::SequenceNumber,
591        TypeVariant::DataValue,
592        TypeVariant::AssetCode4,
593        TypeVariant::AssetCode12,
594        TypeVariant::AssetType,
595        TypeVariant::AssetCode,
596        TypeVariant::AlphaNum4,
597        TypeVariant::AlphaNum12,
598        TypeVariant::Asset,
599        TypeVariant::Price,
600        TypeVariant::Liabilities,
601        TypeVariant::ThresholdIndexes,
602        TypeVariant::LedgerEntryType,
603        TypeVariant::Signer,
604        TypeVariant::AccountFlags,
605        TypeVariant::SponsorshipDescriptor,
606        TypeVariant::AccountEntryExtensionV3,
607        TypeVariant::AccountEntryExtensionV2,
608        TypeVariant::AccountEntryExtensionV2Ext,
609        TypeVariant::AccountEntryExtensionV1,
610        TypeVariant::AccountEntryExtensionV1Ext,
611        TypeVariant::AccountEntry,
612        TypeVariant::AccountEntryExt,
613        TypeVariant::TrustLineFlags,
614        TypeVariant::LiquidityPoolType,
615        TypeVariant::TrustLineAsset,
616        TypeVariant::TrustLineEntryExtensionV2,
617        TypeVariant::TrustLineEntryExtensionV2Ext,
618        TypeVariant::TrustLineEntry,
619        TypeVariant::TrustLineEntryExt,
620        TypeVariant::TrustLineEntryV1,
621        TypeVariant::TrustLineEntryV1Ext,
622        TypeVariant::OfferEntryFlags,
623        TypeVariant::OfferEntry,
624        TypeVariant::OfferEntryExt,
625        TypeVariant::DataEntry,
626        TypeVariant::DataEntryExt,
627        TypeVariant::ClaimPredicateType,
628        TypeVariant::ClaimPredicate,
629        TypeVariant::ClaimantType,
630        TypeVariant::Claimant,
631        TypeVariant::ClaimantV0,
632        TypeVariant::ClaimableBalanceFlags,
633        TypeVariant::ClaimableBalanceEntryExtensionV1,
634        TypeVariant::ClaimableBalanceEntryExtensionV1Ext,
635        TypeVariant::ClaimableBalanceEntry,
636        TypeVariant::ClaimableBalanceEntryExt,
637        TypeVariant::LiquidityPoolConstantProductParameters,
638        TypeVariant::LiquidityPoolEntry,
639        TypeVariant::LiquidityPoolEntryBody,
640        TypeVariant::LiquidityPoolEntryConstantProduct,
641        TypeVariant::ContractDataDurability,
642        TypeVariant::ContractDataEntry,
643        TypeVariant::ContractCodeCostInputs,
644        TypeVariant::ContractCodeEntry,
645        TypeVariant::ContractCodeEntryExt,
646        TypeVariant::ContractCodeEntryV1,
647        TypeVariant::TtlEntry,
648        TypeVariant::LedgerEntryExtensionV1,
649        TypeVariant::LedgerEntryExtensionV1Ext,
650        TypeVariant::LedgerEntry,
651        TypeVariant::LedgerEntryData,
652        TypeVariant::LedgerEntryExt,
653        TypeVariant::LedgerKey,
654        TypeVariant::LedgerKeyAccount,
655        TypeVariant::LedgerKeyTrustLine,
656        TypeVariant::LedgerKeyOffer,
657        TypeVariant::LedgerKeyData,
658        TypeVariant::LedgerKeyClaimableBalance,
659        TypeVariant::LedgerKeyLiquidityPool,
660        TypeVariant::LedgerKeyContractData,
661        TypeVariant::LedgerKeyContractCode,
662        TypeVariant::LedgerKeyConfigSetting,
663        TypeVariant::LedgerKeyTtl,
664        TypeVariant::EnvelopeType,
665        TypeVariant::BucketListType,
666        TypeVariant::BucketEntryType,
667        TypeVariant::HotArchiveBucketEntryType,
668        TypeVariant::BucketMetadata,
669        TypeVariant::BucketMetadataExt,
670        TypeVariant::BucketEntry,
671        TypeVariant::HotArchiveBucketEntry,
672        TypeVariant::UpgradeType,
673        TypeVariant::StellarValueType,
674        TypeVariant::LedgerCloseValueSignature,
675        TypeVariant::StellarValue,
676        TypeVariant::StellarValueExt,
677        #[cfg(feature = "cap_0083")]
678        TypeVariant::StellarValueProposedValue,
679        TypeVariant::LedgerHeaderFlags,
680        TypeVariant::LedgerHeaderExtensionV1,
681        TypeVariant::LedgerHeaderExtensionV1Ext,
682        TypeVariant::LedgerHeader,
683        TypeVariant::LedgerHeaderExt,
684        TypeVariant::LedgerUpgradeType,
685        TypeVariant::ConfigUpgradeSetKey,
686        TypeVariant::LedgerUpgrade,
687        TypeVariant::ConfigUpgradeSet,
688        TypeVariant::TxSetComponentType,
689        TypeVariant::DependentTxCluster,
690        TypeVariant::ParallelTxExecutionStage,
691        TypeVariant::ParallelTxsComponent,
692        TypeVariant::TxSetComponent,
693        TypeVariant::TxSetComponentTxsMaybeDiscountedFee,
694        TypeVariant::TransactionPhase,
695        TypeVariant::TransactionSet,
696        TypeVariant::TransactionSetV1,
697        TypeVariant::GeneralizedTransactionSet,
698        TypeVariant::TransactionResultPair,
699        TypeVariant::TransactionResultSet,
700        TypeVariant::TransactionHistoryEntry,
701        TypeVariant::TransactionHistoryEntryExt,
702        TypeVariant::TransactionHistoryResultEntry,
703        TypeVariant::TransactionHistoryResultEntryExt,
704        TypeVariant::LedgerHeaderHistoryEntry,
705        TypeVariant::LedgerHeaderHistoryEntryExt,
706        TypeVariant::LedgerScpMessages,
707        TypeVariant::ScpHistoryEntryV0,
708        TypeVariant::ScpHistoryEntry,
709        TypeVariant::LedgerEntryChangeType,
710        TypeVariant::LedgerEntryChange,
711        TypeVariant::LedgerEntryChanges,
712        TypeVariant::OperationMeta,
713        TypeVariant::TransactionMetaV1,
714        TypeVariant::TransactionMetaV2,
715        TypeVariant::ContractEventType,
716        TypeVariant::ContractEvent,
717        TypeVariant::ContractEventBody,
718        TypeVariant::ContractEventV0,
719        TypeVariant::DiagnosticEvent,
720        TypeVariant::SorobanTransactionMetaExtV1,
721        TypeVariant::SorobanTransactionMetaExt,
722        TypeVariant::SorobanTransactionMeta,
723        TypeVariant::TransactionMetaV3,
724        TypeVariant::OperationMetaV2,
725        TypeVariant::SorobanTransactionMetaV2,
726        TypeVariant::TransactionEventStage,
727        TypeVariant::TransactionEvent,
728        TypeVariant::TransactionMetaV4,
729        TypeVariant::InvokeHostFunctionSuccessPreImage,
730        TypeVariant::TransactionMeta,
731        TypeVariant::TransactionResultMeta,
732        TypeVariant::TransactionResultMetaV1,
733        TypeVariant::UpgradeEntryMeta,
734        TypeVariant::LedgerCloseMetaV0,
735        TypeVariant::LedgerCloseMetaExtV1,
736        TypeVariant::LedgerCloseMetaExt,
737        TypeVariant::LedgerCloseMetaV1,
738        TypeVariant::LedgerCloseMetaV2,
739        TypeVariant::LedgerCloseMeta,
740        TypeVariant::ErrorCode,
741        TypeVariant::SError,
742        TypeVariant::SendMore,
743        TypeVariant::SendMoreExtended,
744        TypeVariant::AuthCert,
745        TypeVariant::Hello,
746        TypeVariant::Auth,
747        TypeVariant::IpAddrType,
748        TypeVariant::PeerAddress,
749        TypeVariant::PeerAddressIp,
750        TypeVariant::MessageType,
751        TypeVariant::DontHave,
752        TypeVariant::SurveyMessageCommandType,
753        TypeVariant::SurveyMessageResponseType,
754        TypeVariant::TimeSlicedSurveyStartCollectingMessage,
755        TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage,
756        TypeVariant::TimeSlicedSurveyStopCollectingMessage,
757        TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage,
758        TypeVariant::SurveyRequestMessage,
759        TypeVariant::TimeSlicedSurveyRequestMessage,
760        TypeVariant::SignedTimeSlicedSurveyRequestMessage,
761        TypeVariant::EncryptedBody,
762        TypeVariant::SurveyResponseMessage,
763        TypeVariant::TimeSlicedSurveyResponseMessage,
764        TypeVariant::SignedTimeSlicedSurveyResponseMessage,
765        TypeVariant::PeerStats,
766        TypeVariant::TimeSlicedNodeData,
767        TypeVariant::TimeSlicedPeerData,
768        TypeVariant::TimeSlicedPeerDataList,
769        TypeVariant::TopologyResponseBodyV2,
770        TypeVariant::SurveyResponseBody,
771        TypeVariant::TxAdvertVector,
772        TypeVariant::FloodAdvert,
773        TypeVariant::TxDemandVector,
774        TypeVariant::FloodDemand,
775        TypeVariant::StellarMessage,
776        TypeVariant::AuthenticatedMessage,
777        TypeVariant::AuthenticatedMessageV0,
778        TypeVariant::LiquidityPoolParameters,
779        TypeVariant::MuxedAccount,
780        TypeVariant::MuxedAccountMed25519,
781        TypeVariant::DecoratedSignature,
782        TypeVariant::OperationType,
783        TypeVariant::CreateAccountOp,
784        TypeVariant::PaymentOp,
785        TypeVariant::PathPaymentStrictReceiveOp,
786        TypeVariant::PathPaymentStrictSendOp,
787        TypeVariant::ManageSellOfferOp,
788        TypeVariant::ManageBuyOfferOp,
789        TypeVariant::CreatePassiveSellOfferOp,
790        TypeVariant::SetOptionsOp,
791        TypeVariant::ChangeTrustAsset,
792        TypeVariant::ChangeTrustOp,
793        TypeVariant::AllowTrustOp,
794        TypeVariant::ManageDataOp,
795        TypeVariant::BumpSequenceOp,
796        TypeVariant::CreateClaimableBalanceOp,
797        TypeVariant::ClaimClaimableBalanceOp,
798        TypeVariant::BeginSponsoringFutureReservesOp,
799        TypeVariant::RevokeSponsorshipType,
800        TypeVariant::RevokeSponsorshipOp,
801        TypeVariant::RevokeSponsorshipOpSigner,
802        TypeVariant::ClawbackOp,
803        TypeVariant::ClawbackClaimableBalanceOp,
804        TypeVariant::SetTrustLineFlagsOp,
805        TypeVariant::LiquidityPoolDepositOp,
806        TypeVariant::LiquidityPoolWithdrawOp,
807        TypeVariant::HostFunctionType,
808        TypeVariant::ContractIdPreimageType,
809        TypeVariant::ContractIdPreimage,
810        TypeVariant::ContractIdPreimageFromAddress,
811        TypeVariant::CreateContractArgs,
812        TypeVariant::CreateContractArgsV2,
813        TypeVariant::InvokeContractArgs,
814        TypeVariant::HostFunction,
815        TypeVariant::SorobanAuthorizedFunctionType,
816        TypeVariant::SorobanAuthorizedFunction,
817        TypeVariant::SorobanAuthorizedInvocation,
818        TypeVariant::SorobanAddressCredentials,
819        TypeVariant::SorobanDelegateSignature,
820        TypeVariant::SorobanAddressCredentialsWithDelegates,
821        TypeVariant::SorobanCredentialsType,
822        TypeVariant::SorobanCredentials,
823        TypeVariant::SorobanAuthorizationEntry,
824        TypeVariant::SorobanAuthorizationEntries,
825        TypeVariant::InvokeHostFunctionOp,
826        TypeVariant::ExtendFootprintTtlOp,
827        TypeVariant::RestoreFootprintOp,
828        TypeVariant::Operation,
829        TypeVariant::OperationBody,
830        TypeVariant::HashIdPreimage,
831        TypeVariant::HashIdPreimageOperationId,
832        TypeVariant::HashIdPreimageRevokeId,
833        TypeVariant::HashIdPreimageContractId,
834        TypeVariant::HashIdPreimageSorobanAuthorization,
835        TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress,
836        TypeVariant::MemoType,
837        TypeVariant::Memo,
838        TypeVariant::TimeBounds,
839        TypeVariant::LedgerBounds,
840        TypeVariant::PreconditionsV2,
841        TypeVariant::PreconditionType,
842        TypeVariant::Preconditions,
843        TypeVariant::LedgerFootprint,
844        TypeVariant::SorobanResources,
845        TypeVariant::SorobanResourcesExtV0,
846        TypeVariant::SorobanTransactionData,
847        TypeVariant::SorobanTransactionDataExt,
848        TypeVariant::TransactionV0,
849        TypeVariant::TransactionV0Ext,
850        TypeVariant::TransactionV0Envelope,
851        TypeVariant::Transaction,
852        TypeVariant::TransactionExt,
853        TypeVariant::TransactionV1Envelope,
854        TypeVariant::FeeBumpTransaction,
855        TypeVariant::FeeBumpTransactionInnerTx,
856        TypeVariant::FeeBumpTransactionExt,
857        TypeVariant::FeeBumpTransactionEnvelope,
858        TypeVariant::TransactionEnvelope,
859        TypeVariant::TransactionSignaturePayload,
860        TypeVariant::TransactionSignaturePayloadTaggedTransaction,
861        TypeVariant::ClaimAtomType,
862        TypeVariant::ClaimOfferAtomV0,
863        TypeVariant::ClaimOfferAtom,
864        TypeVariant::ClaimLiquidityAtom,
865        TypeVariant::ClaimAtom,
866        TypeVariant::CreateAccountResultCode,
867        TypeVariant::CreateAccountResult,
868        TypeVariant::PaymentResultCode,
869        TypeVariant::PaymentResult,
870        TypeVariant::PathPaymentStrictReceiveResultCode,
871        TypeVariant::SimplePaymentResult,
872        TypeVariant::PathPaymentStrictReceiveResult,
873        TypeVariant::PathPaymentStrictReceiveResultSuccess,
874        TypeVariant::PathPaymentStrictSendResultCode,
875        TypeVariant::PathPaymentStrictSendResult,
876        TypeVariant::PathPaymentStrictSendResultSuccess,
877        TypeVariant::ManageSellOfferResultCode,
878        TypeVariant::ManageOfferEffect,
879        TypeVariant::ManageOfferSuccessResult,
880        TypeVariant::ManageOfferSuccessResultOffer,
881        TypeVariant::ManageSellOfferResult,
882        TypeVariant::ManageBuyOfferResultCode,
883        TypeVariant::ManageBuyOfferResult,
884        TypeVariant::SetOptionsResultCode,
885        TypeVariant::SetOptionsResult,
886        TypeVariant::ChangeTrustResultCode,
887        TypeVariant::ChangeTrustResult,
888        TypeVariant::AllowTrustResultCode,
889        TypeVariant::AllowTrustResult,
890        TypeVariant::AccountMergeResultCode,
891        TypeVariant::AccountMergeResult,
892        TypeVariant::InflationResultCode,
893        TypeVariant::InflationPayout,
894        TypeVariant::InflationResult,
895        TypeVariant::ManageDataResultCode,
896        TypeVariant::ManageDataResult,
897        TypeVariant::BumpSequenceResultCode,
898        TypeVariant::BumpSequenceResult,
899        TypeVariant::CreateClaimableBalanceResultCode,
900        TypeVariant::CreateClaimableBalanceResult,
901        TypeVariant::ClaimClaimableBalanceResultCode,
902        TypeVariant::ClaimClaimableBalanceResult,
903        TypeVariant::BeginSponsoringFutureReservesResultCode,
904        TypeVariant::BeginSponsoringFutureReservesResult,
905        TypeVariant::EndSponsoringFutureReservesResultCode,
906        TypeVariant::EndSponsoringFutureReservesResult,
907        TypeVariant::RevokeSponsorshipResultCode,
908        TypeVariant::RevokeSponsorshipResult,
909        TypeVariant::ClawbackResultCode,
910        TypeVariant::ClawbackResult,
911        TypeVariant::ClawbackClaimableBalanceResultCode,
912        TypeVariant::ClawbackClaimableBalanceResult,
913        TypeVariant::SetTrustLineFlagsResultCode,
914        TypeVariant::SetTrustLineFlagsResult,
915        TypeVariant::LiquidityPoolDepositResultCode,
916        TypeVariant::LiquidityPoolDepositResult,
917        TypeVariant::LiquidityPoolWithdrawResultCode,
918        TypeVariant::LiquidityPoolWithdrawResult,
919        TypeVariant::InvokeHostFunctionResultCode,
920        TypeVariant::InvokeHostFunctionResult,
921        TypeVariant::ExtendFootprintTtlResultCode,
922        TypeVariant::ExtendFootprintTtlResult,
923        TypeVariant::RestoreFootprintResultCode,
924        TypeVariant::RestoreFootprintResult,
925        TypeVariant::OperationResultCode,
926        TypeVariant::OperationResult,
927        TypeVariant::OperationResultTr,
928        TypeVariant::TransactionResultCode,
929        TypeVariant::InnerTransactionResult,
930        TypeVariant::InnerTransactionResultResult,
931        TypeVariant::InnerTransactionResultExt,
932        TypeVariant::InnerTransactionResultPair,
933        TypeVariant::TransactionResult,
934        TypeVariant::TransactionResultResult,
935        TypeVariant::TransactionResultExt,
936        TypeVariant::Hash,
937        TypeVariant::Uint256,
938        TypeVariant::Uint32,
939        TypeVariant::Int32,
940        TypeVariant::Uint64,
941        TypeVariant::Int64,
942        TypeVariant::TimePoint,
943        TypeVariant::Duration,
944        TypeVariant::ExtensionPoint,
945        TypeVariant::CryptoKeyType,
946        TypeVariant::PublicKeyType,
947        TypeVariant::SignerKeyType,
948        TypeVariant::PublicKey,
949        TypeVariant::SignerKey,
950        TypeVariant::SignerKeyEd25519SignedPayload,
951        TypeVariant::Signature,
952        TypeVariant::SignatureHint,
953        TypeVariant::NodeId,
954        TypeVariant::AccountId,
955        TypeVariant::ContractId,
956        TypeVariant::Curve25519Secret,
957        TypeVariant::Curve25519Public,
958        TypeVariant::HmacSha256Key,
959        TypeVariant::HmacSha256Mac,
960        TypeVariant::ShortHashSeed,
961        TypeVariant::BinaryFuseFilterType,
962        TypeVariant::SerializedBinaryFuseFilter,
963        TypeVariant::PoolId,
964        TypeVariant::ClaimableBalanceIdType,
965        TypeVariant::ClaimableBalanceId,
966        #[cfg(feature = "test_feature")]
967        TypeVariant::TestNextType,
968    ];
969    pub const VARIANTS: [TypeVariant; Self::_VARIANTS.len()] = {
970        let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
971        let mut i = 1;
972        while i < Self::_VARIANTS.len() {
973            arr[i] = Self::_VARIANTS[i];
974            i += 1;
975        }
976        arr
977    };
978    const _VARIANTS_STR: &[&str] = &[
979        "Value",
980        "ScpBallot",
981        "ScpStatementType",
982        "ScpNomination",
983        "ScpStatement",
984        "ScpStatementPledges",
985        "ScpStatementPrepare",
986        "ScpStatementConfirm",
987        "ScpStatementExternalize",
988        "ScpEnvelope",
989        "ScpQuorumSet",
990        "EncodedLedgerKey",
991        "ConfigSettingContractExecutionLanesV0",
992        "ConfigSettingContractComputeV0",
993        "ConfigSettingContractParallelComputeV0",
994        "ConfigSettingContractLedgerCostV0",
995        "ConfigSettingContractLedgerCostExtV0",
996        "ConfigSettingContractHistoricalDataV0",
997        "ConfigSettingContractEventsV0",
998        "ConfigSettingContractBandwidthV0",
999        "ContractCostType",
1000        "ContractCostParamEntry",
1001        "StateArchivalSettings",
1002        "EvictionIterator",
1003        "ConfigSettingScpTiming",
1004        "FrozenLedgerKeys",
1005        "FrozenLedgerKeysDelta",
1006        "FreezeBypassTxs",
1007        "FreezeBypassTxsDelta",
1008        "ContractCostParams",
1009        "ConfigSettingId",
1010        "ConfigSettingEntry",
1011        "ScEnvMetaKind",
1012        "ScEnvMetaEntry",
1013        "ScEnvMetaEntryInterfaceVersion",
1014        "ScMetaV0",
1015        "ScMetaKind",
1016        "ScMetaEntry",
1017        "ScSpecType",
1018        "ScSpecTypeOption",
1019        "ScSpecTypeResult",
1020        "ScSpecTypeVec",
1021        "ScSpecTypeMap",
1022        "ScSpecTypeTuple",
1023        "ScSpecTypeBytesN",
1024        "ScSpecTypeUdt",
1025        "ScSpecTypeDef",
1026        "ScSpecUdtStructFieldV0",
1027        "ScSpecUdtStructV0",
1028        "ScSpecUdtUnionCaseVoidV0",
1029        "ScSpecUdtUnionCaseTupleV0",
1030        "ScSpecUdtUnionCaseV0Kind",
1031        "ScSpecUdtUnionCaseV0",
1032        "ScSpecUdtUnionV0",
1033        "ScSpecUdtEnumCaseV0",
1034        "ScSpecUdtEnumV0",
1035        "ScSpecUdtErrorEnumCaseV0",
1036        "ScSpecUdtErrorEnumV0",
1037        "ScSpecFunctionInputV0",
1038        "ScSpecFunctionV0",
1039        "ScSpecEventParamLocationV0",
1040        "ScSpecEventParamV0",
1041        "ScSpecEventDataFormat",
1042        "ScSpecEventV0",
1043        "ScSpecEntryKind",
1044        "ScSpecEntry",
1045        "ScValType",
1046        "ScErrorType",
1047        "ScErrorCode",
1048        "ScError",
1049        "UInt128Parts",
1050        "Int128Parts",
1051        "UInt256Parts",
1052        "Int256Parts",
1053        "ContractExecutableType",
1054        "ContractExecutable",
1055        "ScAddressType",
1056        "MuxedEd25519Account",
1057        "ScAddress",
1058        "ScVec",
1059        "ScMap",
1060        "ScBytes",
1061        "ScString",
1062        "ScSymbol",
1063        "ScNonceKey",
1064        "ScContractInstance",
1065        "ScVal",
1066        "ScMapEntry",
1067        "LedgerCloseMetaBatch",
1068        "StoredTransactionSet",
1069        "StoredDebugTransactionSet",
1070        "PersistedScpStateV0",
1071        "PersistedScpStateV1",
1072        "PersistedScpState",
1073        "Thresholds",
1074        "String32",
1075        "String64",
1076        "SequenceNumber",
1077        "DataValue",
1078        "AssetCode4",
1079        "AssetCode12",
1080        "AssetType",
1081        "AssetCode",
1082        "AlphaNum4",
1083        "AlphaNum12",
1084        "Asset",
1085        "Price",
1086        "Liabilities",
1087        "ThresholdIndexes",
1088        "LedgerEntryType",
1089        "Signer",
1090        "AccountFlags",
1091        "SponsorshipDescriptor",
1092        "AccountEntryExtensionV3",
1093        "AccountEntryExtensionV2",
1094        "AccountEntryExtensionV2Ext",
1095        "AccountEntryExtensionV1",
1096        "AccountEntryExtensionV1Ext",
1097        "AccountEntry",
1098        "AccountEntryExt",
1099        "TrustLineFlags",
1100        "LiquidityPoolType",
1101        "TrustLineAsset",
1102        "TrustLineEntryExtensionV2",
1103        "TrustLineEntryExtensionV2Ext",
1104        "TrustLineEntry",
1105        "TrustLineEntryExt",
1106        "TrustLineEntryV1",
1107        "TrustLineEntryV1Ext",
1108        "OfferEntryFlags",
1109        "OfferEntry",
1110        "OfferEntryExt",
1111        "DataEntry",
1112        "DataEntryExt",
1113        "ClaimPredicateType",
1114        "ClaimPredicate",
1115        "ClaimantType",
1116        "Claimant",
1117        "ClaimantV0",
1118        "ClaimableBalanceFlags",
1119        "ClaimableBalanceEntryExtensionV1",
1120        "ClaimableBalanceEntryExtensionV1Ext",
1121        "ClaimableBalanceEntry",
1122        "ClaimableBalanceEntryExt",
1123        "LiquidityPoolConstantProductParameters",
1124        "LiquidityPoolEntry",
1125        "LiquidityPoolEntryBody",
1126        "LiquidityPoolEntryConstantProduct",
1127        "ContractDataDurability",
1128        "ContractDataEntry",
1129        "ContractCodeCostInputs",
1130        "ContractCodeEntry",
1131        "ContractCodeEntryExt",
1132        "ContractCodeEntryV1",
1133        "TtlEntry",
1134        "LedgerEntryExtensionV1",
1135        "LedgerEntryExtensionV1Ext",
1136        "LedgerEntry",
1137        "LedgerEntryData",
1138        "LedgerEntryExt",
1139        "LedgerKey",
1140        "LedgerKeyAccount",
1141        "LedgerKeyTrustLine",
1142        "LedgerKeyOffer",
1143        "LedgerKeyData",
1144        "LedgerKeyClaimableBalance",
1145        "LedgerKeyLiquidityPool",
1146        "LedgerKeyContractData",
1147        "LedgerKeyContractCode",
1148        "LedgerKeyConfigSetting",
1149        "LedgerKeyTtl",
1150        "EnvelopeType",
1151        "BucketListType",
1152        "BucketEntryType",
1153        "HotArchiveBucketEntryType",
1154        "BucketMetadata",
1155        "BucketMetadataExt",
1156        "BucketEntry",
1157        "HotArchiveBucketEntry",
1158        "UpgradeType",
1159        "StellarValueType",
1160        "LedgerCloseValueSignature",
1161        "StellarValue",
1162        "StellarValueExt",
1163        #[cfg(feature = "cap_0083")]
1164        "StellarValueProposedValue",
1165        "LedgerHeaderFlags",
1166        "LedgerHeaderExtensionV1",
1167        "LedgerHeaderExtensionV1Ext",
1168        "LedgerHeader",
1169        "LedgerHeaderExt",
1170        "LedgerUpgradeType",
1171        "ConfigUpgradeSetKey",
1172        "LedgerUpgrade",
1173        "ConfigUpgradeSet",
1174        "TxSetComponentType",
1175        "DependentTxCluster",
1176        "ParallelTxExecutionStage",
1177        "ParallelTxsComponent",
1178        "TxSetComponent",
1179        "TxSetComponentTxsMaybeDiscountedFee",
1180        "TransactionPhase",
1181        "TransactionSet",
1182        "TransactionSetV1",
1183        "GeneralizedTransactionSet",
1184        "TransactionResultPair",
1185        "TransactionResultSet",
1186        "TransactionHistoryEntry",
1187        "TransactionHistoryEntryExt",
1188        "TransactionHistoryResultEntry",
1189        "TransactionHistoryResultEntryExt",
1190        "LedgerHeaderHistoryEntry",
1191        "LedgerHeaderHistoryEntryExt",
1192        "LedgerScpMessages",
1193        "ScpHistoryEntryV0",
1194        "ScpHistoryEntry",
1195        "LedgerEntryChangeType",
1196        "LedgerEntryChange",
1197        "LedgerEntryChanges",
1198        "OperationMeta",
1199        "TransactionMetaV1",
1200        "TransactionMetaV2",
1201        "ContractEventType",
1202        "ContractEvent",
1203        "ContractEventBody",
1204        "ContractEventV0",
1205        "DiagnosticEvent",
1206        "SorobanTransactionMetaExtV1",
1207        "SorobanTransactionMetaExt",
1208        "SorobanTransactionMeta",
1209        "TransactionMetaV3",
1210        "OperationMetaV2",
1211        "SorobanTransactionMetaV2",
1212        "TransactionEventStage",
1213        "TransactionEvent",
1214        "TransactionMetaV4",
1215        "InvokeHostFunctionSuccessPreImage",
1216        "TransactionMeta",
1217        "TransactionResultMeta",
1218        "TransactionResultMetaV1",
1219        "UpgradeEntryMeta",
1220        "LedgerCloseMetaV0",
1221        "LedgerCloseMetaExtV1",
1222        "LedgerCloseMetaExt",
1223        "LedgerCloseMetaV1",
1224        "LedgerCloseMetaV2",
1225        "LedgerCloseMeta",
1226        "ErrorCode",
1227        "SError",
1228        "SendMore",
1229        "SendMoreExtended",
1230        "AuthCert",
1231        "Hello",
1232        "Auth",
1233        "IpAddrType",
1234        "PeerAddress",
1235        "PeerAddressIp",
1236        "MessageType",
1237        "DontHave",
1238        "SurveyMessageCommandType",
1239        "SurveyMessageResponseType",
1240        "TimeSlicedSurveyStartCollectingMessage",
1241        "SignedTimeSlicedSurveyStartCollectingMessage",
1242        "TimeSlicedSurveyStopCollectingMessage",
1243        "SignedTimeSlicedSurveyStopCollectingMessage",
1244        "SurveyRequestMessage",
1245        "TimeSlicedSurveyRequestMessage",
1246        "SignedTimeSlicedSurveyRequestMessage",
1247        "EncryptedBody",
1248        "SurveyResponseMessage",
1249        "TimeSlicedSurveyResponseMessage",
1250        "SignedTimeSlicedSurveyResponseMessage",
1251        "PeerStats",
1252        "TimeSlicedNodeData",
1253        "TimeSlicedPeerData",
1254        "TimeSlicedPeerDataList",
1255        "TopologyResponseBodyV2",
1256        "SurveyResponseBody",
1257        "TxAdvertVector",
1258        "FloodAdvert",
1259        "TxDemandVector",
1260        "FloodDemand",
1261        "StellarMessage",
1262        "AuthenticatedMessage",
1263        "AuthenticatedMessageV0",
1264        "LiquidityPoolParameters",
1265        "MuxedAccount",
1266        "MuxedAccountMed25519",
1267        "DecoratedSignature",
1268        "OperationType",
1269        "CreateAccountOp",
1270        "PaymentOp",
1271        "PathPaymentStrictReceiveOp",
1272        "PathPaymentStrictSendOp",
1273        "ManageSellOfferOp",
1274        "ManageBuyOfferOp",
1275        "CreatePassiveSellOfferOp",
1276        "SetOptionsOp",
1277        "ChangeTrustAsset",
1278        "ChangeTrustOp",
1279        "AllowTrustOp",
1280        "ManageDataOp",
1281        "BumpSequenceOp",
1282        "CreateClaimableBalanceOp",
1283        "ClaimClaimableBalanceOp",
1284        "BeginSponsoringFutureReservesOp",
1285        "RevokeSponsorshipType",
1286        "RevokeSponsorshipOp",
1287        "RevokeSponsorshipOpSigner",
1288        "ClawbackOp",
1289        "ClawbackClaimableBalanceOp",
1290        "SetTrustLineFlagsOp",
1291        "LiquidityPoolDepositOp",
1292        "LiquidityPoolWithdrawOp",
1293        "HostFunctionType",
1294        "ContractIdPreimageType",
1295        "ContractIdPreimage",
1296        "ContractIdPreimageFromAddress",
1297        "CreateContractArgs",
1298        "CreateContractArgsV2",
1299        "InvokeContractArgs",
1300        "HostFunction",
1301        "SorobanAuthorizedFunctionType",
1302        "SorobanAuthorizedFunction",
1303        "SorobanAuthorizedInvocation",
1304        "SorobanAddressCredentials",
1305        "SorobanDelegateSignature",
1306        "SorobanAddressCredentialsWithDelegates",
1307        "SorobanCredentialsType",
1308        "SorobanCredentials",
1309        "SorobanAuthorizationEntry",
1310        "SorobanAuthorizationEntries",
1311        "InvokeHostFunctionOp",
1312        "ExtendFootprintTtlOp",
1313        "RestoreFootprintOp",
1314        "Operation",
1315        "OperationBody",
1316        "HashIdPreimage",
1317        "HashIdPreimageOperationId",
1318        "HashIdPreimageRevokeId",
1319        "HashIdPreimageContractId",
1320        "HashIdPreimageSorobanAuthorization",
1321        "HashIdPreimageSorobanAuthorizationWithAddress",
1322        "MemoType",
1323        "Memo",
1324        "TimeBounds",
1325        "LedgerBounds",
1326        "PreconditionsV2",
1327        "PreconditionType",
1328        "Preconditions",
1329        "LedgerFootprint",
1330        "SorobanResources",
1331        "SorobanResourcesExtV0",
1332        "SorobanTransactionData",
1333        "SorobanTransactionDataExt",
1334        "TransactionV0",
1335        "TransactionV0Ext",
1336        "TransactionV0Envelope",
1337        "Transaction",
1338        "TransactionExt",
1339        "TransactionV1Envelope",
1340        "FeeBumpTransaction",
1341        "FeeBumpTransactionInnerTx",
1342        "FeeBumpTransactionExt",
1343        "FeeBumpTransactionEnvelope",
1344        "TransactionEnvelope",
1345        "TransactionSignaturePayload",
1346        "TransactionSignaturePayloadTaggedTransaction",
1347        "ClaimAtomType",
1348        "ClaimOfferAtomV0",
1349        "ClaimOfferAtom",
1350        "ClaimLiquidityAtom",
1351        "ClaimAtom",
1352        "CreateAccountResultCode",
1353        "CreateAccountResult",
1354        "PaymentResultCode",
1355        "PaymentResult",
1356        "PathPaymentStrictReceiveResultCode",
1357        "SimplePaymentResult",
1358        "PathPaymentStrictReceiveResult",
1359        "PathPaymentStrictReceiveResultSuccess",
1360        "PathPaymentStrictSendResultCode",
1361        "PathPaymentStrictSendResult",
1362        "PathPaymentStrictSendResultSuccess",
1363        "ManageSellOfferResultCode",
1364        "ManageOfferEffect",
1365        "ManageOfferSuccessResult",
1366        "ManageOfferSuccessResultOffer",
1367        "ManageSellOfferResult",
1368        "ManageBuyOfferResultCode",
1369        "ManageBuyOfferResult",
1370        "SetOptionsResultCode",
1371        "SetOptionsResult",
1372        "ChangeTrustResultCode",
1373        "ChangeTrustResult",
1374        "AllowTrustResultCode",
1375        "AllowTrustResult",
1376        "AccountMergeResultCode",
1377        "AccountMergeResult",
1378        "InflationResultCode",
1379        "InflationPayout",
1380        "InflationResult",
1381        "ManageDataResultCode",
1382        "ManageDataResult",
1383        "BumpSequenceResultCode",
1384        "BumpSequenceResult",
1385        "CreateClaimableBalanceResultCode",
1386        "CreateClaimableBalanceResult",
1387        "ClaimClaimableBalanceResultCode",
1388        "ClaimClaimableBalanceResult",
1389        "BeginSponsoringFutureReservesResultCode",
1390        "BeginSponsoringFutureReservesResult",
1391        "EndSponsoringFutureReservesResultCode",
1392        "EndSponsoringFutureReservesResult",
1393        "RevokeSponsorshipResultCode",
1394        "RevokeSponsorshipResult",
1395        "ClawbackResultCode",
1396        "ClawbackResult",
1397        "ClawbackClaimableBalanceResultCode",
1398        "ClawbackClaimableBalanceResult",
1399        "SetTrustLineFlagsResultCode",
1400        "SetTrustLineFlagsResult",
1401        "LiquidityPoolDepositResultCode",
1402        "LiquidityPoolDepositResult",
1403        "LiquidityPoolWithdrawResultCode",
1404        "LiquidityPoolWithdrawResult",
1405        "InvokeHostFunctionResultCode",
1406        "InvokeHostFunctionResult",
1407        "ExtendFootprintTtlResultCode",
1408        "ExtendFootprintTtlResult",
1409        "RestoreFootprintResultCode",
1410        "RestoreFootprintResult",
1411        "OperationResultCode",
1412        "OperationResult",
1413        "OperationResultTr",
1414        "TransactionResultCode",
1415        "InnerTransactionResult",
1416        "InnerTransactionResultResult",
1417        "InnerTransactionResultExt",
1418        "InnerTransactionResultPair",
1419        "TransactionResult",
1420        "TransactionResultResult",
1421        "TransactionResultExt",
1422        "Hash",
1423        "Uint256",
1424        "Uint32",
1425        "Int32",
1426        "Uint64",
1427        "Int64",
1428        "TimePoint",
1429        "Duration",
1430        "ExtensionPoint",
1431        "CryptoKeyType",
1432        "PublicKeyType",
1433        "SignerKeyType",
1434        "PublicKey",
1435        "SignerKey",
1436        "SignerKeyEd25519SignedPayload",
1437        "Signature",
1438        "SignatureHint",
1439        "NodeId",
1440        "AccountId",
1441        "ContractId",
1442        "Curve25519Secret",
1443        "Curve25519Public",
1444        "HmacSha256Key",
1445        "HmacSha256Mac",
1446        "ShortHashSeed",
1447        "BinaryFuseFilterType",
1448        "SerializedBinaryFuseFilter",
1449        "PoolId",
1450        "ClaimableBalanceIdType",
1451        "ClaimableBalanceId",
1452        #[cfg(feature = "test_feature")]
1453        "TestNextType",
1454    ];
1455    pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
1456        let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
1457        let mut i = 1;
1458        while i < Self::_VARIANTS_STR.len() {
1459            arr[i] = Self::_VARIANTS_STR[i];
1460            i += 1;
1461        }
1462        arr
1463    };
1464
1465    #[must_use]
1466    #[allow(clippy::too_many_lines)]
1467    pub const fn name(&self) -> &'static str {
1468        match self {
1469            Self::Value => "Value",
1470            Self::ScpBallot => "ScpBallot",
1471            Self::ScpStatementType => "ScpStatementType",
1472            Self::ScpNomination => "ScpNomination",
1473            Self::ScpStatement => "ScpStatement",
1474            Self::ScpStatementPledges => "ScpStatementPledges",
1475            Self::ScpStatementPrepare => "ScpStatementPrepare",
1476            Self::ScpStatementConfirm => "ScpStatementConfirm",
1477            Self::ScpStatementExternalize => "ScpStatementExternalize",
1478            Self::ScpEnvelope => "ScpEnvelope",
1479            Self::ScpQuorumSet => "ScpQuorumSet",
1480            Self::EncodedLedgerKey => "EncodedLedgerKey",
1481            Self::ConfigSettingContractExecutionLanesV0 => "ConfigSettingContractExecutionLanesV0",
1482            Self::ConfigSettingContractComputeV0 => "ConfigSettingContractComputeV0",
1483            Self::ConfigSettingContractParallelComputeV0 => {
1484                "ConfigSettingContractParallelComputeV0"
1485            }
1486            Self::ConfigSettingContractLedgerCostV0 => "ConfigSettingContractLedgerCostV0",
1487            Self::ConfigSettingContractLedgerCostExtV0 => "ConfigSettingContractLedgerCostExtV0",
1488            Self::ConfigSettingContractHistoricalDataV0 => "ConfigSettingContractHistoricalDataV0",
1489            Self::ConfigSettingContractEventsV0 => "ConfigSettingContractEventsV0",
1490            Self::ConfigSettingContractBandwidthV0 => "ConfigSettingContractBandwidthV0",
1491            Self::ContractCostType => "ContractCostType",
1492            Self::ContractCostParamEntry => "ContractCostParamEntry",
1493            Self::StateArchivalSettings => "StateArchivalSettings",
1494            Self::EvictionIterator => "EvictionIterator",
1495            Self::ConfigSettingScpTiming => "ConfigSettingScpTiming",
1496            Self::FrozenLedgerKeys => "FrozenLedgerKeys",
1497            Self::FrozenLedgerKeysDelta => "FrozenLedgerKeysDelta",
1498            Self::FreezeBypassTxs => "FreezeBypassTxs",
1499            Self::FreezeBypassTxsDelta => "FreezeBypassTxsDelta",
1500            Self::ContractCostParams => "ContractCostParams",
1501            Self::ConfigSettingId => "ConfigSettingId",
1502            Self::ConfigSettingEntry => "ConfigSettingEntry",
1503            Self::ScEnvMetaKind => "ScEnvMetaKind",
1504            Self::ScEnvMetaEntry => "ScEnvMetaEntry",
1505            Self::ScEnvMetaEntryInterfaceVersion => "ScEnvMetaEntryInterfaceVersion",
1506            Self::ScMetaV0 => "ScMetaV0",
1507            Self::ScMetaKind => "ScMetaKind",
1508            Self::ScMetaEntry => "ScMetaEntry",
1509            Self::ScSpecType => "ScSpecType",
1510            Self::ScSpecTypeOption => "ScSpecTypeOption",
1511            Self::ScSpecTypeResult => "ScSpecTypeResult",
1512            Self::ScSpecTypeVec => "ScSpecTypeVec",
1513            Self::ScSpecTypeMap => "ScSpecTypeMap",
1514            Self::ScSpecTypeTuple => "ScSpecTypeTuple",
1515            Self::ScSpecTypeBytesN => "ScSpecTypeBytesN",
1516            Self::ScSpecTypeUdt => "ScSpecTypeUdt",
1517            Self::ScSpecTypeDef => "ScSpecTypeDef",
1518            Self::ScSpecUdtStructFieldV0 => "ScSpecUdtStructFieldV0",
1519            Self::ScSpecUdtStructV0 => "ScSpecUdtStructV0",
1520            Self::ScSpecUdtUnionCaseVoidV0 => "ScSpecUdtUnionCaseVoidV0",
1521            Self::ScSpecUdtUnionCaseTupleV0 => "ScSpecUdtUnionCaseTupleV0",
1522            Self::ScSpecUdtUnionCaseV0Kind => "ScSpecUdtUnionCaseV0Kind",
1523            Self::ScSpecUdtUnionCaseV0 => "ScSpecUdtUnionCaseV0",
1524            Self::ScSpecUdtUnionV0 => "ScSpecUdtUnionV0",
1525            Self::ScSpecUdtEnumCaseV0 => "ScSpecUdtEnumCaseV0",
1526            Self::ScSpecUdtEnumV0 => "ScSpecUdtEnumV0",
1527            Self::ScSpecUdtErrorEnumCaseV0 => "ScSpecUdtErrorEnumCaseV0",
1528            Self::ScSpecUdtErrorEnumV0 => "ScSpecUdtErrorEnumV0",
1529            Self::ScSpecFunctionInputV0 => "ScSpecFunctionInputV0",
1530            Self::ScSpecFunctionV0 => "ScSpecFunctionV0",
1531            Self::ScSpecEventParamLocationV0 => "ScSpecEventParamLocationV0",
1532            Self::ScSpecEventParamV0 => "ScSpecEventParamV0",
1533            Self::ScSpecEventDataFormat => "ScSpecEventDataFormat",
1534            Self::ScSpecEventV0 => "ScSpecEventV0",
1535            Self::ScSpecEntryKind => "ScSpecEntryKind",
1536            Self::ScSpecEntry => "ScSpecEntry",
1537            Self::ScValType => "ScValType",
1538            Self::ScErrorType => "ScErrorType",
1539            Self::ScErrorCode => "ScErrorCode",
1540            Self::ScError => "ScError",
1541            Self::UInt128Parts => "UInt128Parts",
1542            Self::Int128Parts => "Int128Parts",
1543            Self::UInt256Parts => "UInt256Parts",
1544            Self::Int256Parts => "Int256Parts",
1545            Self::ContractExecutableType => "ContractExecutableType",
1546            Self::ContractExecutable => "ContractExecutable",
1547            Self::ScAddressType => "ScAddressType",
1548            Self::MuxedEd25519Account => "MuxedEd25519Account",
1549            Self::ScAddress => "ScAddress",
1550            Self::ScVec => "ScVec",
1551            Self::ScMap => "ScMap",
1552            Self::ScBytes => "ScBytes",
1553            Self::ScString => "ScString",
1554            Self::ScSymbol => "ScSymbol",
1555            Self::ScNonceKey => "ScNonceKey",
1556            Self::ScContractInstance => "ScContractInstance",
1557            Self::ScVal => "ScVal",
1558            Self::ScMapEntry => "ScMapEntry",
1559            Self::LedgerCloseMetaBatch => "LedgerCloseMetaBatch",
1560            Self::StoredTransactionSet => "StoredTransactionSet",
1561            Self::StoredDebugTransactionSet => "StoredDebugTransactionSet",
1562            Self::PersistedScpStateV0 => "PersistedScpStateV0",
1563            Self::PersistedScpStateV1 => "PersistedScpStateV1",
1564            Self::PersistedScpState => "PersistedScpState",
1565            Self::Thresholds => "Thresholds",
1566            Self::String32 => "String32",
1567            Self::String64 => "String64",
1568            Self::SequenceNumber => "SequenceNumber",
1569            Self::DataValue => "DataValue",
1570            Self::AssetCode4 => "AssetCode4",
1571            Self::AssetCode12 => "AssetCode12",
1572            Self::AssetType => "AssetType",
1573            Self::AssetCode => "AssetCode",
1574            Self::AlphaNum4 => "AlphaNum4",
1575            Self::AlphaNum12 => "AlphaNum12",
1576            Self::Asset => "Asset",
1577            Self::Price => "Price",
1578            Self::Liabilities => "Liabilities",
1579            Self::ThresholdIndexes => "ThresholdIndexes",
1580            Self::LedgerEntryType => "LedgerEntryType",
1581            Self::Signer => "Signer",
1582            Self::AccountFlags => "AccountFlags",
1583            Self::SponsorshipDescriptor => "SponsorshipDescriptor",
1584            Self::AccountEntryExtensionV3 => "AccountEntryExtensionV3",
1585            Self::AccountEntryExtensionV2 => "AccountEntryExtensionV2",
1586            Self::AccountEntryExtensionV2Ext => "AccountEntryExtensionV2Ext",
1587            Self::AccountEntryExtensionV1 => "AccountEntryExtensionV1",
1588            Self::AccountEntryExtensionV1Ext => "AccountEntryExtensionV1Ext",
1589            Self::AccountEntry => "AccountEntry",
1590            Self::AccountEntryExt => "AccountEntryExt",
1591            Self::TrustLineFlags => "TrustLineFlags",
1592            Self::LiquidityPoolType => "LiquidityPoolType",
1593            Self::TrustLineAsset => "TrustLineAsset",
1594            Self::TrustLineEntryExtensionV2 => "TrustLineEntryExtensionV2",
1595            Self::TrustLineEntryExtensionV2Ext => "TrustLineEntryExtensionV2Ext",
1596            Self::TrustLineEntry => "TrustLineEntry",
1597            Self::TrustLineEntryExt => "TrustLineEntryExt",
1598            Self::TrustLineEntryV1 => "TrustLineEntryV1",
1599            Self::TrustLineEntryV1Ext => "TrustLineEntryV1Ext",
1600            Self::OfferEntryFlags => "OfferEntryFlags",
1601            Self::OfferEntry => "OfferEntry",
1602            Self::OfferEntryExt => "OfferEntryExt",
1603            Self::DataEntry => "DataEntry",
1604            Self::DataEntryExt => "DataEntryExt",
1605            Self::ClaimPredicateType => "ClaimPredicateType",
1606            Self::ClaimPredicate => "ClaimPredicate",
1607            Self::ClaimantType => "ClaimantType",
1608            Self::Claimant => "Claimant",
1609            Self::ClaimantV0 => "ClaimantV0",
1610            Self::ClaimableBalanceFlags => "ClaimableBalanceFlags",
1611            Self::ClaimableBalanceEntryExtensionV1 => "ClaimableBalanceEntryExtensionV1",
1612            Self::ClaimableBalanceEntryExtensionV1Ext => "ClaimableBalanceEntryExtensionV1Ext",
1613            Self::ClaimableBalanceEntry => "ClaimableBalanceEntry",
1614            Self::ClaimableBalanceEntryExt => "ClaimableBalanceEntryExt",
1615            Self::LiquidityPoolConstantProductParameters => {
1616                "LiquidityPoolConstantProductParameters"
1617            }
1618            Self::LiquidityPoolEntry => "LiquidityPoolEntry",
1619            Self::LiquidityPoolEntryBody => "LiquidityPoolEntryBody",
1620            Self::LiquidityPoolEntryConstantProduct => "LiquidityPoolEntryConstantProduct",
1621            Self::ContractDataDurability => "ContractDataDurability",
1622            Self::ContractDataEntry => "ContractDataEntry",
1623            Self::ContractCodeCostInputs => "ContractCodeCostInputs",
1624            Self::ContractCodeEntry => "ContractCodeEntry",
1625            Self::ContractCodeEntryExt => "ContractCodeEntryExt",
1626            Self::ContractCodeEntryV1 => "ContractCodeEntryV1",
1627            Self::TtlEntry => "TtlEntry",
1628            Self::LedgerEntryExtensionV1 => "LedgerEntryExtensionV1",
1629            Self::LedgerEntryExtensionV1Ext => "LedgerEntryExtensionV1Ext",
1630            Self::LedgerEntry => "LedgerEntry",
1631            Self::LedgerEntryData => "LedgerEntryData",
1632            Self::LedgerEntryExt => "LedgerEntryExt",
1633            Self::LedgerKey => "LedgerKey",
1634            Self::LedgerKeyAccount => "LedgerKeyAccount",
1635            Self::LedgerKeyTrustLine => "LedgerKeyTrustLine",
1636            Self::LedgerKeyOffer => "LedgerKeyOffer",
1637            Self::LedgerKeyData => "LedgerKeyData",
1638            Self::LedgerKeyClaimableBalance => "LedgerKeyClaimableBalance",
1639            Self::LedgerKeyLiquidityPool => "LedgerKeyLiquidityPool",
1640            Self::LedgerKeyContractData => "LedgerKeyContractData",
1641            Self::LedgerKeyContractCode => "LedgerKeyContractCode",
1642            Self::LedgerKeyConfigSetting => "LedgerKeyConfigSetting",
1643            Self::LedgerKeyTtl => "LedgerKeyTtl",
1644            Self::EnvelopeType => "EnvelopeType",
1645            Self::BucketListType => "BucketListType",
1646            Self::BucketEntryType => "BucketEntryType",
1647            Self::HotArchiveBucketEntryType => "HotArchiveBucketEntryType",
1648            Self::BucketMetadata => "BucketMetadata",
1649            Self::BucketMetadataExt => "BucketMetadataExt",
1650            Self::BucketEntry => "BucketEntry",
1651            Self::HotArchiveBucketEntry => "HotArchiveBucketEntry",
1652            Self::UpgradeType => "UpgradeType",
1653            Self::StellarValueType => "StellarValueType",
1654            Self::LedgerCloseValueSignature => "LedgerCloseValueSignature",
1655            Self::StellarValue => "StellarValue",
1656            Self::StellarValueExt => "StellarValueExt",
1657            #[cfg(feature = "cap_0083")]
1658            Self::StellarValueProposedValue => "StellarValueProposedValue",
1659            Self::LedgerHeaderFlags => "LedgerHeaderFlags",
1660            Self::LedgerHeaderExtensionV1 => "LedgerHeaderExtensionV1",
1661            Self::LedgerHeaderExtensionV1Ext => "LedgerHeaderExtensionV1Ext",
1662            Self::LedgerHeader => "LedgerHeader",
1663            Self::LedgerHeaderExt => "LedgerHeaderExt",
1664            Self::LedgerUpgradeType => "LedgerUpgradeType",
1665            Self::ConfigUpgradeSetKey => "ConfigUpgradeSetKey",
1666            Self::LedgerUpgrade => "LedgerUpgrade",
1667            Self::ConfigUpgradeSet => "ConfigUpgradeSet",
1668            Self::TxSetComponentType => "TxSetComponentType",
1669            Self::DependentTxCluster => "DependentTxCluster",
1670            Self::ParallelTxExecutionStage => "ParallelTxExecutionStage",
1671            Self::ParallelTxsComponent => "ParallelTxsComponent",
1672            Self::TxSetComponent => "TxSetComponent",
1673            Self::TxSetComponentTxsMaybeDiscountedFee => "TxSetComponentTxsMaybeDiscountedFee",
1674            Self::TransactionPhase => "TransactionPhase",
1675            Self::TransactionSet => "TransactionSet",
1676            Self::TransactionSetV1 => "TransactionSetV1",
1677            Self::GeneralizedTransactionSet => "GeneralizedTransactionSet",
1678            Self::TransactionResultPair => "TransactionResultPair",
1679            Self::TransactionResultSet => "TransactionResultSet",
1680            Self::TransactionHistoryEntry => "TransactionHistoryEntry",
1681            Self::TransactionHistoryEntryExt => "TransactionHistoryEntryExt",
1682            Self::TransactionHistoryResultEntry => "TransactionHistoryResultEntry",
1683            Self::TransactionHistoryResultEntryExt => "TransactionHistoryResultEntryExt",
1684            Self::LedgerHeaderHistoryEntry => "LedgerHeaderHistoryEntry",
1685            Self::LedgerHeaderHistoryEntryExt => "LedgerHeaderHistoryEntryExt",
1686            Self::LedgerScpMessages => "LedgerScpMessages",
1687            Self::ScpHistoryEntryV0 => "ScpHistoryEntryV0",
1688            Self::ScpHistoryEntry => "ScpHistoryEntry",
1689            Self::LedgerEntryChangeType => "LedgerEntryChangeType",
1690            Self::LedgerEntryChange => "LedgerEntryChange",
1691            Self::LedgerEntryChanges => "LedgerEntryChanges",
1692            Self::OperationMeta => "OperationMeta",
1693            Self::TransactionMetaV1 => "TransactionMetaV1",
1694            Self::TransactionMetaV2 => "TransactionMetaV2",
1695            Self::ContractEventType => "ContractEventType",
1696            Self::ContractEvent => "ContractEvent",
1697            Self::ContractEventBody => "ContractEventBody",
1698            Self::ContractEventV0 => "ContractEventV0",
1699            Self::DiagnosticEvent => "DiagnosticEvent",
1700            Self::SorobanTransactionMetaExtV1 => "SorobanTransactionMetaExtV1",
1701            Self::SorobanTransactionMetaExt => "SorobanTransactionMetaExt",
1702            Self::SorobanTransactionMeta => "SorobanTransactionMeta",
1703            Self::TransactionMetaV3 => "TransactionMetaV3",
1704            Self::OperationMetaV2 => "OperationMetaV2",
1705            Self::SorobanTransactionMetaV2 => "SorobanTransactionMetaV2",
1706            Self::TransactionEventStage => "TransactionEventStage",
1707            Self::TransactionEvent => "TransactionEvent",
1708            Self::TransactionMetaV4 => "TransactionMetaV4",
1709            Self::InvokeHostFunctionSuccessPreImage => "InvokeHostFunctionSuccessPreImage",
1710            Self::TransactionMeta => "TransactionMeta",
1711            Self::TransactionResultMeta => "TransactionResultMeta",
1712            Self::TransactionResultMetaV1 => "TransactionResultMetaV1",
1713            Self::UpgradeEntryMeta => "UpgradeEntryMeta",
1714            Self::LedgerCloseMetaV0 => "LedgerCloseMetaV0",
1715            Self::LedgerCloseMetaExtV1 => "LedgerCloseMetaExtV1",
1716            Self::LedgerCloseMetaExt => "LedgerCloseMetaExt",
1717            Self::LedgerCloseMetaV1 => "LedgerCloseMetaV1",
1718            Self::LedgerCloseMetaV2 => "LedgerCloseMetaV2",
1719            Self::LedgerCloseMeta => "LedgerCloseMeta",
1720            Self::ErrorCode => "ErrorCode",
1721            Self::SError => "SError",
1722            Self::SendMore => "SendMore",
1723            Self::SendMoreExtended => "SendMoreExtended",
1724            Self::AuthCert => "AuthCert",
1725            Self::Hello => "Hello",
1726            Self::Auth => "Auth",
1727            Self::IpAddrType => "IpAddrType",
1728            Self::PeerAddress => "PeerAddress",
1729            Self::PeerAddressIp => "PeerAddressIp",
1730            Self::MessageType => "MessageType",
1731            Self::DontHave => "DontHave",
1732            Self::SurveyMessageCommandType => "SurveyMessageCommandType",
1733            Self::SurveyMessageResponseType => "SurveyMessageResponseType",
1734            Self::TimeSlicedSurveyStartCollectingMessage => {
1735                "TimeSlicedSurveyStartCollectingMessage"
1736            }
1737            Self::SignedTimeSlicedSurveyStartCollectingMessage => {
1738                "SignedTimeSlicedSurveyStartCollectingMessage"
1739            }
1740            Self::TimeSlicedSurveyStopCollectingMessage => "TimeSlicedSurveyStopCollectingMessage",
1741            Self::SignedTimeSlicedSurveyStopCollectingMessage => {
1742                "SignedTimeSlicedSurveyStopCollectingMessage"
1743            }
1744            Self::SurveyRequestMessage => "SurveyRequestMessage",
1745            Self::TimeSlicedSurveyRequestMessage => "TimeSlicedSurveyRequestMessage",
1746            Self::SignedTimeSlicedSurveyRequestMessage => "SignedTimeSlicedSurveyRequestMessage",
1747            Self::EncryptedBody => "EncryptedBody",
1748            Self::SurveyResponseMessage => "SurveyResponseMessage",
1749            Self::TimeSlicedSurveyResponseMessage => "TimeSlicedSurveyResponseMessage",
1750            Self::SignedTimeSlicedSurveyResponseMessage => "SignedTimeSlicedSurveyResponseMessage",
1751            Self::PeerStats => "PeerStats",
1752            Self::TimeSlicedNodeData => "TimeSlicedNodeData",
1753            Self::TimeSlicedPeerData => "TimeSlicedPeerData",
1754            Self::TimeSlicedPeerDataList => "TimeSlicedPeerDataList",
1755            Self::TopologyResponseBodyV2 => "TopologyResponseBodyV2",
1756            Self::SurveyResponseBody => "SurveyResponseBody",
1757            Self::TxAdvertVector => "TxAdvertVector",
1758            Self::FloodAdvert => "FloodAdvert",
1759            Self::TxDemandVector => "TxDemandVector",
1760            Self::FloodDemand => "FloodDemand",
1761            Self::StellarMessage => "StellarMessage",
1762            Self::AuthenticatedMessage => "AuthenticatedMessage",
1763            Self::AuthenticatedMessageV0 => "AuthenticatedMessageV0",
1764            Self::LiquidityPoolParameters => "LiquidityPoolParameters",
1765            Self::MuxedAccount => "MuxedAccount",
1766            Self::MuxedAccountMed25519 => "MuxedAccountMed25519",
1767            Self::DecoratedSignature => "DecoratedSignature",
1768            Self::OperationType => "OperationType",
1769            Self::CreateAccountOp => "CreateAccountOp",
1770            Self::PaymentOp => "PaymentOp",
1771            Self::PathPaymentStrictReceiveOp => "PathPaymentStrictReceiveOp",
1772            Self::PathPaymentStrictSendOp => "PathPaymentStrictSendOp",
1773            Self::ManageSellOfferOp => "ManageSellOfferOp",
1774            Self::ManageBuyOfferOp => "ManageBuyOfferOp",
1775            Self::CreatePassiveSellOfferOp => "CreatePassiveSellOfferOp",
1776            Self::SetOptionsOp => "SetOptionsOp",
1777            Self::ChangeTrustAsset => "ChangeTrustAsset",
1778            Self::ChangeTrustOp => "ChangeTrustOp",
1779            Self::AllowTrustOp => "AllowTrustOp",
1780            Self::ManageDataOp => "ManageDataOp",
1781            Self::BumpSequenceOp => "BumpSequenceOp",
1782            Self::CreateClaimableBalanceOp => "CreateClaimableBalanceOp",
1783            Self::ClaimClaimableBalanceOp => "ClaimClaimableBalanceOp",
1784            Self::BeginSponsoringFutureReservesOp => "BeginSponsoringFutureReservesOp",
1785            Self::RevokeSponsorshipType => "RevokeSponsorshipType",
1786            Self::RevokeSponsorshipOp => "RevokeSponsorshipOp",
1787            Self::RevokeSponsorshipOpSigner => "RevokeSponsorshipOpSigner",
1788            Self::ClawbackOp => "ClawbackOp",
1789            Self::ClawbackClaimableBalanceOp => "ClawbackClaimableBalanceOp",
1790            Self::SetTrustLineFlagsOp => "SetTrustLineFlagsOp",
1791            Self::LiquidityPoolDepositOp => "LiquidityPoolDepositOp",
1792            Self::LiquidityPoolWithdrawOp => "LiquidityPoolWithdrawOp",
1793            Self::HostFunctionType => "HostFunctionType",
1794            Self::ContractIdPreimageType => "ContractIdPreimageType",
1795            Self::ContractIdPreimage => "ContractIdPreimage",
1796            Self::ContractIdPreimageFromAddress => "ContractIdPreimageFromAddress",
1797            Self::CreateContractArgs => "CreateContractArgs",
1798            Self::CreateContractArgsV2 => "CreateContractArgsV2",
1799            Self::InvokeContractArgs => "InvokeContractArgs",
1800            Self::HostFunction => "HostFunction",
1801            Self::SorobanAuthorizedFunctionType => "SorobanAuthorizedFunctionType",
1802            Self::SorobanAuthorizedFunction => "SorobanAuthorizedFunction",
1803            Self::SorobanAuthorizedInvocation => "SorobanAuthorizedInvocation",
1804            Self::SorobanAddressCredentials => "SorobanAddressCredentials",
1805            Self::SorobanDelegateSignature => "SorobanDelegateSignature",
1806            Self::SorobanAddressCredentialsWithDelegates => {
1807                "SorobanAddressCredentialsWithDelegates"
1808            }
1809            Self::SorobanCredentialsType => "SorobanCredentialsType",
1810            Self::SorobanCredentials => "SorobanCredentials",
1811            Self::SorobanAuthorizationEntry => "SorobanAuthorizationEntry",
1812            Self::SorobanAuthorizationEntries => "SorobanAuthorizationEntries",
1813            Self::InvokeHostFunctionOp => "InvokeHostFunctionOp",
1814            Self::ExtendFootprintTtlOp => "ExtendFootprintTtlOp",
1815            Self::RestoreFootprintOp => "RestoreFootprintOp",
1816            Self::Operation => "Operation",
1817            Self::OperationBody => "OperationBody",
1818            Self::HashIdPreimage => "HashIdPreimage",
1819            Self::HashIdPreimageOperationId => "HashIdPreimageOperationId",
1820            Self::HashIdPreimageRevokeId => "HashIdPreimageRevokeId",
1821            Self::HashIdPreimageContractId => "HashIdPreimageContractId",
1822            Self::HashIdPreimageSorobanAuthorization => "HashIdPreimageSorobanAuthorization",
1823            Self::HashIdPreimageSorobanAuthorizationWithAddress => {
1824                "HashIdPreimageSorobanAuthorizationWithAddress"
1825            }
1826            Self::MemoType => "MemoType",
1827            Self::Memo => "Memo",
1828            Self::TimeBounds => "TimeBounds",
1829            Self::LedgerBounds => "LedgerBounds",
1830            Self::PreconditionsV2 => "PreconditionsV2",
1831            Self::PreconditionType => "PreconditionType",
1832            Self::Preconditions => "Preconditions",
1833            Self::LedgerFootprint => "LedgerFootprint",
1834            Self::SorobanResources => "SorobanResources",
1835            Self::SorobanResourcesExtV0 => "SorobanResourcesExtV0",
1836            Self::SorobanTransactionData => "SorobanTransactionData",
1837            Self::SorobanTransactionDataExt => "SorobanTransactionDataExt",
1838            Self::TransactionV0 => "TransactionV0",
1839            Self::TransactionV0Ext => "TransactionV0Ext",
1840            Self::TransactionV0Envelope => "TransactionV0Envelope",
1841            Self::Transaction => "Transaction",
1842            Self::TransactionExt => "TransactionExt",
1843            Self::TransactionV1Envelope => "TransactionV1Envelope",
1844            Self::FeeBumpTransaction => "FeeBumpTransaction",
1845            Self::FeeBumpTransactionInnerTx => "FeeBumpTransactionInnerTx",
1846            Self::FeeBumpTransactionExt => "FeeBumpTransactionExt",
1847            Self::FeeBumpTransactionEnvelope => "FeeBumpTransactionEnvelope",
1848            Self::TransactionEnvelope => "TransactionEnvelope",
1849            Self::TransactionSignaturePayload => "TransactionSignaturePayload",
1850            Self::TransactionSignaturePayloadTaggedTransaction => {
1851                "TransactionSignaturePayloadTaggedTransaction"
1852            }
1853            Self::ClaimAtomType => "ClaimAtomType",
1854            Self::ClaimOfferAtomV0 => "ClaimOfferAtomV0",
1855            Self::ClaimOfferAtom => "ClaimOfferAtom",
1856            Self::ClaimLiquidityAtom => "ClaimLiquidityAtom",
1857            Self::ClaimAtom => "ClaimAtom",
1858            Self::CreateAccountResultCode => "CreateAccountResultCode",
1859            Self::CreateAccountResult => "CreateAccountResult",
1860            Self::PaymentResultCode => "PaymentResultCode",
1861            Self::PaymentResult => "PaymentResult",
1862            Self::PathPaymentStrictReceiveResultCode => "PathPaymentStrictReceiveResultCode",
1863            Self::SimplePaymentResult => "SimplePaymentResult",
1864            Self::PathPaymentStrictReceiveResult => "PathPaymentStrictReceiveResult",
1865            Self::PathPaymentStrictReceiveResultSuccess => "PathPaymentStrictReceiveResultSuccess",
1866            Self::PathPaymentStrictSendResultCode => "PathPaymentStrictSendResultCode",
1867            Self::PathPaymentStrictSendResult => "PathPaymentStrictSendResult",
1868            Self::PathPaymentStrictSendResultSuccess => "PathPaymentStrictSendResultSuccess",
1869            Self::ManageSellOfferResultCode => "ManageSellOfferResultCode",
1870            Self::ManageOfferEffect => "ManageOfferEffect",
1871            Self::ManageOfferSuccessResult => "ManageOfferSuccessResult",
1872            Self::ManageOfferSuccessResultOffer => "ManageOfferSuccessResultOffer",
1873            Self::ManageSellOfferResult => "ManageSellOfferResult",
1874            Self::ManageBuyOfferResultCode => "ManageBuyOfferResultCode",
1875            Self::ManageBuyOfferResult => "ManageBuyOfferResult",
1876            Self::SetOptionsResultCode => "SetOptionsResultCode",
1877            Self::SetOptionsResult => "SetOptionsResult",
1878            Self::ChangeTrustResultCode => "ChangeTrustResultCode",
1879            Self::ChangeTrustResult => "ChangeTrustResult",
1880            Self::AllowTrustResultCode => "AllowTrustResultCode",
1881            Self::AllowTrustResult => "AllowTrustResult",
1882            Self::AccountMergeResultCode => "AccountMergeResultCode",
1883            Self::AccountMergeResult => "AccountMergeResult",
1884            Self::InflationResultCode => "InflationResultCode",
1885            Self::InflationPayout => "InflationPayout",
1886            Self::InflationResult => "InflationResult",
1887            Self::ManageDataResultCode => "ManageDataResultCode",
1888            Self::ManageDataResult => "ManageDataResult",
1889            Self::BumpSequenceResultCode => "BumpSequenceResultCode",
1890            Self::BumpSequenceResult => "BumpSequenceResult",
1891            Self::CreateClaimableBalanceResultCode => "CreateClaimableBalanceResultCode",
1892            Self::CreateClaimableBalanceResult => "CreateClaimableBalanceResult",
1893            Self::ClaimClaimableBalanceResultCode => "ClaimClaimableBalanceResultCode",
1894            Self::ClaimClaimableBalanceResult => "ClaimClaimableBalanceResult",
1895            Self::BeginSponsoringFutureReservesResultCode => {
1896                "BeginSponsoringFutureReservesResultCode"
1897            }
1898            Self::BeginSponsoringFutureReservesResult => "BeginSponsoringFutureReservesResult",
1899            Self::EndSponsoringFutureReservesResultCode => "EndSponsoringFutureReservesResultCode",
1900            Self::EndSponsoringFutureReservesResult => "EndSponsoringFutureReservesResult",
1901            Self::RevokeSponsorshipResultCode => "RevokeSponsorshipResultCode",
1902            Self::RevokeSponsorshipResult => "RevokeSponsorshipResult",
1903            Self::ClawbackResultCode => "ClawbackResultCode",
1904            Self::ClawbackResult => "ClawbackResult",
1905            Self::ClawbackClaimableBalanceResultCode => "ClawbackClaimableBalanceResultCode",
1906            Self::ClawbackClaimableBalanceResult => "ClawbackClaimableBalanceResult",
1907            Self::SetTrustLineFlagsResultCode => "SetTrustLineFlagsResultCode",
1908            Self::SetTrustLineFlagsResult => "SetTrustLineFlagsResult",
1909            Self::LiquidityPoolDepositResultCode => "LiquidityPoolDepositResultCode",
1910            Self::LiquidityPoolDepositResult => "LiquidityPoolDepositResult",
1911            Self::LiquidityPoolWithdrawResultCode => "LiquidityPoolWithdrawResultCode",
1912            Self::LiquidityPoolWithdrawResult => "LiquidityPoolWithdrawResult",
1913            Self::InvokeHostFunctionResultCode => "InvokeHostFunctionResultCode",
1914            Self::InvokeHostFunctionResult => "InvokeHostFunctionResult",
1915            Self::ExtendFootprintTtlResultCode => "ExtendFootprintTtlResultCode",
1916            Self::ExtendFootprintTtlResult => "ExtendFootprintTtlResult",
1917            Self::RestoreFootprintResultCode => "RestoreFootprintResultCode",
1918            Self::RestoreFootprintResult => "RestoreFootprintResult",
1919            Self::OperationResultCode => "OperationResultCode",
1920            Self::OperationResult => "OperationResult",
1921            Self::OperationResultTr => "OperationResultTr",
1922            Self::TransactionResultCode => "TransactionResultCode",
1923            Self::InnerTransactionResult => "InnerTransactionResult",
1924            Self::InnerTransactionResultResult => "InnerTransactionResultResult",
1925            Self::InnerTransactionResultExt => "InnerTransactionResultExt",
1926            Self::InnerTransactionResultPair => "InnerTransactionResultPair",
1927            Self::TransactionResult => "TransactionResult",
1928            Self::TransactionResultResult => "TransactionResultResult",
1929            Self::TransactionResultExt => "TransactionResultExt",
1930            Self::Hash => "Hash",
1931            Self::Uint256 => "Uint256",
1932            Self::Uint32 => "Uint32",
1933            Self::Int32 => "Int32",
1934            Self::Uint64 => "Uint64",
1935            Self::Int64 => "Int64",
1936            Self::TimePoint => "TimePoint",
1937            Self::Duration => "Duration",
1938            Self::ExtensionPoint => "ExtensionPoint",
1939            Self::CryptoKeyType => "CryptoKeyType",
1940            Self::PublicKeyType => "PublicKeyType",
1941            Self::SignerKeyType => "SignerKeyType",
1942            Self::PublicKey => "PublicKey",
1943            Self::SignerKey => "SignerKey",
1944            Self::SignerKeyEd25519SignedPayload => "SignerKeyEd25519SignedPayload",
1945            Self::Signature => "Signature",
1946            Self::SignatureHint => "SignatureHint",
1947            Self::NodeId => "NodeId",
1948            Self::AccountId => "AccountId",
1949            Self::ContractId => "ContractId",
1950            Self::Curve25519Secret => "Curve25519Secret",
1951            Self::Curve25519Public => "Curve25519Public",
1952            Self::HmacSha256Key => "HmacSha256Key",
1953            Self::HmacSha256Mac => "HmacSha256Mac",
1954            Self::ShortHashSeed => "ShortHashSeed",
1955            Self::BinaryFuseFilterType => "BinaryFuseFilterType",
1956            Self::SerializedBinaryFuseFilter => "SerializedBinaryFuseFilter",
1957            Self::PoolId => "PoolId",
1958            Self::ClaimableBalanceIdType => "ClaimableBalanceIdType",
1959            Self::ClaimableBalanceId => "ClaimableBalanceId",
1960            #[cfg(feature = "test_feature")]
1961            Self::TestNextType => "TestNextType",
1962        }
1963    }
1964
1965    #[must_use]
1966    #[allow(clippy::too_many_lines)]
1967    pub const fn variants() -> [TypeVariant; Self::_VARIANTS.len()] {
1968        Self::VARIANTS
1969    }
1970
1971    #[cfg(feature = "schemars")]
1972    #[must_use]
1973    #[allow(clippy::too_many_lines)]
1974    pub fn json_schema(&self, gen: schemars::gen::SchemaGenerator) -> schemars::schema::RootSchema {
1975        match self {
1976            Self::Value => gen.into_root_schema_for::<Value>(),
1977            Self::ScpBallot => gen.into_root_schema_for::<ScpBallot>(),
1978            Self::ScpStatementType => gen.into_root_schema_for::<ScpStatementType>(),
1979            Self::ScpNomination => gen.into_root_schema_for::<ScpNomination>(),
1980            Self::ScpStatement => gen.into_root_schema_for::<ScpStatement>(),
1981            Self::ScpStatementPledges => gen.into_root_schema_for::<ScpStatementPledges>(),
1982            Self::ScpStatementPrepare => gen.into_root_schema_for::<ScpStatementPrepare>(),
1983            Self::ScpStatementConfirm => gen.into_root_schema_for::<ScpStatementConfirm>(),
1984            Self::ScpStatementExternalize => gen.into_root_schema_for::<ScpStatementExternalize>(),
1985            Self::ScpEnvelope => gen.into_root_schema_for::<ScpEnvelope>(),
1986            Self::ScpQuorumSet => gen.into_root_schema_for::<ScpQuorumSet>(),
1987            Self::EncodedLedgerKey => gen.into_root_schema_for::<EncodedLedgerKey>(),
1988            Self::ConfigSettingContractExecutionLanesV0 => {
1989                gen.into_root_schema_for::<ConfigSettingContractExecutionLanesV0>()
1990            }
1991            Self::ConfigSettingContractComputeV0 => {
1992                gen.into_root_schema_for::<ConfigSettingContractComputeV0>()
1993            }
1994            Self::ConfigSettingContractParallelComputeV0 => {
1995                gen.into_root_schema_for::<ConfigSettingContractParallelComputeV0>()
1996            }
1997            Self::ConfigSettingContractLedgerCostV0 => {
1998                gen.into_root_schema_for::<ConfigSettingContractLedgerCostV0>()
1999            }
2000            Self::ConfigSettingContractLedgerCostExtV0 => {
2001                gen.into_root_schema_for::<ConfigSettingContractLedgerCostExtV0>()
2002            }
2003            Self::ConfigSettingContractHistoricalDataV0 => {
2004                gen.into_root_schema_for::<ConfigSettingContractHistoricalDataV0>()
2005            }
2006            Self::ConfigSettingContractEventsV0 => {
2007                gen.into_root_schema_for::<ConfigSettingContractEventsV0>()
2008            }
2009            Self::ConfigSettingContractBandwidthV0 => {
2010                gen.into_root_schema_for::<ConfigSettingContractBandwidthV0>()
2011            }
2012            Self::ContractCostType => gen.into_root_schema_for::<ContractCostType>(),
2013            Self::ContractCostParamEntry => gen.into_root_schema_for::<ContractCostParamEntry>(),
2014            Self::StateArchivalSettings => gen.into_root_schema_for::<StateArchivalSettings>(),
2015            Self::EvictionIterator => gen.into_root_schema_for::<EvictionIterator>(),
2016            Self::ConfigSettingScpTiming => gen.into_root_schema_for::<ConfigSettingScpTiming>(),
2017            Self::FrozenLedgerKeys => gen.into_root_schema_for::<FrozenLedgerKeys>(),
2018            Self::FrozenLedgerKeysDelta => gen.into_root_schema_for::<FrozenLedgerKeysDelta>(),
2019            Self::FreezeBypassTxs => gen.into_root_schema_for::<FreezeBypassTxs>(),
2020            Self::FreezeBypassTxsDelta => gen.into_root_schema_for::<FreezeBypassTxsDelta>(),
2021            Self::ContractCostParams => gen.into_root_schema_for::<ContractCostParams>(),
2022            Self::ConfigSettingId => gen.into_root_schema_for::<ConfigSettingId>(),
2023            Self::ConfigSettingEntry => gen.into_root_schema_for::<ConfigSettingEntry>(),
2024            Self::ScEnvMetaKind => gen.into_root_schema_for::<ScEnvMetaKind>(),
2025            Self::ScEnvMetaEntry => gen.into_root_schema_for::<ScEnvMetaEntry>(),
2026            Self::ScEnvMetaEntryInterfaceVersion => {
2027                gen.into_root_schema_for::<ScEnvMetaEntryInterfaceVersion>()
2028            }
2029            Self::ScMetaV0 => gen.into_root_schema_for::<ScMetaV0>(),
2030            Self::ScMetaKind => gen.into_root_schema_for::<ScMetaKind>(),
2031            Self::ScMetaEntry => gen.into_root_schema_for::<ScMetaEntry>(),
2032            Self::ScSpecType => gen.into_root_schema_for::<ScSpecType>(),
2033            Self::ScSpecTypeOption => gen.into_root_schema_for::<ScSpecTypeOption>(),
2034            Self::ScSpecTypeResult => gen.into_root_schema_for::<ScSpecTypeResult>(),
2035            Self::ScSpecTypeVec => gen.into_root_schema_for::<ScSpecTypeVec>(),
2036            Self::ScSpecTypeMap => gen.into_root_schema_for::<ScSpecTypeMap>(),
2037            Self::ScSpecTypeTuple => gen.into_root_schema_for::<ScSpecTypeTuple>(),
2038            Self::ScSpecTypeBytesN => gen.into_root_schema_for::<ScSpecTypeBytesN>(),
2039            Self::ScSpecTypeUdt => gen.into_root_schema_for::<ScSpecTypeUdt>(),
2040            Self::ScSpecTypeDef => gen.into_root_schema_for::<ScSpecTypeDef>(),
2041            Self::ScSpecUdtStructFieldV0 => gen.into_root_schema_for::<ScSpecUdtStructFieldV0>(),
2042            Self::ScSpecUdtStructV0 => gen.into_root_schema_for::<ScSpecUdtStructV0>(),
2043            Self::ScSpecUdtUnionCaseVoidV0 => {
2044                gen.into_root_schema_for::<ScSpecUdtUnionCaseVoidV0>()
2045            }
2046            Self::ScSpecUdtUnionCaseTupleV0 => {
2047                gen.into_root_schema_for::<ScSpecUdtUnionCaseTupleV0>()
2048            }
2049            Self::ScSpecUdtUnionCaseV0Kind => {
2050                gen.into_root_schema_for::<ScSpecUdtUnionCaseV0Kind>()
2051            }
2052            Self::ScSpecUdtUnionCaseV0 => gen.into_root_schema_for::<ScSpecUdtUnionCaseV0>(),
2053            Self::ScSpecUdtUnionV0 => gen.into_root_schema_for::<ScSpecUdtUnionV0>(),
2054            Self::ScSpecUdtEnumCaseV0 => gen.into_root_schema_for::<ScSpecUdtEnumCaseV0>(),
2055            Self::ScSpecUdtEnumV0 => gen.into_root_schema_for::<ScSpecUdtEnumV0>(),
2056            Self::ScSpecUdtErrorEnumCaseV0 => {
2057                gen.into_root_schema_for::<ScSpecUdtErrorEnumCaseV0>()
2058            }
2059            Self::ScSpecUdtErrorEnumV0 => gen.into_root_schema_for::<ScSpecUdtErrorEnumV0>(),
2060            Self::ScSpecFunctionInputV0 => gen.into_root_schema_for::<ScSpecFunctionInputV0>(),
2061            Self::ScSpecFunctionV0 => gen.into_root_schema_for::<ScSpecFunctionV0>(),
2062            Self::ScSpecEventParamLocationV0 => {
2063                gen.into_root_schema_for::<ScSpecEventParamLocationV0>()
2064            }
2065            Self::ScSpecEventParamV0 => gen.into_root_schema_for::<ScSpecEventParamV0>(),
2066            Self::ScSpecEventDataFormat => gen.into_root_schema_for::<ScSpecEventDataFormat>(),
2067            Self::ScSpecEventV0 => gen.into_root_schema_for::<ScSpecEventV0>(),
2068            Self::ScSpecEntryKind => gen.into_root_schema_for::<ScSpecEntryKind>(),
2069            Self::ScSpecEntry => gen.into_root_schema_for::<ScSpecEntry>(),
2070            Self::ScValType => gen.into_root_schema_for::<ScValType>(),
2071            Self::ScErrorType => gen.into_root_schema_for::<ScErrorType>(),
2072            Self::ScErrorCode => gen.into_root_schema_for::<ScErrorCode>(),
2073            Self::ScError => gen.into_root_schema_for::<ScError>(),
2074            Self::UInt128Parts => gen.into_root_schema_for::<UInt128Parts>(),
2075            Self::Int128Parts => gen.into_root_schema_for::<Int128Parts>(),
2076            Self::UInt256Parts => gen.into_root_schema_for::<UInt256Parts>(),
2077            Self::Int256Parts => gen.into_root_schema_for::<Int256Parts>(),
2078            Self::ContractExecutableType => gen.into_root_schema_for::<ContractExecutableType>(),
2079            Self::ContractExecutable => gen.into_root_schema_for::<ContractExecutable>(),
2080            Self::ScAddressType => gen.into_root_schema_for::<ScAddressType>(),
2081            Self::MuxedEd25519Account => gen.into_root_schema_for::<MuxedEd25519Account>(),
2082            Self::ScAddress => gen.into_root_schema_for::<ScAddress>(),
2083            Self::ScVec => gen.into_root_schema_for::<ScVec>(),
2084            Self::ScMap => gen.into_root_schema_for::<ScMap>(),
2085            Self::ScBytes => gen.into_root_schema_for::<ScBytes>(),
2086            Self::ScString => gen.into_root_schema_for::<ScString>(),
2087            Self::ScSymbol => gen.into_root_schema_for::<ScSymbol>(),
2088            Self::ScNonceKey => gen.into_root_schema_for::<ScNonceKey>(),
2089            Self::ScContractInstance => gen.into_root_schema_for::<ScContractInstance>(),
2090            Self::ScVal => gen.into_root_schema_for::<ScVal>(),
2091            Self::ScMapEntry => gen.into_root_schema_for::<ScMapEntry>(),
2092            Self::LedgerCloseMetaBatch => gen.into_root_schema_for::<LedgerCloseMetaBatch>(),
2093            Self::StoredTransactionSet => gen.into_root_schema_for::<StoredTransactionSet>(),
2094            Self::StoredDebugTransactionSet => {
2095                gen.into_root_schema_for::<StoredDebugTransactionSet>()
2096            }
2097            Self::PersistedScpStateV0 => gen.into_root_schema_for::<PersistedScpStateV0>(),
2098            Self::PersistedScpStateV1 => gen.into_root_schema_for::<PersistedScpStateV1>(),
2099            Self::PersistedScpState => gen.into_root_schema_for::<PersistedScpState>(),
2100            Self::Thresholds => gen.into_root_schema_for::<Thresholds>(),
2101            Self::String32 => gen.into_root_schema_for::<String32>(),
2102            Self::String64 => gen.into_root_schema_for::<String64>(),
2103            Self::SequenceNumber => gen.into_root_schema_for::<SequenceNumber>(),
2104            Self::DataValue => gen.into_root_schema_for::<DataValue>(),
2105            Self::AssetCode4 => gen.into_root_schema_for::<AssetCode4>(),
2106            Self::AssetCode12 => gen.into_root_schema_for::<AssetCode12>(),
2107            Self::AssetType => gen.into_root_schema_for::<AssetType>(),
2108            Self::AssetCode => gen.into_root_schema_for::<AssetCode>(),
2109            Self::AlphaNum4 => gen.into_root_schema_for::<AlphaNum4>(),
2110            Self::AlphaNum12 => gen.into_root_schema_for::<AlphaNum12>(),
2111            Self::Asset => gen.into_root_schema_for::<Asset>(),
2112            Self::Price => gen.into_root_schema_for::<Price>(),
2113            Self::Liabilities => gen.into_root_schema_for::<Liabilities>(),
2114            Self::ThresholdIndexes => gen.into_root_schema_for::<ThresholdIndexes>(),
2115            Self::LedgerEntryType => gen.into_root_schema_for::<LedgerEntryType>(),
2116            Self::Signer => gen.into_root_schema_for::<Signer>(),
2117            Self::AccountFlags => gen.into_root_schema_for::<AccountFlags>(),
2118            Self::SponsorshipDescriptor => gen.into_root_schema_for::<SponsorshipDescriptor>(),
2119            Self::AccountEntryExtensionV3 => gen.into_root_schema_for::<AccountEntryExtensionV3>(),
2120            Self::AccountEntryExtensionV2 => gen.into_root_schema_for::<AccountEntryExtensionV2>(),
2121            Self::AccountEntryExtensionV2Ext => {
2122                gen.into_root_schema_for::<AccountEntryExtensionV2Ext>()
2123            }
2124            Self::AccountEntryExtensionV1 => gen.into_root_schema_for::<AccountEntryExtensionV1>(),
2125            Self::AccountEntryExtensionV1Ext => {
2126                gen.into_root_schema_for::<AccountEntryExtensionV1Ext>()
2127            }
2128            Self::AccountEntry => gen.into_root_schema_for::<AccountEntry>(),
2129            Self::AccountEntryExt => gen.into_root_schema_for::<AccountEntryExt>(),
2130            Self::TrustLineFlags => gen.into_root_schema_for::<TrustLineFlags>(),
2131            Self::LiquidityPoolType => gen.into_root_schema_for::<LiquidityPoolType>(),
2132            Self::TrustLineAsset => gen.into_root_schema_for::<TrustLineAsset>(),
2133            Self::TrustLineEntryExtensionV2 => {
2134                gen.into_root_schema_for::<TrustLineEntryExtensionV2>()
2135            }
2136            Self::TrustLineEntryExtensionV2Ext => {
2137                gen.into_root_schema_for::<TrustLineEntryExtensionV2Ext>()
2138            }
2139            Self::TrustLineEntry => gen.into_root_schema_for::<TrustLineEntry>(),
2140            Self::TrustLineEntryExt => gen.into_root_schema_for::<TrustLineEntryExt>(),
2141            Self::TrustLineEntryV1 => gen.into_root_schema_for::<TrustLineEntryV1>(),
2142            Self::TrustLineEntryV1Ext => gen.into_root_schema_for::<TrustLineEntryV1Ext>(),
2143            Self::OfferEntryFlags => gen.into_root_schema_for::<OfferEntryFlags>(),
2144            Self::OfferEntry => gen.into_root_schema_for::<OfferEntry>(),
2145            Self::OfferEntryExt => gen.into_root_schema_for::<OfferEntryExt>(),
2146            Self::DataEntry => gen.into_root_schema_for::<DataEntry>(),
2147            Self::DataEntryExt => gen.into_root_schema_for::<DataEntryExt>(),
2148            Self::ClaimPredicateType => gen.into_root_schema_for::<ClaimPredicateType>(),
2149            Self::ClaimPredicate => gen.into_root_schema_for::<ClaimPredicate>(),
2150            Self::ClaimantType => gen.into_root_schema_for::<ClaimantType>(),
2151            Self::Claimant => gen.into_root_schema_for::<Claimant>(),
2152            Self::ClaimantV0 => gen.into_root_schema_for::<ClaimantV0>(),
2153            Self::ClaimableBalanceFlags => gen.into_root_schema_for::<ClaimableBalanceFlags>(),
2154            Self::ClaimableBalanceEntryExtensionV1 => {
2155                gen.into_root_schema_for::<ClaimableBalanceEntryExtensionV1>()
2156            }
2157            Self::ClaimableBalanceEntryExtensionV1Ext => {
2158                gen.into_root_schema_for::<ClaimableBalanceEntryExtensionV1Ext>()
2159            }
2160            Self::ClaimableBalanceEntry => gen.into_root_schema_for::<ClaimableBalanceEntry>(),
2161            Self::ClaimableBalanceEntryExt => {
2162                gen.into_root_schema_for::<ClaimableBalanceEntryExt>()
2163            }
2164            Self::LiquidityPoolConstantProductParameters => {
2165                gen.into_root_schema_for::<LiquidityPoolConstantProductParameters>()
2166            }
2167            Self::LiquidityPoolEntry => gen.into_root_schema_for::<LiquidityPoolEntry>(),
2168            Self::LiquidityPoolEntryBody => gen.into_root_schema_for::<LiquidityPoolEntryBody>(),
2169            Self::LiquidityPoolEntryConstantProduct => {
2170                gen.into_root_schema_for::<LiquidityPoolEntryConstantProduct>()
2171            }
2172            Self::ContractDataDurability => gen.into_root_schema_for::<ContractDataDurability>(),
2173            Self::ContractDataEntry => gen.into_root_schema_for::<ContractDataEntry>(),
2174            Self::ContractCodeCostInputs => gen.into_root_schema_for::<ContractCodeCostInputs>(),
2175            Self::ContractCodeEntry => gen.into_root_schema_for::<ContractCodeEntry>(),
2176            Self::ContractCodeEntryExt => gen.into_root_schema_for::<ContractCodeEntryExt>(),
2177            Self::ContractCodeEntryV1 => gen.into_root_schema_for::<ContractCodeEntryV1>(),
2178            Self::TtlEntry => gen.into_root_schema_for::<TtlEntry>(),
2179            Self::LedgerEntryExtensionV1 => gen.into_root_schema_for::<LedgerEntryExtensionV1>(),
2180            Self::LedgerEntryExtensionV1Ext => {
2181                gen.into_root_schema_for::<LedgerEntryExtensionV1Ext>()
2182            }
2183            Self::LedgerEntry => gen.into_root_schema_for::<LedgerEntry>(),
2184            Self::LedgerEntryData => gen.into_root_schema_for::<LedgerEntryData>(),
2185            Self::LedgerEntryExt => gen.into_root_schema_for::<LedgerEntryExt>(),
2186            Self::LedgerKey => gen.into_root_schema_for::<LedgerKey>(),
2187            Self::LedgerKeyAccount => gen.into_root_schema_for::<LedgerKeyAccount>(),
2188            Self::LedgerKeyTrustLine => gen.into_root_schema_for::<LedgerKeyTrustLine>(),
2189            Self::LedgerKeyOffer => gen.into_root_schema_for::<LedgerKeyOffer>(),
2190            Self::LedgerKeyData => gen.into_root_schema_for::<LedgerKeyData>(),
2191            Self::LedgerKeyClaimableBalance => {
2192                gen.into_root_schema_for::<LedgerKeyClaimableBalance>()
2193            }
2194            Self::LedgerKeyLiquidityPool => gen.into_root_schema_for::<LedgerKeyLiquidityPool>(),
2195            Self::LedgerKeyContractData => gen.into_root_schema_for::<LedgerKeyContractData>(),
2196            Self::LedgerKeyContractCode => gen.into_root_schema_for::<LedgerKeyContractCode>(),
2197            Self::LedgerKeyConfigSetting => gen.into_root_schema_for::<LedgerKeyConfigSetting>(),
2198            Self::LedgerKeyTtl => gen.into_root_schema_for::<LedgerKeyTtl>(),
2199            Self::EnvelopeType => gen.into_root_schema_for::<EnvelopeType>(),
2200            Self::BucketListType => gen.into_root_schema_for::<BucketListType>(),
2201            Self::BucketEntryType => gen.into_root_schema_for::<BucketEntryType>(),
2202            Self::HotArchiveBucketEntryType => {
2203                gen.into_root_schema_for::<HotArchiveBucketEntryType>()
2204            }
2205            Self::BucketMetadata => gen.into_root_schema_for::<BucketMetadata>(),
2206            Self::BucketMetadataExt => gen.into_root_schema_for::<BucketMetadataExt>(),
2207            Self::BucketEntry => gen.into_root_schema_for::<BucketEntry>(),
2208            Self::HotArchiveBucketEntry => gen.into_root_schema_for::<HotArchiveBucketEntry>(),
2209            Self::UpgradeType => gen.into_root_schema_for::<UpgradeType>(),
2210            Self::StellarValueType => gen.into_root_schema_for::<StellarValueType>(),
2211            Self::LedgerCloseValueSignature => {
2212                gen.into_root_schema_for::<LedgerCloseValueSignature>()
2213            }
2214            Self::StellarValue => gen.into_root_schema_for::<StellarValue>(),
2215            Self::StellarValueExt => gen.into_root_schema_for::<StellarValueExt>(),
2216            #[cfg(feature = "cap_0083")]
2217            Self::StellarValueProposedValue => {
2218                gen.into_root_schema_for::<StellarValueProposedValue>()
2219            }
2220            Self::LedgerHeaderFlags => gen.into_root_schema_for::<LedgerHeaderFlags>(),
2221            Self::LedgerHeaderExtensionV1 => gen.into_root_schema_for::<LedgerHeaderExtensionV1>(),
2222            Self::LedgerHeaderExtensionV1Ext => {
2223                gen.into_root_schema_for::<LedgerHeaderExtensionV1Ext>()
2224            }
2225            Self::LedgerHeader => gen.into_root_schema_for::<LedgerHeader>(),
2226            Self::LedgerHeaderExt => gen.into_root_schema_for::<LedgerHeaderExt>(),
2227            Self::LedgerUpgradeType => gen.into_root_schema_for::<LedgerUpgradeType>(),
2228            Self::ConfigUpgradeSetKey => gen.into_root_schema_for::<ConfigUpgradeSetKey>(),
2229            Self::LedgerUpgrade => gen.into_root_schema_for::<LedgerUpgrade>(),
2230            Self::ConfigUpgradeSet => gen.into_root_schema_for::<ConfigUpgradeSet>(),
2231            Self::TxSetComponentType => gen.into_root_schema_for::<TxSetComponentType>(),
2232            Self::DependentTxCluster => gen.into_root_schema_for::<DependentTxCluster>(),
2233            Self::ParallelTxExecutionStage => {
2234                gen.into_root_schema_for::<ParallelTxExecutionStage>()
2235            }
2236            Self::ParallelTxsComponent => gen.into_root_schema_for::<ParallelTxsComponent>(),
2237            Self::TxSetComponent => gen.into_root_schema_for::<TxSetComponent>(),
2238            Self::TxSetComponentTxsMaybeDiscountedFee => {
2239                gen.into_root_schema_for::<TxSetComponentTxsMaybeDiscountedFee>()
2240            }
2241            Self::TransactionPhase => gen.into_root_schema_for::<TransactionPhase>(),
2242            Self::TransactionSet => gen.into_root_schema_for::<TransactionSet>(),
2243            Self::TransactionSetV1 => gen.into_root_schema_for::<TransactionSetV1>(),
2244            Self::GeneralizedTransactionSet => {
2245                gen.into_root_schema_for::<GeneralizedTransactionSet>()
2246            }
2247            Self::TransactionResultPair => gen.into_root_schema_for::<TransactionResultPair>(),
2248            Self::TransactionResultSet => gen.into_root_schema_for::<TransactionResultSet>(),
2249            Self::TransactionHistoryEntry => gen.into_root_schema_for::<TransactionHistoryEntry>(),
2250            Self::TransactionHistoryEntryExt => {
2251                gen.into_root_schema_for::<TransactionHistoryEntryExt>()
2252            }
2253            Self::TransactionHistoryResultEntry => {
2254                gen.into_root_schema_for::<TransactionHistoryResultEntry>()
2255            }
2256            Self::TransactionHistoryResultEntryExt => {
2257                gen.into_root_schema_for::<TransactionHistoryResultEntryExt>()
2258            }
2259            Self::LedgerHeaderHistoryEntry => {
2260                gen.into_root_schema_for::<LedgerHeaderHistoryEntry>()
2261            }
2262            Self::LedgerHeaderHistoryEntryExt => {
2263                gen.into_root_schema_for::<LedgerHeaderHistoryEntryExt>()
2264            }
2265            Self::LedgerScpMessages => gen.into_root_schema_for::<LedgerScpMessages>(),
2266            Self::ScpHistoryEntryV0 => gen.into_root_schema_for::<ScpHistoryEntryV0>(),
2267            Self::ScpHistoryEntry => gen.into_root_schema_for::<ScpHistoryEntry>(),
2268            Self::LedgerEntryChangeType => gen.into_root_schema_for::<LedgerEntryChangeType>(),
2269            Self::LedgerEntryChange => gen.into_root_schema_for::<LedgerEntryChange>(),
2270            Self::LedgerEntryChanges => gen.into_root_schema_for::<LedgerEntryChanges>(),
2271            Self::OperationMeta => gen.into_root_schema_for::<OperationMeta>(),
2272            Self::TransactionMetaV1 => gen.into_root_schema_for::<TransactionMetaV1>(),
2273            Self::TransactionMetaV2 => gen.into_root_schema_for::<TransactionMetaV2>(),
2274            Self::ContractEventType => gen.into_root_schema_for::<ContractEventType>(),
2275            Self::ContractEvent => gen.into_root_schema_for::<ContractEvent>(),
2276            Self::ContractEventBody => gen.into_root_schema_for::<ContractEventBody>(),
2277            Self::ContractEventV0 => gen.into_root_schema_for::<ContractEventV0>(),
2278            Self::DiagnosticEvent => gen.into_root_schema_for::<DiagnosticEvent>(),
2279            Self::SorobanTransactionMetaExtV1 => {
2280                gen.into_root_schema_for::<SorobanTransactionMetaExtV1>()
2281            }
2282            Self::SorobanTransactionMetaExt => {
2283                gen.into_root_schema_for::<SorobanTransactionMetaExt>()
2284            }
2285            Self::SorobanTransactionMeta => gen.into_root_schema_for::<SorobanTransactionMeta>(),
2286            Self::TransactionMetaV3 => gen.into_root_schema_for::<TransactionMetaV3>(),
2287            Self::OperationMetaV2 => gen.into_root_schema_for::<OperationMetaV2>(),
2288            Self::SorobanTransactionMetaV2 => {
2289                gen.into_root_schema_for::<SorobanTransactionMetaV2>()
2290            }
2291            Self::TransactionEventStage => gen.into_root_schema_for::<TransactionEventStage>(),
2292            Self::TransactionEvent => gen.into_root_schema_for::<TransactionEvent>(),
2293            Self::TransactionMetaV4 => gen.into_root_schema_for::<TransactionMetaV4>(),
2294            Self::InvokeHostFunctionSuccessPreImage => {
2295                gen.into_root_schema_for::<InvokeHostFunctionSuccessPreImage>()
2296            }
2297            Self::TransactionMeta => gen.into_root_schema_for::<TransactionMeta>(),
2298            Self::TransactionResultMeta => gen.into_root_schema_for::<TransactionResultMeta>(),
2299            Self::TransactionResultMetaV1 => gen.into_root_schema_for::<TransactionResultMetaV1>(),
2300            Self::UpgradeEntryMeta => gen.into_root_schema_for::<UpgradeEntryMeta>(),
2301            Self::LedgerCloseMetaV0 => gen.into_root_schema_for::<LedgerCloseMetaV0>(),
2302            Self::LedgerCloseMetaExtV1 => gen.into_root_schema_for::<LedgerCloseMetaExtV1>(),
2303            Self::LedgerCloseMetaExt => gen.into_root_schema_for::<LedgerCloseMetaExt>(),
2304            Self::LedgerCloseMetaV1 => gen.into_root_schema_for::<LedgerCloseMetaV1>(),
2305            Self::LedgerCloseMetaV2 => gen.into_root_schema_for::<LedgerCloseMetaV2>(),
2306            Self::LedgerCloseMeta => gen.into_root_schema_for::<LedgerCloseMeta>(),
2307            Self::ErrorCode => gen.into_root_schema_for::<ErrorCode>(),
2308            Self::SError => gen.into_root_schema_for::<SError>(),
2309            Self::SendMore => gen.into_root_schema_for::<SendMore>(),
2310            Self::SendMoreExtended => gen.into_root_schema_for::<SendMoreExtended>(),
2311            Self::AuthCert => gen.into_root_schema_for::<AuthCert>(),
2312            Self::Hello => gen.into_root_schema_for::<Hello>(),
2313            Self::Auth => gen.into_root_schema_for::<Auth>(),
2314            Self::IpAddrType => gen.into_root_schema_for::<IpAddrType>(),
2315            Self::PeerAddress => gen.into_root_schema_for::<PeerAddress>(),
2316            Self::PeerAddressIp => gen.into_root_schema_for::<PeerAddressIp>(),
2317            Self::MessageType => gen.into_root_schema_for::<MessageType>(),
2318            Self::DontHave => gen.into_root_schema_for::<DontHave>(),
2319            Self::SurveyMessageCommandType => {
2320                gen.into_root_schema_for::<SurveyMessageCommandType>()
2321            }
2322            Self::SurveyMessageResponseType => {
2323                gen.into_root_schema_for::<SurveyMessageResponseType>()
2324            }
2325            Self::TimeSlicedSurveyStartCollectingMessage => {
2326                gen.into_root_schema_for::<TimeSlicedSurveyStartCollectingMessage>()
2327            }
2328            Self::SignedTimeSlicedSurveyStartCollectingMessage => {
2329                gen.into_root_schema_for::<SignedTimeSlicedSurveyStartCollectingMessage>()
2330            }
2331            Self::TimeSlicedSurveyStopCollectingMessage => {
2332                gen.into_root_schema_for::<TimeSlicedSurveyStopCollectingMessage>()
2333            }
2334            Self::SignedTimeSlicedSurveyStopCollectingMessage => {
2335                gen.into_root_schema_for::<SignedTimeSlicedSurveyStopCollectingMessage>()
2336            }
2337            Self::SurveyRequestMessage => gen.into_root_schema_for::<SurveyRequestMessage>(),
2338            Self::TimeSlicedSurveyRequestMessage => {
2339                gen.into_root_schema_for::<TimeSlicedSurveyRequestMessage>()
2340            }
2341            Self::SignedTimeSlicedSurveyRequestMessage => {
2342                gen.into_root_schema_for::<SignedTimeSlicedSurveyRequestMessage>()
2343            }
2344            Self::EncryptedBody => gen.into_root_schema_for::<EncryptedBody>(),
2345            Self::SurveyResponseMessage => gen.into_root_schema_for::<SurveyResponseMessage>(),
2346            Self::TimeSlicedSurveyResponseMessage => {
2347                gen.into_root_schema_for::<TimeSlicedSurveyResponseMessage>()
2348            }
2349            Self::SignedTimeSlicedSurveyResponseMessage => {
2350                gen.into_root_schema_for::<SignedTimeSlicedSurveyResponseMessage>()
2351            }
2352            Self::PeerStats => gen.into_root_schema_for::<PeerStats>(),
2353            Self::TimeSlicedNodeData => gen.into_root_schema_for::<TimeSlicedNodeData>(),
2354            Self::TimeSlicedPeerData => gen.into_root_schema_for::<TimeSlicedPeerData>(),
2355            Self::TimeSlicedPeerDataList => gen.into_root_schema_for::<TimeSlicedPeerDataList>(),
2356            Self::TopologyResponseBodyV2 => gen.into_root_schema_for::<TopologyResponseBodyV2>(),
2357            Self::SurveyResponseBody => gen.into_root_schema_for::<SurveyResponseBody>(),
2358            Self::TxAdvertVector => gen.into_root_schema_for::<TxAdvertVector>(),
2359            Self::FloodAdvert => gen.into_root_schema_for::<FloodAdvert>(),
2360            Self::TxDemandVector => gen.into_root_schema_for::<TxDemandVector>(),
2361            Self::FloodDemand => gen.into_root_schema_for::<FloodDemand>(),
2362            Self::StellarMessage => gen.into_root_schema_for::<StellarMessage>(),
2363            Self::AuthenticatedMessage => gen.into_root_schema_for::<AuthenticatedMessage>(),
2364            Self::AuthenticatedMessageV0 => gen.into_root_schema_for::<AuthenticatedMessageV0>(),
2365            Self::LiquidityPoolParameters => gen.into_root_schema_for::<LiquidityPoolParameters>(),
2366            Self::MuxedAccount => gen.into_root_schema_for::<MuxedAccount>(),
2367            Self::MuxedAccountMed25519 => gen.into_root_schema_for::<MuxedAccountMed25519>(),
2368            Self::DecoratedSignature => gen.into_root_schema_for::<DecoratedSignature>(),
2369            Self::OperationType => gen.into_root_schema_for::<OperationType>(),
2370            Self::CreateAccountOp => gen.into_root_schema_for::<CreateAccountOp>(),
2371            Self::PaymentOp => gen.into_root_schema_for::<PaymentOp>(),
2372            Self::PathPaymentStrictReceiveOp => {
2373                gen.into_root_schema_for::<PathPaymentStrictReceiveOp>()
2374            }
2375            Self::PathPaymentStrictSendOp => gen.into_root_schema_for::<PathPaymentStrictSendOp>(),
2376            Self::ManageSellOfferOp => gen.into_root_schema_for::<ManageSellOfferOp>(),
2377            Self::ManageBuyOfferOp => gen.into_root_schema_for::<ManageBuyOfferOp>(),
2378            Self::CreatePassiveSellOfferOp => {
2379                gen.into_root_schema_for::<CreatePassiveSellOfferOp>()
2380            }
2381            Self::SetOptionsOp => gen.into_root_schema_for::<SetOptionsOp>(),
2382            Self::ChangeTrustAsset => gen.into_root_schema_for::<ChangeTrustAsset>(),
2383            Self::ChangeTrustOp => gen.into_root_schema_for::<ChangeTrustOp>(),
2384            Self::AllowTrustOp => gen.into_root_schema_for::<AllowTrustOp>(),
2385            Self::ManageDataOp => gen.into_root_schema_for::<ManageDataOp>(),
2386            Self::BumpSequenceOp => gen.into_root_schema_for::<BumpSequenceOp>(),
2387            Self::CreateClaimableBalanceOp => {
2388                gen.into_root_schema_for::<CreateClaimableBalanceOp>()
2389            }
2390            Self::ClaimClaimableBalanceOp => gen.into_root_schema_for::<ClaimClaimableBalanceOp>(),
2391            Self::BeginSponsoringFutureReservesOp => {
2392                gen.into_root_schema_for::<BeginSponsoringFutureReservesOp>()
2393            }
2394            Self::RevokeSponsorshipType => gen.into_root_schema_for::<RevokeSponsorshipType>(),
2395            Self::RevokeSponsorshipOp => gen.into_root_schema_for::<RevokeSponsorshipOp>(),
2396            Self::RevokeSponsorshipOpSigner => {
2397                gen.into_root_schema_for::<RevokeSponsorshipOpSigner>()
2398            }
2399            Self::ClawbackOp => gen.into_root_schema_for::<ClawbackOp>(),
2400            Self::ClawbackClaimableBalanceOp => {
2401                gen.into_root_schema_for::<ClawbackClaimableBalanceOp>()
2402            }
2403            Self::SetTrustLineFlagsOp => gen.into_root_schema_for::<SetTrustLineFlagsOp>(),
2404            Self::LiquidityPoolDepositOp => gen.into_root_schema_for::<LiquidityPoolDepositOp>(),
2405            Self::LiquidityPoolWithdrawOp => gen.into_root_schema_for::<LiquidityPoolWithdrawOp>(),
2406            Self::HostFunctionType => gen.into_root_schema_for::<HostFunctionType>(),
2407            Self::ContractIdPreimageType => gen.into_root_schema_for::<ContractIdPreimageType>(),
2408            Self::ContractIdPreimage => gen.into_root_schema_for::<ContractIdPreimage>(),
2409            Self::ContractIdPreimageFromAddress => {
2410                gen.into_root_schema_for::<ContractIdPreimageFromAddress>()
2411            }
2412            Self::CreateContractArgs => gen.into_root_schema_for::<CreateContractArgs>(),
2413            Self::CreateContractArgsV2 => gen.into_root_schema_for::<CreateContractArgsV2>(),
2414            Self::InvokeContractArgs => gen.into_root_schema_for::<InvokeContractArgs>(),
2415            Self::HostFunction => gen.into_root_schema_for::<HostFunction>(),
2416            Self::SorobanAuthorizedFunctionType => {
2417                gen.into_root_schema_for::<SorobanAuthorizedFunctionType>()
2418            }
2419            Self::SorobanAuthorizedFunction => {
2420                gen.into_root_schema_for::<SorobanAuthorizedFunction>()
2421            }
2422            Self::SorobanAuthorizedInvocation => {
2423                gen.into_root_schema_for::<SorobanAuthorizedInvocation>()
2424            }
2425            Self::SorobanAddressCredentials => {
2426                gen.into_root_schema_for::<SorobanAddressCredentials>()
2427            }
2428            Self::SorobanDelegateSignature => {
2429                gen.into_root_schema_for::<SorobanDelegateSignature>()
2430            }
2431            Self::SorobanAddressCredentialsWithDelegates => {
2432                gen.into_root_schema_for::<SorobanAddressCredentialsWithDelegates>()
2433            }
2434            Self::SorobanCredentialsType => gen.into_root_schema_for::<SorobanCredentialsType>(),
2435            Self::SorobanCredentials => gen.into_root_schema_for::<SorobanCredentials>(),
2436            Self::SorobanAuthorizationEntry => {
2437                gen.into_root_schema_for::<SorobanAuthorizationEntry>()
2438            }
2439            Self::SorobanAuthorizationEntries => {
2440                gen.into_root_schema_for::<SorobanAuthorizationEntries>()
2441            }
2442            Self::InvokeHostFunctionOp => gen.into_root_schema_for::<InvokeHostFunctionOp>(),
2443            Self::ExtendFootprintTtlOp => gen.into_root_schema_for::<ExtendFootprintTtlOp>(),
2444            Self::RestoreFootprintOp => gen.into_root_schema_for::<RestoreFootprintOp>(),
2445            Self::Operation => gen.into_root_schema_for::<Operation>(),
2446            Self::OperationBody => gen.into_root_schema_for::<OperationBody>(),
2447            Self::HashIdPreimage => gen.into_root_schema_for::<HashIdPreimage>(),
2448            Self::HashIdPreimageOperationId => {
2449                gen.into_root_schema_for::<HashIdPreimageOperationId>()
2450            }
2451            Self::HashIdPreimageRevokeId => gen.into_root_schema_for::<HashIdPreimageRevokeId>(),
2452            Self::HashIdPreimageContractId => {
2453                gen.into_root_schema_for::<HashIdPreimageContractId>()
2454            }
2455            Self::HashIdPreimageSorobanAuthorization => {
2456                gen.into_root_schema_for::<HashIdPreimageSorobanAuthorization>()
2457            }
2458            Self::HashIdPreimageSorobanAuthorizationWithAddress => {
2459                gen.into_root_schema_for::<HashIdPreimageSorobanAuthorizationWithAddress>()
2460            }
2461            Self::MemoType => gen.into_root_schema_for::<MemoType>(),
2462            Self::Memo => gen.into_root_schema_for::<Memo>(),
2463            Self::TimeBounds => gen.into_root_schema_for::<TimeBounds>(),
2464            Self::LedgerBounds => gen.into_root_schema_for::<LedgerBounds>(),
2465            Self::PreconditionsV2 => gen.into_root_schema_for::<PreconditionsV2>(),
2466            Self::PreconditionType => gen.into_root_schema_for::<PreconditionType>(),
2467            Self::Preconditions => gen.into_root_schema_for::<Preconditions>(),
2468            Self::LedgerFootprint => gen.into_root_schema_for::<LedgerFootprint>(),
2469            Self::SorobanResources => gen.into_root_schema_for::<SorobanResources>(),
2470            Self::SorobanResourcesExtV0 => gen.into_root_schema_for::<SorobanResourcesExtV0>(),
2471            Self::SorobanTransactionData => gen.into_root_schema_for::<SorobanTransactionData>(),
2472            Self::SorobanTransactionDataExt => {
2473                gen.into_root_schema_for::<SorobanTransactionDataExt>()
2474            }
2475            Self::TransactionV0 => gen.into_root_schema_for::<TransactionV0>(),
2476            Self::TransactionV0Ext => gen.into_root_schema_for::<TransactionV0Ext>(),
2477            Self::TransactionV0Envelope => gen.into_root_schema_for::<TransactionV0Envelope>(),
2478            Self::Transaction => gen.into_root_schema_for::<Transaction>(),
2479            Self::TransactionExt => gen.into_root_schema_for::<TransactionExt>(),
2480            Self::TransactionV1Envelope => gen.into_root_schema_for::<TransactionV1Envelope>(),
2481            Self::FeeBumpTransaction => gen.into_root_schema_for::<FeeBumpTransaction>(),
2482            Self::FeeBumpTransactionInnerTx => {
2483                gen.into_root_schema_for::<FeeBumpTransactionInnerTx>()
2484            }
2485            Self::FeeBumpTransactionExt => gen.into_root_schema_for::<FeeBumpTransactionExt>(),
2486            Self::FeeBumpTransactionEnvelope => {
2487                gen.into_root_schema_for::<FeeBumpTransactionEnvelope>()
2488            }
2489            Self::TransactionEnvelope => gen.into_root_schema_for::<TransactionEnvelope>(),
2490            Self::TransactionSignaturePayload => {
2491                gen.into_root_schema_for::<TransactionSignaturePayload>()
2492            }
2493            Self::TransactionSignaturePayloadTaggedTransaction => {
2494                gen.into_root_schema_for::<TransactionSignaturePayloadTaggedTransaction>()
2495            }
2496            Self::ClaimAtomType => gen.into_root_schema_for::<ClaimAtomType>(),
2497            Self::ClaimOfferAtomV0 => gen.into_root_schema_for::<ClaimOfferAtomV0>(),
2498            Self::ClaimOfferAtom => gen.into_root_schema_for::<ClaimOfferAtom>(),
2499            Self::ClaimLiquidityAtom => gen.into_root_schema_for::<ClaimLiquidityAtom>(),
2500            Self::ClaimAtom => gen.into_root_schema_for::<ClaimAtom>(),
2501            Self::CreateAccountResultCode => gen.into_root_schema_for::<CreateAccountResultCode>(),
2502            Self::CreateAccountResult => gen.into_root_schema_for::<CreateAccountResult>(),
2503            Self::PaymentResultCode => gen.into_root_schema_for::<PaymentResultCode>(),
2504            Self::PaymentResult => gen.into_root_schema_for::<PaymentResult>(),
2505            Self::PathPaymentStrictReceiveResultCode => {
2506                gen.into_root_schema_for::<PathPaymentStrictReceiveResultCode>()
2507            }
2508            Self::SimplePaymentResult => gen.into_root_schema_for::<SimplePaymentResult>(),
2509            Self::PathPaymentStrictReceiveResult => {
2510                gen.into_root_schema_for::<PathPaymentStrictReceiveResult>()
2511            }
2512            Self::PathPaymentStrictReceiveResultSuccess => {
2513                gen.into_root_schema_for::<PathPaymentStrictReceiveResultSuccess>()
2514            }
2515            Self::PathPaymentStrictSendResultCode => {
2516                gen.into_root_schema_for::<PathPaymentStrictSendResultCode>()
2517            }
2518            Self::PathPaymentStrictSendResult => {
2519                gen.into_root_schema_for::<PathPaymentStrictSendResult>()
2520            }
2521            Self::PathPaymentStrictSendResultSuccess => {
2522                gen.into_root_schema_for::<PathPaymentStrictSendResultSuccess>()
2523            }
2524            Self::ManageSellOfferResultCode => {
2525                gen.into_root_schema_for::<ManageSellOfferResultCode>()
2526            }
2527            Self::ManageOfferEffect => gen.into_root_schema_for::<ManageOfferEffect>(),
2528            Self::ManageOfferSuccessResult => {
2529                gen.into_root_schema_for::<ManageOfferSuccessResult>()
2530            }
2531            Self::ManageOfferSuccessResultOffer => {
2532                gen.into_root_schema_for::<ManageOfferSuccessResultOffer>()
2533            }
2534            Self::ManageSellOfferResult => gen.into_root_schema_for::<ManageSellOfferResult>(),
2535            Self::ManageBuyOfferResultCode => {
2536                gen.into_root_schema_for::<ManageBuyOfferResultCode>()
2537            }
2538            Self::ManageBuyOfferResult => gen.into_root_schema_for::<ManageBuyOfferResult>(),
2539            Self::SetOptionsResultCode => gen.into_root_schema_for::<SetOptionsResultCode>(),
2540            Self::SetOptionsResult => gen.into_root_schema_for::<SetOptionsResult>(),
2541            Self::ChangeTrustResultCode => gen.into_root_schema_for::<ChangeTrustResultCode>(),
2542            Self::ChangeTrustResult => gen.into_root_schema_for::<ChangeTrustResult>(),
2543            Self::AllowTrustResultCode => gen.into_root_schema_for::<AllowTrustResultCode>(),
2544            Self::AllowTrustResult => gen.into_root_schema_for::<AllowTrustResult>(),
2545            Self::AccountMergeResultCode => gen.into_root_schema_for::<AccountMergeResultCode>(),
2546            Self::AccountMergeResult => gen.into_root_schema_for::<AccountMergeResult>(),
2547            Self::InflationResultCode => gen.into_root_schema_for::<InflationResultCode>(),
2548            Self::InflationPayout => gen.into_root_schema_for::<InflationPayout>(),
2549            Self::InflationResult => gen.into_root_schema_for::<InflationResult>(),
2550            Self::ManageDataResultCode => gen.into_root_schema_for::<ManageDataResultCode>(),
2551            Self::ManageDataResult => gen.into_root_schema_for::<ManageDataResult>(),
2552            Self::BumpSequenceResultCode => gen.into_root_schema_for::<BumpSequenceResultCode>(),
2553            Self::BumpSequenceResult => gen.into_root_schema_for::<BumpSequenceResult>(),
2554            Self::CreateClaimableBalanceResultCode => {
2555                gen.into_root_schema_for::<CreateClaimableBalanceResultCode>()
2556            }
2557            Self::CreateClaimableBalanceResult => {
2558                gen.into_root_schema_for::<CreateClaimableBalanceResult>()
2559            }
2560            Self::ClaimClaimableBalanceResultCode => {
2561                gen.into_root_schema_for::<ClaimClaimableBalanceResultCode>()
2562            }
2563            Self::ClaimClaimableBalanceResult => {
2564                gen.into_root_schema_for::<ClaimClaimableBalanceResult>()
2565            }
2566            Self::BeginSponsoringFutureReservesResultCode => {
2567                gen.into_root_schema_for::<BeginSponsoringFutureReservesResultCode>()
2568            }
2569            Self::BeginSponsoringFutureReservesResult => {
2570                gen.into_root_schema_for::<BeginSponsoringFutureReservesResult>()
2571            }
2572            Self::EndSponsoringFutureReservesResultCode => {
2573                gen.into_root_schema_for::<EndSponsoringFutureReservesResultCode>()
2574            }
2575            Self::EndSponsoringFutureReservesResult => {
2576                gen.into_root_schema_for::<EndSponsoringFutureReservesResult>()
2577            }
2578            Self::RevokeSponsorshipResultCode => {
2579                gen.into_root_schema_for::<RevokeSponsorshipResultCode>()
2580            }
2581            Self::RevokeSponsorshipResult => gen.into_root_schema_for::<RevokeSponsorshipResult>(),
2582            Self::ClawbackResultCode => gen.into_root_schema_for::<ClawbackResultCode>(),
2583            Self::ClawbackResult => gen.into_root_schema_for::<ClawbackResult>(),
2584            Self::ClawbackClaimableBalanceResultCode => {
2585                gen.into_root_schema_for::<ClawbackClaimableBalanceResultCode>()
2586            }
2587            Self::ClawbackClaimableBalanceResult => {
2588                gen.into_root_schema_for::<ClawbackClaimableBalanceResult>()
2589            }
2590            Self::SetTrustLineFlagsResultCode => {
2591                gen.into_root_schema_for::<SetTrustLineFlagsResultCode>()
2592            }
2593            Self::SetTrustLineFlagsResult => gen.into_root_schema_for::<SetTrustLineFlagsResult>(),
2594            Self::LiquidityPoolDepositResultCode => {
2595                gen.into_root_schema_for::<LiquidityPoolDepositResultCode>()
2596            }
2597            Self::LiquidityPoolDepositResult => {
2598                gen.into_root_schema_for::<LiquidityPoolDepositResult>()
2599            }
2600            Self::LiquidityPoolWithdrawResultCode => {
2601                gen.into_root_schema_for::<LiquidityPoolWithdrawResultCode>()
2602            }
2603            Self::LiquidityPoolWithdrawResult => {
2604                gen.into_root_schema_for::<LiquidityPoolWithdrawResult>()
2605            }
2606            Self::InvokeHostFunctionResultCode => {
2607                gen.into_root_schema_for::<InvokeHostFunctionResultCode>()
2608            }
2609            Self::InvokeHostFunctionResult => {
2610                gen.into_root_schema_for::<InvokeHostFunctionResult>()
2611            }
2612            Self::ExtendFootprintTtlResultCode => {
2613                gen.into_root_schema_for::<ExtendFootprintTtlResultCode>()
2614            }
2615            Self::ExtendFootprintTtlResult => {
2616                gen.into_root_schema_for::<ExtendFootprintTtlResult>()
2617            }
2618            Self::RestoreFootprintResultCode => {
2619                gen.into_root_schema_for::<RestoreFootprintResultCode>()
2620            }
2621            Self::RestoreFootprintResult => gen.into_root_schema_for::<RestoreFootprintResult>(),
2622            Self::OperationResultCode => gen.into_root_schema_for::<OperationResultCode>(),
2623            Self::OperationResult => gen.into_root_schema_for::<OperationResult>(),
2624            Self::OperationResultTr => gen.into_root_schema_for::<OperationResultTr>(),
2625            Self::TransactionResultCode => gen.into_root_schema_for::<TransactionResultCode>(),
2626            Self::InnerTransactionResult => gen.into_root_schema_for::<InnerTransactionResult>(),
2627            Self::InnerTransactionResultResult => {
2628                gen.into_root_schema_for::<InnerTransactionResultResult>()
2629            }
2630            Self::InnerTransactionResultExt => {
2631                gen.into_root_schema_for::<InnerTransactionResultExt>()
2632            }
2633            Self::InnerTransactionResultPair => {
2634                gen.into_root_schema_for::<InnerTransactionResultPair>()
2635            }
2636            Self::TransactionResult => gen.into_root_schema_for::<TransactionResult>(),
2637            Self::TransactionResultResult => gen.into_root_schema_for::<TransactionResultResult>(),
2638            Self::TransactionResultExt => gen.into_root_schema_for::<TransactionResultExt>(),
2639            Self::Hash => gen.into_root_schema_for::<Hash>(),
2640            Self::Uint256 => gen.into_root_schema_for::<Uint256>(),
2641            Self::Uint32 => gen.into_root_schema_for::<Uint32>(),
2642            Self::Int32 => gen.into_root_schema_for::<Int32>(),
2643            Self::Uint64 => gen.into_root_schema_for::<Uint64>(),
2644            Self::Int64 => gen.into_root_schema_for::<Int64>(),
2645            Self::TimePoint => gen.into_root_schema_for::<TimePoint>(),
2646            Self::Duration => gen.into_root_schema_for::<Duration>(),
2647            Self::ExtensionPoint => gen.into_root_schema_for::<ExtensionPoint>(),
2648            Self::CryptoKeyType => gen.into_root_schema_for::<CryptoKeyType>(),
2649            Self::PublicKeyType => gen.into_root_schema_for::<PublicKeyType>(),
2650            Self::SignerKeyType => gen.into_root_schema_for::<SignerKeyType>(),
2651            Self::PublicKey => gen.into_root_schema_for::<PublicKey>(),
2652            Self::SignerKey => gen.into_root_schema_for::<SignerKey>(),
2653            Self::SignerKeyEd25519SignedPayload => {
2654                gen.into_root_schema_for::<SignerKeyEd25519SignedPayload>()
2655            }
2656            Self::Signature => gen.into_root_schema_for::<Signature>(),
2657            Self::SignatureHint => gen.into_root_schema_for::<SignatureHint>(),
2658            Self::NodeId => gen.into_root_schema_for::<NodeId>(),
2659            Self::AccountId => gen.into_root_schema_for::<AccountId>(),
2660            Self::ContractId => gen.into_root_schema_for::<ContractId>(),
2661            Self::Curve25519Secret => gen.into_root_schema_for::<Curve25519Secret>(),
2662            Self::Curve25519Public => gen.into_root_schema_for::<Curve25519Public>(),
2663            Self::HmacSha256Key => gen.into_root_schema_for::<HmacSha256Key>(),
2664            Self::HmacSha256Mac => gen.into_root_schema_for::<HmacSha256Mac>(),
2665            Self::ShortHashSeed => gen.into_root_schema_for::<ShortHashSeed>(),
2666            Self::BinaryFuseFilterType => gen.into_root_schema_for::<BinaryFuseFilterType>(),
2667            Self::SerializedBinaryFuseFilter => {
2668                gen.into_root_schema_for::<SerializedBinaryFuseFilter>()
2669            }
2670            Self::PoolId => gen.into_root_schema_for::<PoolId>(),
2671            Self::ClaimableBalanceIdType => gen.into_root_schema_for::<ClaimableBalanceIdType>(),
2672            Self::ClaimableBalanceId => gen.into_root_schema_for::<ClaimableBalanceId>(),
2673            #[cfg(feature = "test_feature")]
2674            Self::TestNextType => gen.into_root_schema_for::<TestNextType>(),
2675        }
2676    }
2677}
2678
2679#[cfg(feature = "type_enum")]
2680impl Name for TypeVariant {
2681    #[must_use]
2682    fn name(&self) -> &'static str {
2683        Self::name(self)
2684    }
2685}
2686
2687#[cfg(feature = "type_enum")]
2688impl Variants<TypeVariant> for TypeVariant {
2689    fn variants() -> slice::Iter<'static, TypeVariant> {
2690        Self::VARIANTS.iter()
2691    }
2692}
2693
2694#[cfg(feature = "type_enum")]
2695impl core::str::FromStr for TypeVariant {
2696    type Err = Error;
2697    #[allow(clippy::too_many_lines)]
2698    fn from_str(s: &str) -> Result<Self, Error> {
2699        match s {
2700            "Value" => Ok(Self::Value),
2701            "ScpBallot" => Ok(Self::ScpBallot),
2702            "ScpStatementType" => Ok(Self::ScpStatementType),
2703            "ScpNomination" => Ok(Self::ScpNomination),
2704            "ScpStatement" => Ok(Self::ScpStatement),
2705            "ScpStatementPledges" => Ok(Self::ScpStatementPledges),
2706            "ScpStatementPrepare" => Ok(Self::ScpStatementPrepare),
2707            "ScpStatementConfirm" => Ok(Self::ScpStatementConfirm),
2708            "ScpStatementExternalize" => Ok(Self::ScpStatementExternalize),
2709            "ScpEnvelope" => Ok(Self::ScpEnvelope),
2710            "ScpQuorumSet" => Ok(Self::ScpQuorumSet),
2711            "EncodedLedgerKey" => Ok(Self::EncodedLedgerKey),
2712            "ConfigSettingContractExecutionLanesV0" => {
2713                Ok(Self::ConfigSettingContractExecutionLanesV0)
2714            }
2715            "ConfigSettingContractComputeV0" => Ok(Self::ConfigSettingContractComputeV0),
2716            "ConfigSettingContractParallelComputeV0" => {
2717                Ok(Self::ConfigSettingContractParallelComputeV0)
2718            }
2719            "ConfigSettingContractLedgerCostV0" => Ok(Self::ConfigSettingContractLedgerCostV0),
2720            "ConfigSettingContractLedgerCostExtV0" => {
2721                Ok(Self::ConfigSettingContractLedgerCostExtV0)
2722            }
2723            "ConfigSettingContractHistoricalDataV0" => {
2724                Ok(Self::ConfigSettingContractHistoricalDataV0)
2725            }
2726            "ConfigSettingContractEventsV0" => Ok(Self::ConfigSettingContractEventsV0),
2727            "ConfigSettingContractBandwidthV0" => Ok(Self::ConfigSettingContractBandwidthV0),
2728            "ContractCostType" => Ok(Self::ContractCostType),
2729            "ContractCostParamEntry" => Ok(Self::ContractCostParamEntry),
2730            "StateArchivalSettings" => Ok(Self::StateArchivalSettings),
2731            "EvictionIterator" => Ok(Self::EvictionIterator),
2732            "ConfigSettingScpTiming" => Ok(Self::ConfigSettingScpTiming),
2733            "FrozenLedgerKeys" => Ok(Self::FrozenLedgerKeys),
2734            "FrozenLedgerKeysDelta" => Ok(Self::FrozenLedgerKeysDelta),
2735            "FreezeBypassTxs" => Ok(Self::FreezeBypassTxs),
2736            "FreezeBypassTxsDelta" => Ok(Self::FreezeBypassTxsDelta),
2737            "ContractCostParams" => Ok(Self::ContractCostParams),
2738            "ConfigSettingId" => Ok(Self::ConfigSettingId),
2739            "ConfigSettingEntry" => Ok(Self::ConfigSettingEntry),
2740            "ScEnvMetaKind" => Ok(Self::ScEnvMetaKind),
2741            "ScEnvMetaEntry" => Ok(Self::ScEnvMetaEntry),
2742            "ScEnvMetaEntryInterfaceVersion" => Ok(Self::ScEnvMetaEntryInterfaceVersion),
2743            "ScMetaV0" => Ok(Self::ScMetaV0),
2744            "ScMetaKind" => Ok(Self::ScMetaKind),
2745            "ScMetaEntry" => Ok(Self::ScMetaEntry),
2746            "ScSpecType" => Ok(Self::ScSpecType),
2747            "ScSpecTypeOption" => Ok(Self::ScSpecTypeOption),
2748            "ScSpecTypeResult" => Ok(Self::ScSpecTypeResult),
2749            "ScSpecTypeVec" => Ok(Self::ScSpecTypeVec),
2750            "ScSpecTypeMap" => Ok(Self::ScSpecTypeMap),
2751            "ScSpecTypeTuple" => Ok(Self::ScSpecTypeTuple),
2752            "ScSpecTypeBytesN" => Ok(Self::ScSpecTypeBytesN),
2753            "ScSpecTypeUdt" => Ok(Self::ScSpecTypeUdt),
2754            "ScSpecTypeDef" => Ok(Self::ScSpecTypeDef),
2755            "ScSpecUdtStructFieldV0" => Ok(Self::ScSpecUdtStructFieldV0),
2756            "ScSpecUdtStructV0" => Ok(Self::ScSpecUdtStructV0),
2757            "ScSpecUdtUnionCaseVoidV0" => Ok(Self::ScSpecUdtUnionCaseVoidV0),
2758            "ScSpecUdtUnionCaseTupleV0" => Ok(Self::ScSpecUdtUnionCaseTupleV0),
2759            "ScSpecUdtUnionCaseV0Kind" => Ok(Self::ScSpecUdtUnionCaseV0Kind),
2760            "ScSpecUdtUnionCaseV0" => Ok(Self::ScSpecUdtUnionCaseV0),
2761            "ScSpecUdtUnionV0" => Ok(Self::ScSpecUdtUnionV0),
2762            "ScSpecUdtEnumCaseV0" => Ok(Self::ScSpecUdtEnumCaseV0),
2763            "ScSpecUdtEnumV0" => Ok(Self::ScSpecUdtEnumV0),
2764            "ScSpecUdtErrorEnumCaseV0" => Ok(Self::ScSpecUdtErrorEnumCaseV0),
2765            "ScSpecUdtErrorEnumV0" => Ok(Self::ScSpecUdtErrorEnumV0),
2766            "ScSpecFunctionInputV0" => Ok(Self::ScSpecFunctionInputV0),
2767            "ScSpecFunctionV0" => Ok(Self::ScSpecFunctionV0),
2768            "ScSpecEventParamLocationV0" => Ok(Self::ScSpecEventParamLocationV0),
2769            "ScSpecEventParamV0" => Ok(Self::ScSpecEventParamV0),
2770            "ScSpecEventDataFormat" => Ok(Self::ScSpecEventDataFormat),
2771            "ScSpecEventV0" => Ok(Self::ScSpecEventV0),
2772            "ScSpecEntryKind" => Ok(Self::ScSpecEntryKind),
2773            "ScSpecEntry" => Ok(Self::ScSpecEntry),
2774            "ScValType" => Ok(Self::ScValType),
2775            "ScErrorType" => Ok(Self::ScErrorType),
2776            "ScErrorCode" => Ok(Self::ScErrorCode),
2777            "ScError" => Ok(Self::ScError),
2778            "UInt128Parts" => Ok(Self::UInt128Parts),
2779            "Int128Parts" => Ok(Self::Int128Parts),
2780            "UInt256Parts" => Ok(Self::UInt256Parts),
2781            "Int256Parts" => Ok(Self::Int256Parts),
2782            "ContractExecutableType" => Ok(Self::ContractExecutableType),
2783            "ContractExecutable" => Ok(Self::ContractExecutable),
2784            "ScAddressType" => Ok(Self::ScAddressType),
2785            "MuxedEd25519Account" => Ok(Self::MuxedEd25519Account),
2786            "ScAddress" => Ok(Self::ScAddress),
2787            "ScVec" => Ok(Self::ScVec),
2788            "ScMap" => Ok(Self::ScMap),
2789            "ScBytes" => Ok(Self::ScBytes),
2790            "ScString" => Ok(Self::ScString),
2791            "ScSymbol" => Ok(Self::ScSymbol),
2792            "ScNonceKey" => Ok(Self::ScNonceKey),
2793            "ScContractInstance" => Ok(Self::ScContractInstance),
2794            "ScVal" => Ok(Self::ScVal),
2795            "ScMapEntry" => Ok(Self::ScMapEntry),
2796            "LedgerCloseMetaBatch" => Ok(Self::LedgerCloseMetaBatch),
2797            "StoredTransactionSet" => Ok(Self::StoredTransactionSet),
2798            "StoredDebugTransactionSet" => Ok(Self::StoredDebugTransactionSet),
2799            "PersistedScpStateV0" => Ok(Self::PersistedScpStateV0),
2800            "PersistedScpStateV1" => Ok(Self::PersistedScpStateV1),
2801            "PersistedScpState" => Ok(Self::PersistedScpState),
2802            "Thresholds" => Ok(Self::Thresholds),
2803            "String32" => Ok(Self::String32),
2804            "String64" => Ok(Self::String64),
2805            "SequenceNumber" => Ok(Self::SequenceNumber),
2806            "DataValue" => Ok(Self::DataValue),
2807            "AssetCode4" => Ok(Self::AssetCode4),
2808            "AssetCode12" => Ok(Self::AssetCode12),
2809            "AssetType" => Ok(Self::AssetType),
2810            "AssetCode" => Ok(Self::AssetCode),
2811            "AlphaNum4" => Ok(Self::AlphaNum4),
2812            "AlphaNum12" => Ok(Self::AlphaNum12),
2813            "Asset" => Ok(Self::Asset),
2814            "Price" => Ok(Self::Price),
2815            "Liabilities" => Ok(Self::Liabilities),
2816            "ThresholdIndexes" => Ok(Self::ThresholdIndexes),
2817            "LedgerEntryType" => Ok(Self::LedgerEntryType),
2818            "Signer" => Ok(Self::Signer),
2819            "AccountFlags" => Ok(Self::AccountFlags),
2820            "SponsorshipDescriptor" => Ok(Self::SponsorshipDescriptor),
2821            "AccountEntryExtensionV3" => Ok(Self::AccountEntryExtensionV3),
2822            "AccountEntryExtensionV2" => Ok(Self::AccountEntryExtensionV2),
2823            "AccountEntryExtensionV2Ext" => Ok(Self::AccountEntryExtensionV2Ext),
2824            "AccountEntryExtensionV1" => Ok(Self::AccountEntryExtensionV1),
2825            "AccountEntryExtensionV1Ext" => Ok(Self::AccountEntryExtensionV1Ext),
2826            "AccountEntry" => Ok(Self::AccountEntry),
2827            "AccountEntryExt" => Ok(Self::AccountEntryExt),
2828            "TrustLineFlags" => Ok(Self::TrustLineFlags),
2829            "LiquidityPoolType" => Ok(Self::LiquidityPoolType),
2830            "TrustLineAsset" => Ok(Self::TrustLineAsset),
2831            "TrustLineEntryExtensionV2" => Ok(Self::TrustLineEntryExtensionV2),
2832            "TrustLineEntryExtensionV2Ext" => Ok(Self::TrustLineEntryExtensionV2Ext),
2833            "TrustLineEntry" => Ok(Self::TrustLineEntry),
2834            "TrustLineEntryExt" => Ok(Self::TrustLineEntryExt),
2835            "TrustLineEntryV1" => Ok(Self::TrustLineEntryV1),
2836            "TrustLineEntryV1Ext" => Ok(Self::TrustLineEntryV1Ext),
2837            "OfferEntryFlags" => Ok(Self::OfferEntryFlags),
2838            "OfferEntry" => Ok(Self::OfferEntry),
2839            "OfferEntryExt" => Ok(Self::OfferEntryExt),
2840            "DataEntry" => Ok(Self::DataEntry),
2841            "DataEntryExt" => Ok(Self::DataEntryExt),
2842            "ClaimPredicateType" => Ok(Self::ClaimPredicateType),
2843            "ClaimPredicate" => Ok(Self::ClaimPredicate),
2844            "ClaimantType" => Ok(Self::ClaimantType),
2845            "Claimant" => Ok(Self::Claimant),
2846            "ClaimantV0" => Ok(Self::ClaimantV0),
2847            "ClaimableBalanceFlags" => Ok(Self::ClaimableBalanceFlags),
2848            "ClaimableBalanceEntryExtensionV1" => Ok(Self::ClaimableBalanceEntryExtensionV1),
2849            "ClaimableBalanceEntryExtensionV1Ext" => Ok(Self::ClaimableBalanceEntryExtensionV1Ext),
2850            "ClaimableBalanceEntry" => Ok(Self::ClaimableBalanceEntry),
2851            "ClaimableBalanceEntryExt" => Ok(Self::ClaimableBalanceEntryExt),
2852            "LiquidityPoolConstantProductParameters" => {
2853                Ok(Self::LiquidityPoolConstantProductParameters)
2854            }
2855            "LiquidityPoolEntry" => Ok(Self::LiquidityPoolEntry),
2856            "LiquidityPoolEntryBody" => Ok(Self::LiquidityPoolEntryBody),
2857            "LiquidityPoolEntryConstantProduct" => Ok(Self::LiquidityPoolEntryConstantProduct),
2858            "ContractDataDurability" => Ok(Self::ContractDataDurability),
2859            "ContractDataEntry" => Ok(Self::ContractDataEntry),
2860            "ContractCodeCostInputs" => Ok(Self::ContractCodeCostInputs),
2861            "ContractCodeEntry" => Ok(Self::ContractCodeEntry),
2862            "ContractCodeEntryExt" => Ok(Self::ContractCodeEntryExt),
2863            "ContractCodeEntryV1" => Ok(Self::ContractCodeEntryV1),
2864            "TtlEntry" => Ok(Self::TtlEntry),
2865            "LedgerEntryExtensionV1" => Ok(Self::LedgerEntryExtensionV1),
2866            "LedgerEntryExtensionV1Ext" => Ok(Self::LedgerEntryExtensionV1Ext),
2867            "LedgerEntry" => Ok(Self::LedgerEntry),
2868            "LedgerEntryData" => Ok(Self::LedgerEntryData),
2869            "LedgerEntryExt" => Ok(Self::LedgerEntryExt),
2870            "LedgerKey" => Ok(Self::LedgerKey),
2871            "LedgerKeyAccount" => Ok(Self::LedgerKeyAccount),
2872            "LedgerKeyTrustLine" => Ok(Self::LedgerKeyTrustLine),
2873            "LedgerKeyOffer" => Ok(Self::LedgerKeyOffer),
2874            "LedgerKeyData" => Ok(Self::LedgerKeyData),
2875            "LedgerKeyClaimableBalance" => Ok(Self::LedgerKeyClaimableBalance),
2876            "LedgerKeyLiquidityPool" => Ok(Self::LedgerKeyLiquidityPool),
2877            "LedgerKeyContractData" => Ok(Self::LedgerKeyContractData),
2878            "LedgerKeyContractCode" => Ok(Self::LedgerKeyContractCode),
2879            "LedgerKeyConfigSetting" => Ok(Self::LedgerKeyConfigSetting),
2880            "LedgerKeyTtl" => Ok(Self::LedgerKeyTtl),
2881            "EnvelopeType" => Ok(Self::EnvelopeType),
2882            "BucketListType" => Ok(Self::BucketListType),
2883            "BucketEntryType" => Ok(Self::BucketEntryType),
2884            "HotArchiveBucketEntryType" => Ok(Self::HotArchiveBucketEntryType),
2885            "BucketMetadata" => Ok(Self::BucketMetadata),
2886            "BucketMetadataExt" => Ok(Self::BucketMetadataExt),
2887            "BucketEntry" => Ok(Self::BucketEntry),
2888            "HotArchiveBucketEntry" => Ok(Self::HotArchiveBucketEntry),
2889            "UpgradeType" => Ok(Self::UpgradeType),
2890            "StellarValueType" => Ok(Self::StellarValueType),
2891            "LedgerCloseValueSignature" => Ok(Self::LedgerCloseValueSignature),
2892            "StellarValue" => Ok(Self::StellarValue),
2893            "StellarValueExt" => Ok(Self::StellarValueExt),
2894            #[cfg(feature = "cap_0083")]
2895            "StellarValueProposedValue" => Ok(Self::StellarValueProposedValue),
2896            "LedgerHeaderFlags" => Ok(Self::LedgerHeaderFlags),
2897            "LedgerHeaderExtensionV1" => Ok(Self::LedgerHeaderExtensionV1),
2898            "LedgerHeaderExtensionV1Ext" => Ok(Self::LedgerHeaderExtensionV1Ext),
2899            "LedgerHeader" => Ok(Self::LedgerHeader),
2900            "LedgerHeaderExt" => Ok(Self::LedgerHeaderExt),
2901            "LedgerUpgradeType" => Ok(Self::LedgerUpgradeType),
2902            "ConfigUpgradeSetKey" => Ok(Self::ConfigUpgradeSetKey),
2903            "LedgerUpgrade" => Ok(Self::LedgerUpgrade),
2904            "ConfigUpgradeSet" => Ok(Self::ConfigUpgradeSet),
2905            "TxSetComponentType" => Ok(Self::TxSetComponentType),
2906            "DependentTxCluster" => Ok(Self::DependentTxCluster),
2907            "ParallelTxExecutionStage" => Ok(Self::ParallelTxExecutionStage),
2908            "ParallelTxsComponent" => Ok(Self::ParallelTxsComponent),
2909            "TxSetComponent" => Ok(Self::TxSetComponent),
2910            "TxSetComponentTxsMaybeDiscountedFee" => Ok(Self::TxSetComponentTxsMaybeDiscountedFee),
2911            "TransactionPhase" => Ok(Self::TransactionPhase),
2912            "TransactionSet" => Ok(Self::TransactionSet),
2913            "TransactionSetV1" => Ok(Self::TransactionSetV1),
2914            "GeneralizedTransactionSet" => Ok(Self::GeneralizedTransactionSet),
2915            "TransactionResultPair" => Ok(Self::TransactionResultPair),
2916            "TransactionResultSet" => Ok(Self::TransactionResultSet),
2917            "TransactionHistoryEntry" => Ok(Self::TransactionHistoryEntry),
2918            "TransactionHistoryEntryExt" => Ok(Self::TransactionHistoryEntryExt),
2919            "TransactionHistoryResultEntry" => Ok(Self::TransactionHistoryResultEntry),
2920            "TransactionHistoryResultEntryExt" => Ok(Self::TransactionHistoryResultEntryExt),
2921            "LedgerHeaderHistoryEntry" => Ok(Self::LedgerHeaderHistoryEntry),
2922            "LedgerHeaderHistoryEntryExt" => Ok(Self::LedgerHeaderHistoryEntryExt),
2923            "LedgerScpMessages" => Ok(Self::LedgerScpMessages),
2924            "ScpHistoryEntryV0" => Ok(Self::ScpHistoryEntryV0),
2925            "ScpHistoryEntry" => Ok(Self::ScpHistoryEntry),
2926            "LedgerEntryChangeType" => Ok(Self::LedgerEntryChangeType),
2927            "LedgerEntryChange" => Ok(Self::LedgerEntryChange),
2928            "LedgerEntryChanges" => Ok(Self::LedgerEntryChanges),
2929            "OperationMeta" => Ok(Self::OperationMeta),
2930            "TransactionMetaV1" => Ok(Self::TransactionMetaV1),
2931            "TransactionMetaV2" => Ok(Self::TransactionMetaV2),
2932            "ContractEventType" => Ok(Self::ContractEventType),
2933            "ContractEvent" => Ok(Self::ContractEvent),
2934            "ContractEventBody" => Ok(Self::ContractEventBody),
2935            "ContractEventV0" => Ok(Self::ContractEventV0),
2936            "DiagnosticEvent" => Ok(Self::DiagnosticEvent),
2937            "SorobanTransactionMetaExtV1" => Ok(Self::SorobanTransactionMetaExtV1),
2938            "SorobanTransactionMetaExt" => Ok(Self::SorobanTransactionMetaExt),
2939            "SorobanTransactionMeta" => Ok(Self::SorobanTransactionMeta),
2940            "TransactionMetaV3" => Ok(Self::TransactionMetaV3),
2941            "OperationMetaV2" => Ok(Self::OperationMetaV2),
2942            "SorobanTransactionMetaV2" => Ok(Self::SorobanTransactionMetaV2),
2943            "TransactionEventStage" => Ok(Self::TransactionEventStage),
2944            "TransactionEvent" => Ok(Self::TransactionEvent),
2945            "TransactionMetaV4" => Ok(Self::TransactionMetaV4),
2946            "InvokeHostFunctionSuccessPreImage" => Ok(Self::InvokeHostFunctionSuccessPreImage),
2947            "TransactionMeta" => Ok(Self::TransactionMeta),
2948            "TransactionResultMeta" => Ok(Self::TransactionResultMeta),
2949            "TransactionResultMetaV1" => Ok(Self::TransactionResultMetaV1),
2950            "UpgradeEntryMeta" => Ok(Self::UpgradeEntryMeta),
2951            "LedgerCloseMetaV0" => Ok(Self::LedgerCloseMetaV0),
2952            "LedgerCloseMetaExtV1" => Ok(Self::LedgerCloseMetaExtV1),
2953            "LedgerCloseMetaExt" => Ok(Self::LedgerCloseMetaExt),
2954            "LedgerCloseMetaV1" => Ok(Self::LedgerCloseMetaV1),
2955            "LedgerCloseMetaV2" => Ok(Self::LedgerCloseMetaV2),
2956            "LedgerCloseMeta" => Ok(Self::LedgerCloseMeta),
2957            "ErrorCode" => Ok(Self::ErrorCode),
2958            "SError" => Ok(Self::SError),
2959            "SendMore" => Ok(Self::SendMore),
2960            "SendMoreExtended" => Ok(Self::SendMoreExtended),
2961            "AuthCert" => Ok(Self::AuthCert),
2962            "Hello" => Ok(Self::Hello),
2963            "Auth" => Ok(Self::Auth),
2964            "IpAddrType" => Ok(Self::IpAddrType),
2965            "PeerAddress" => Ok(Self::PeerAddress),
2966            "PeerAddressIp" => Ok(Self::PeerAddressIp),
2967            "MessageType" => Ok(Self::MessageType),
2968            "DontHave" => Ok(Self::DontHave),
2969            "SurveyMessageCommandType" => Ok(Self::SurveyMessageCommandType),
2970            "SurveyMessageResponseType" => Ok(Self::SurveyMessageResponseType),
2971            "TimeSlicedSurveyStartCollectingMessage" => {
2972                Ok(Self::TimeSlicedSurveyStartCollectingMessage)
2973            }
2974            "SignedTimeSlicedSurveyStartCollectingMessage" => {
2975                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage)
2976            }
2977            "TimeSlicedSurveyStopCollectingMessage" => {
2978                Ok(Self::TimeSlicedSurveyStopCollectingMessage)
2979            }
2980            "SignedTimeSlicedSurveyStopCollectingMessage" => {
2981                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage)
2982            }
2983            "SurveyRequestMessage" => Ok(Self::SurveyRequestMessage),
2984            "TimeSlicedSurveyRequestMessage" => Ok(Self::TimeSlicedSurveyRequestMessage),
2985            "SignedTimeSlicedSurveyRequestMessage" => {
2986                Ok(Self::SignedTimeSlicedSurveyRequestMessage)
2987            }
2988            "EncryptedBody" => Ok(Self::EncryptedBody),
2989            "SurveyResponseMessage" => Ok(Self::SurveyResponseMessage),
2990            "TimeSlicedSurveyResponseMessage" => Ok(Self::TimeSlicedSurveyResponseMessage),
2991            "SignedTimeSlicedSurveyResponseMessage" => {
2992                Ok(Self::SignedTimeSlicedSurveyResponseMessage)
2993            }
2994            "PeerStats" => Ok(Self::PeerStats),
2995            "TimeSlicedNodeData" => Ok(Self::TimeSlicedNodeData),
2996            "TimeSlicedPeerData" => Ok(Self::TimeSlicedPeerData),
2997            "TimeSlicedPeerDataList" => Ok(Self::TimeSlicedPeerDataList),
2998            "TopologyResponseBodyV2" => Ok(Self::TopologyResponseBodyV2),
2999            "SurveyResponseBody" => Ok(Self::SurveyResponseBody),
3000            "TxAdvertVector" => Ok(Self::TxAdvertVector),
3001            "FloodAdvert" => Ok(Self::FloodAdvert),
3002            "TxDemandVector" => Ok(Self::TxDemandVector),
3003            "FloodDemand" => Ok(Self::FloodDemand),
3004            "StellarMessage" => Ok(Self::StellarMessage),
3005            "AuthenticatedMessage" => Ok(Self::AuthenticatedMessage),
3006            "AuthenticatedMessageV0" => Ok(Self::AuthenticatedMessageV0),
3007            "LiquidityPoolParameters" => Ok(Self::LiquidityPoolParameters),
3008            "MuxedAccount" => Ok(Self::MuxedAccount),
3009            "MuxedAccountMed25519" => Ok(Self::MuxedAccountMed25519),
3010            "DecoratedSignature" => Ok(Self::DecoratedSignature),
3011            "OperationType" => Ok(Self::OperationType),
3012            "CreateAccountOp" => Ok(Self::CreateAccountOp),
3013            "PaymentOp" => Ok(Self::PaymentOp),
3014            "PathPaymentStrictReceiveOp" => Ok(Self::PathPaymentStrictReceiveOp),
3015            "PathPaymentStrictSendOp" => Ok(Self::PathPaymentStrictSendOp),
3016            "ManageSellOfferOp" => Ok(Self::ManageSellOfferOp),
3017            "ManageBuyOfferOp" => Ok(Self::ManageBuyOfferOp),
3018            "CreatePassiveSellOfferOp" => Ok(Self::CreatePassiveSellOfferOp),
3019            "SetOptionsOp" => Ok(Self::SetOptionsOp),
3020            "ChangeTrustAsset" => Ok(Self::ChangeTrustAsset),
3021            "ChangeTrustOp" => Ok(Self::ChangeTrustOp),
3022            "AllowTrustOp" => Ok(Self::AllowTrustOp),
3023            "ManageDataOp" => Ok(Self::ManageDataOp),
3024            "BumpSequenceOp" => Ok(Self::BumpSequenceOp),
3025            "CreateClaimableBalanceOp" => Ok(Self::CreateClaimableBalanceOp),
3026            "ClaimClaimableBalanceOp" => Ok(Self::ClaimClaimableBalanceOp),
3027            "BeginSponsoringFutureReservesOp" => Ok(Self::BeginSponsoringFutureReservesOp),
3028            "RevokeSponsorshipType" => Ok(Self::RevokeSponsorshipType),
3029            "RevokeSponsorshipOp" => Ok(Self::RevokeSponsorshipOp),
3030            "RevokeSponsorshipOpSigner" => Ok(Self::RevokeSponsorshipOpSigner),
3031            "ClawbackOp" => Ok(Self::ClawbackOp),
3032            "ClawbackClaimableBalanceOp" => Ok(Self::ClawbackClaimableBalanceOp),
3033            "SetTrustLineFlagsOp" => Ok(Self::SetTrustLineFlagsOp),
3034            "LiquidityPoolDepositOp" => Ok(Self::LiquidityPoolDepositOp),
3035            "LiquidityPoolWithdrawOp" => Ok(Self::LiquidityPoolWithdrawOp),
3036            "HostFunctionType" => Ok(Self::HostFunctionType),
3037            "ContractIdPreimageType" => Ok(Self::ContractIdPreimageType),
3038            "ContractIdPreimage" => Ok(Self::ContractIdPreimage),
3039            "ContractIdPreimageFromAddress" => Ok(Self::ContractIdPreimageFromAddress),
3040            "CreateContractArgs" => Ok(Self::CreateContractArgs),
3041            "CreateContractArgsV2" => Ok(Self::CreateContractArgsV2),
3042            "InvokeContractArgs" => Ok(Self::InvokeContractArgs),
3043            "HostFunction" => Ok(Self::HostFunction),
3044            "SorobanAuthorizedFunctionType" => Ok(Self::SorobanAuthorizedFunctionType),
3045            "SorobanAuthorizedFunction" => Ok(Self::SorobanAuthorizedFunction),
3046            "SorobanAuthorizedInvocation" => Ok(Self::SorobanAuthorizedInvocation),
3047            "SorobanAddressCredentials" => Ok(Self::SorobanAddressCredentials),
3048            "SorobanDelegateSignature" => Ok(Self::SorobanDelegateSignature),
3049            "SorobanAddressCredentialsWithDelegates" => {
3050                Ok(Self::SorobanAddressCredentialsWithDelegates)
3051            }
3052            "SorobanCredentialsType" => Ok(Self::SorobanCredentialsType),
3053            "SorobanCredentials" => Ok(Self::SorobanCredentials),
3054            "SorobanAuthorizationEntry" => Ok(Self::SorobanAuthorizationEntry),
3055            "SorobanAuthorizationEntries" => Ok(Self::SorobanAuthorizationEntries),
3056            "InvokeHostFunctionOp" => Ok(Self::InvokeHostFunctionOp),
3057            "ExtendFootprintTtlOp" => Ok(Self::ExtendFootprintTtlOp),
3058            "RestoreFootprintOp" => Ok(Self::RestoreFootprintOp),
3059            "Operation" => Ok(Self::Operation),
3060            "OperationBody" => Ok(Self::OperationBody),
3061            "HashIdPreimage" => Ok(Self::HashIdPreimage),
3062            "HashIdPreimageOperationId" => Ok(Self::HashIdPreimageOperationId),
3063            "HashIdPreimageRevokeId" => Ok(Self::HashIdPreimageRevokeId),
3064            "HashIdPreimageContractId" => Ok(Self::HashIdPreimageContractId),
3065            "HashIdPreimageSorobanAuthorization" => Ok(Self::HashIdPreimageSorobanAuthorization),
3066            "HashIdPreimageSorobanAuthorizationWithAddress" => {
3067                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress)
3068            }
3069            "MemoType" => Ok(Self::MemoType),
3070            "Memo" => Ok(Self::Memo),
3071            "TimeBounds" => Ok(Self::TimeBounds),
3072            "LedgerBounds" => Ok(Self::LedgerBounds),
3073            "PreconditionsV2" => Ok(Self::PreconditionsV2),
3074            "PreconditionType" => Ok(Self::PreconditionType),
3075            "Preconditions" => Ok(Self::Preconditions),
3076            "LedgerFootprint" => Ok(Self::LedgerFootprint),
3077            "SorobanResources" => Ok(Self::SorobanResources),
3078            "SorobanResourcesExtV0" => Ok(Self::SorobanResourcesExtV0),
3079            "SorobanTransactionData" => Ok(Self::SorobanTransactionData),
3080            "SorobanTransactionDataExt" => Ok(Self::SorobanTransactionDataExt),
3081            "TransactionV0" => Ok(Self::TransactionV0),
3082            "TransactionV0Ext" => Ok(Self::TransactionV0Ext),
3083            "TransactionV0Envelope" => Ok(Self::TransactionV0Envelope),
3084            "Transaction" => Ok(Self::Transaction),
3085            "TransactionExt" => Ok(Self::TransactionExt),
3086            "TransactionV1Envelope" => Ok(Self::TransactionV1Envelope),
3087            "FeeBumpTransaction" => Ok(Self::FeeBumpTransaction),
3088            "FeeBumpTransactionInnerTx" => Ok(Self::FeeBumpTransactionInnerTx),
3089            "FeeBumpTransactionExt" => Ok(Self::FeeBumpTransactionExt),
3090            "FeeBumpTransactionEnvelope" => Ok(Self::FeeBumpTransactionEnvelope),
3091            "TransactionEnvelope" => Ok(Self::TransactionEnvelope),
3092            "TransactionSignaturePayload" => Ok(Self::TransactionSignaturePayload),
3093            "TransactionSignaturePayloadTaggedTransaction" => {
3094                Ok(Self::TransactionSignaturePayloadTaggedTransaction)
3095            }
3096            "ClaimAtomType" => Ok(Self::ClaimAtomType),
3097            "ClaimOfferAtomV0" => Ok(Self::ClaimOfferAtomV0),
3098            "ClaimOfferAtom" => Ok(Self::ClaimOfferAtom),
3099            "ClaimLiquidityAtom" => Ok(Self::ClaimLiquidityAtom),
3100            "ClaimAtom" => Ok(Self::ClaimAtom),
3101            "CreateAccountResultCode" => Ok(Self::CreateAccountResultCode),
3102            "CreateAccountResult" => Ok(Self::CreateAccountResult),
3103            "PaymentResultCode" => Ok(Self::PaymentResultCode),
3104            "PaymentResult" => Ok(Self::PaymentResult),
3105            "PathPaymentStrictReceiveResultCode" => Ok(Self::PathPaymentStrictReceiveResultCode),
3106            "SimplePaymentResult" => Ok(Self::SimplePaymentResult),
3107            "PathPaymentStrictReceiveResult" => Ok(Self::PathPaymentStrictReceiveResult),
3108            "PathPaymentStrictReceiveResultSuccess" => {
3109                Ok(Self::PathPaymentStrictReceiveResultSuccess)
3110            }
3111            "PathPaymentStrictSendResultCode" => Ok(Self::PathPaymentStrictSendResultCode),
3112            "PathPaymentStrictSendResult" => Ok(Self::PathPaymentStrictSendResult),
3113            "PathPaymentStrictSendResultSuccess" => Ok(Self::PathPaymentStrictSendResultSuccess),
3114            "ManageSellOfferResultCode" => Ok(Self::ManageSellOfferResultCode),
3115            "ManageOfferEffect" => Ok(Self::ManageOfferEffect),
3116            "ManageOfferSuccessResult" => Ok(Self::ManageOfferSuccessResult),
3117            "ManageOfferSuccessResultOffer" => Ok(Self::ManageOfferSuccessResultOffer),
3118            "ManageSellOfferResult" => Ok(Self::ManageSellOfferResult),
3119            "ManageBuyOfferResultCode" => Ok(Self::ManageBuyOfferResultCode),
3120            "ManageBuyOfferResult" => Ok(Self::ManageBuyOfferResult),
3121            "SetOptionsResultCode" => Ok(Self::SetOptionsResultCode),
3122            "SetOptionsResult" => Ok(Self::SetOptionsResult),
3123            "ChangeTrustResultCode" => Ok(Self::ChangeTrustResultCode),
3124            "ChangeTrustResult" => Ok(Self::ChangeTrustResult),
3125            "AllowTrustResultCode" => Ok(Self::AllowTrustResultCode),
3126            "AllowTrustResult" => Ok(Self::AllowTrustResult),
3127            "AccountMergeResultCode" => Ok(Self::AccountMergeResultCode),
3128            "AccountMergeResult" => Ok(Self::AccountMergeResult),
3129            "InflationResultCode" => Ok(Self::InflationResultCode),
3130            "InflationPayout" => Ok(Self::InflationPayout),
3131            "InflationResult" => Ok(Self::InflationResult),
3132            "ManageDataResultCode" => Ok(Self::ManageDataResultCode),
3133            "ManageDataResult" => Ok(Self::ManageDataResult),
3134            "BumpSequenceResultCode" => Ok(Self::BumpSequenceResultCode),
3135            "BumpSequenceResult" => Ok(Self::BumpSequenceResult),
3136            "CreateClaimableBalanceResultCode" => Ok(Self::CreateClaimableBalanceResultCode),
3137            "CreateClaimableBalanceResult" => Ok(Self::CreateClaimableBalanceResult),
3138            "ClaimClaimableBalanceResultCode" => Ok(Self::ClaimClaimableBalanceResultCode),
3139            "ClaimClaimableBalanceResult" => Ok(Self::ClaimClaimableBalanceResult),
3140            "BeginSponsoringFutureReservesResultCode" => {
3141                Ok(Self::BeginSponsoringFutureReservesResultCode)
3142            }
3143            "BeginSponsoringFutureReservesResult" => Ok(Self::BeginSponsoringFutureReservesResult),
3144            "EndSponsoringFutureReservesResultCode" => {
3145                Ok(Self::EndSponsoringFutureReservesResultCode)
3146            }
3147            "EndSponsoringFutureReservesResult" => Ok(Self::EndSponsoringFutureReservesResult),
3148            "RevokeSponsorshipResultCode" => Ok(Self::RevokeSponsorshipResultCode),
3149            "RevokeSponsorshipResult" => Ok(Self::RevokeSponsorshipResult),
3150            "ClawbackResultCode" => Ok(Self::ClawbackResultCode),
3151            "ClawbackResult" => Ok(Self::ClawbackResult),
3152            "ClawbackClaimableBalanceResultCode" => Ok(Self::ClawbackClaimableBalanceResultCode),
3153            "ClawbackClaimableBalanceResult" => Ok(Self::ClawbackClaimableBalanceResult),
3154            "SetTrustLineFlagsResultCode" => Ok(Self::SetTrustLineFlagsResultCode),
3155            "SetTrustLineFlagsResult" => Ok(Self::SetTrustLineFlagsResult),
3156            "LiquidityPoolDepositResultCode" => Ok(Self::LiquidityPoolDepositResultCode),
3157            "LiquidityPoolDepositResult" => Ok(Self::LiquidityPoolDepositResult),
3158            "LiquidityPoolWithdrawResultCode" => Ok(Self::LiquidityPoolWithdrawResultCode),
3159            "LiquidityPoolWithdrawResult" => Ok(Self::LiquidityPoolWithdrawResult),
3160            "InvokeHostFunctionResultCode" => Ok(Self::InvokeHostFunctionResultCode),
3161            "InvokeHostFunctionResult" => Ok(Self::InvokeHostFunctionResult),
3162            "ExtendFootprintTtlResultCode" => Ok(Self::ExtendFootprintTtlResultCode),
3163            "ExtendFootprintTtlResult" => Ok(Self::ExtendFootprintTtlResult),
3164            "RestoreFootprintResultCode" => Ok(Self::RestoreFootprintResultCode),
3165            "RestoreFootprintResult" => Ok(Self::RestoreFootprintResult),
3166            "OperationResultCode" => Ok(Self::OperationResultCode),
3167            "OperationResult" => Ok(Self::OperationResult),
3168            "OperationResultTr" => Ok(Self::OperationResultTr),
3169            "TransactionResultCode" => Ok(Self::TransactionResultCode),
3170            "InnerTransactionResult" => Ok(Self::InnerTransactionResult),
3171            "InnerTransactionResultResult" => Ok(Self::InnerTransactionResultResult),
3172            "InnerTransactionResultExt" => Ok(Self::InnerTransactionResultExt),
3173            "InnerTransactionResultPair" => Ok(Self::InnerTransactionResultPair),
3174            "TransactionResult" => Ok(Self::TransactionResult),
3175            "TransactionResultResult" => Ok(Self::TransactionResultResult),
3176            "TransactionResultExt" => Ok(Self::TransactionResultExt),
3177            "Hash" => Ok(Self::Hash),
3178            "Uint256" => Ok(Self::Uint256),
3179            "Uint32" => Ok(Self::Uint32),
3180            "Int32" => Ok(Self::Int32),
3181            "Uint64" => Ok(Self::Uint64),
3182            "Int64" => Ok(Self::Int64),
3183            "TimePoint" => Ok(Self::TimePoint),
3184            "Duration" => Ok(Self::Duration),
3185            "ExtensionPoint" => Ok(Self::ExtensionPoint),
3186            "CryptoKeyType" => Ok(Self::CryptoKeyType),
3187            "PublicKeyType" => Ok(Self::PublicKeyType),
3188            "SignerKeyType" => Ok(Self::SignerKeyType),
3189            "PublicKey" => Ok(Self::PublicKey),
3190            "SignerKey" => Ok(Self::SignerKey),
3191            "SignerKeyEd25519SignedPayload" => Ok(Self::SignerKeyEd25519SignedPayload),
3192            "Signature" => Ok(Self::Signature),
3193            "SignatureHint" => Ok(Self::SignatureHint),
3194            "NodeId" => Ok(Self::NodeId),
3195            "AccountId" => Ok(Self::AccountId),
3196            "ContractId" => Ok(Self::ContractId),
3197            "Curve25519Secret" => Ok(Self::Curve25519Secret),
3198            "Curve25519Public" => Ok(Self::Curve25519Public),
3199            "HmacSha256Key" => Ok(Self::HmacSha256Key),
3200            "HmacSha256Mac" => Ok(Self::HmacSha256Mac),
3201            "ShortHashSeed" => Ok(Self::ShortHashSeed),
3202            "BinaryFuseFilterType" => Ok(Self::BinaryFuseFilterType),
3203            "SerializedBinaryFuseFilter" => Ok(Self::SerializedBinaryFuseFilter),
3204            "PoolId" => Ok(Self::PoolId),
3205            "ClaimableBalanceIdType" => Ok(Self::ClaimableBalanceIdType),
3206            "ClaimableBalanceId" => Ok(Self::ClaimableBalanceId),
3207            #[cfg(feature = "test_feature")]
3208            "TestNextType" => Ok(Self::TestNextType),
3209            _ => Err(Error::Invalid),
3210        }
3211    }
3212}
3213
3214#[cfg(feature = "type_enum")]
3215#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
3216#[cfg_attr(
3217    all(feature = "serde", feature = "alloc"),
3218    derive(serde::Serialize, serde::Deserialize),
3219    serde(rename_all = "snake_case"),
3220    serde(untagged)
3221)]
3222#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
3223pub enum Type {
3224    Value(Box<Value>),
3225    ScpBallot(Box<ScpBallot>),
3226    ScpStatementType(Box<ScpStatementType>),
3227    ScpNomination(Box<ScpNomination>),
3228    ScpStatement(Box<ScpStatement>),
3229    ScpStatementPledges(Box<ScpStatementPledges>),
3230    ScpStatementPrepare(Box<ScpStatementPrepare>),
3231    ScpStatementConfirm(Box<ScpStatementConfirm>),
3232    ScpStatementExternalize(Box<ScpStatementExternalize>),
3233    ScpEnvelope(Box<ScpEnvelope>),
3234    ScpQuorumSet(Box<ScpQuorumSet>),
3235    EncodedLedgerKey(Box<EncodedLedgerKey>),
3236    ConfigSettingContractExecutionLanesV0(Box<ConfigSettingContractExecutionLanesV0>),
3237    ConfigSettingContractComputeV0(Box<ConfigSettingContractComputeV0>),
3238    ConfigSettingContractParallelComputeV0(Box<ConfigSettingContractParallelComputeV0>),
3239    ConfigSettingContractLedgerCostV0(Box<ConfigSettingContractLedgerCostV0>),
3240    ConfigSettingContractLedgerCostExtV0(Box<ConfigSettingContractLedgerCostExtV0>),
3241    ConfigSettingContractHistoricalDataV0(Box<ConfigSettingContractHistoricalDataV0>),
3242    ConfigSettingContractEventsV0(Box<ConfigSettingContractEventsV0>),
3243    ConfigSettingContractBandwidthV0(Box<ConfigSettingContractBandwidthV0>),
3244    ContractCostType(Box<ContractCostType>),
3245    ContractCostParamEntry(Box<ContractCostParamEntry>),
3246    StateArchivalSettings(Box<StateArchivalSettings>),
3247    EvictionIterator(Box<EvictionIterator>),
3248    ConfigSettingScpTiming(Box<ConfigSettingScpTiming>),
3249    FrozenLedgerKeys(Box<FrozenLedgerKeys>),
3250    FrozenLedgerKeysDelta(Box<FrozenLedgerKeysDelta>),
3251    FreezeBypassTxs(Box<FreezeBypassTxs>),
3252    FreezeBypassTxsDelta(Box<FreezeBypassTxsDelta>),
3253    ContractCostParams(Box<ContractCostParams>),
3254    ConfigSettingId(Box<ConfigSettingId>),
3255    ConfigSettingEntry(Box<ConfigSettingEntry>),
3256    ScEnvMetaKind(Box<ScEnvMetaKind>),
3257    ScEnvMetaEntry(Box<ScEnvMetaEntry>),
3258    ScEnvMetaEntryInterfaceVersion(Box<ScEnvMetaEntryInterfaceVersion>),
3259    ScMetaV0(Box<ScMetaV0>),
3260    ScMetaKind(Box<ScMetaKind>),
3261    ScMetaEntry(Box<ScMetaEntry>),
3262    ScSpecType(Box<ScSpecType>),
3263    ScSpecTypeOption(Box<ScSpecTypeOption>),
3264    ScSpecTypeResult(Box<ScSpecTypeResult>),
3265    ScSpecTypeVec(Box<ScSpecTypeVec>),
3266    ScSpecTypeMap(Box<ScSpecTypeMap>),
3267    ScSpecTypeTuple(Box<ScSpecTypeTuple>),
3268    ScSpecTypeBytesN(Box<ScSpecTypeBytesN>),
3269    ScSpecTypeUdt(Box<ScSpecTypeUdt>),
3270    ScSpecTypeDef(Box<ScSpecTypeDef>),
3271    ScSpecUdtStructFieldV0(Box<ScSpecUdtStructFieldV0>),
3272    ScSpecUdtStructV0(Box<ScSpecUdtStructV0>),
3273    ScSpecUdtUnionCaseVoidV0(Box<ScSpecUdtUnionCaseVoidV0>),
3274    ScSpecUdtUnionCaseTupleV0(Box<ScSpecUdtUnionCaseTupleV0>),
3275    ScSpecUdtUnionCaseV0Kind(Box<ScSpecUdtUnionCaseV0Kind>),
3276    ScSpecUdtUnionCaseV0(Box<ScSpecUdtUnionCaseV0>),
3277    ScSpecUdtUnionV0(Box<ScSpecUdtUnionV0>),
3278    ScSpecUdtEnumCaseV0(Box<ScSpecUdtEnumCaseV0>),
3279    ScSpecUdtEnumV0(Box<ScSpecUdtEnumV0>),
3280    ScSpecUdtErrorEnumCaseV0(Box<ScSpecUdtErrorEnumCaseV0>),
3281    ScSpecUdtErrorEnumV0(Box<ScSpecUdtErrorEnumV0>),
3282    ScSpecFunctionInputV0(Box<ScSpecFunctionInputV0>),
3283    ScSpecFunctionV0(Box<ScSpecFunctionV0>),
3284    ScSpecEventParamLocationV0(Box<ScSpecEventParamLocationV0>),
3285    ScSpecEventParamV0(Box<ScSpecEventParamV0>),
3286    ScSpecEventDataFormat(Box<ScSpecEventDataFormat>),
3287    ScSpecEventV0(Box<ScSpecEventV0>),
3288    ScSpecEntryKind(Box<ScSpecEntryKind>),
3289    ScSpecEntry(Box<ScSpecEntry>),
3290    ScValType(Box<ScValType>),
3291    ScErrorType(Box<ScErrorType>),
3292    ScErrorCode(Box<ScErrorCode>),
3293    ScError(Box<ScError>),
3294    UInt128Parts(Box<UInt128Parts>),
3295    Int128Parts(Box<Int128Parts>),
3296    UInt256Parts(Box<UInt256Parts>),
3297    Int256Parts(Box<Int256Parts>),
3298    ContractExecutableType(Box<ContractExecutableType>),
3299    ContractExecutable(Box<ContractExecutable>),
3300    ScAddressType(Box<ScAddressType>),
3301    MuxedEd25519Account(Box<MuxedEd25519Account>),
3302    ScAddress(Box<ScAddress>),
3303    ScVec(Box<ScVec>),
3304    ScMap(Box<ScMap>),
3305    ScBytes(Box<ScBytes>),
3306    ScString(Box<ScString>),
3307    ScSymbol(Box<ScSymbol>),
3308    ScNonceKey(Box<ScNonceKey>),
3309    ScContractInstance(Box<ScContractInstance>),
3310    ScVal(Box<ScVal>),
3311    ScMapEntry(Box<ScMapEntry>),
3312    LedgerCloseMetaBatch(Box<LedgerCloseMetaBatch>),
3313    StoredTransactionSet(Box<StoredTransactionSet>),
3314    StoredDebugTransactionSet(Box<StoredDebugTransactionSet>),
3315    PersistedScpStateV0(Box<PersistedScpStateV0>),
3316    PersistedScpStateV1(Box<PersistedScpStateV1>),
3317    PersistedScpState(Box<PersistedScpState>),
3318    Thresholds(Box<Thresholds>),
3319    String32(Box<String32>),
3320    String64(Box<String64>),
3321    SequenceNumber(Box<SequenceNumber>),
3322    DataValue(Box<DataValue>),
3323    AssetCode4(Box<AssetCode4>),
3324    AssetCode12(Box<AssetCode12>),
3325    AssetType(Box<AssetType>),
3326    AssetCode(Box<AssetCode>),
3327    AlphaNum4(Box<AlphaNum4>),
3328    AlphaNum12(Box<AlphaNum12>),
3329    Asset(Box<Asset>),
3330    Price(Box<Price>),
3331    Liabilities(Box<Liabilities>),
3332    ThresholdIndexes(Box<ThresholdIndexes>),
3333    LedgerEntryType(Box<LedgerEntryType>),
3334    Signer(Box<Signer>),
3335    AccountFlags(Box<AccountFlags>),
3336    SponsorshipDescriptor(Box<SponsorshipDescriptor>),
3337    AccountEntryExtensionV3(Box<AccountEntryExtensionV3>),
3338    AccountEntryExtensionV2(Box<AccountEntryExtensionV2>),
3339    AccountEntryExtensionV2Ext(Box<AccountEntryExtensionV2Ext>),
3340    AccountEntryExtensionV1(Box<AccountEntryExtensionV1>),
3341    AccountEntryExtensionV1Ext(Box<AccountEntryExtensionV1Ext>),
3342    AccountEntry(Box<AccountEntry>),
3343    AccountEntryExt(Box<AccountEntryExt>),
3344    TrustLineFlags(Box<TrustLineFlags>),
3345    LiquidityPoolType(Box<LiquidityPoolType>),
3346    TrustLineAsset(Box<TrustLineAsset>),
3347    TrustLineEntryExtensionV2(Box<TrustLineEntryExtensionV2>),
3348    TrustLineEntryExtensionV2Ext(Box<TrustLineEntryExtensionV2Ext>),
3349    TrustLineEntry(Box<TrustLineEntry>),
3350    TrustLineEntryExt(Box<TrustLineEntryExt>),
3351    TrustLineEntryV1(Box<TrustLineEntryV1>),
3352    TrustLineEntryV1Ext(Box<TrustLineEntryV1Ext>),
3353    OfferEntryFlags(Box<OfferEntryFlags>),
3354    OfferEntry(Box<OfferEntry>),
3355    OfferEntryExt(Box<OfferEntryExt>),
3356    DataEntry(Box<DataEntry>),
3357    DataEntryExt(Box<DataEntryExt>),
3358    ClaimPredicateType(Box<ClaimPredicateType>),
3359    ClaimPredicate(Box<ClaimPredicate>),
3360    ClaimantType(Box<ClaimantType>),
3361    Claimant(Box<Claimant>),
3362    ClaimantV0(Box<ClaimantV0>),
3363    ClaimableBalanceFlags(Box<ClaimableBalanceFlags>),
3364    ClaimableBalanceEntryExtensionV1(Box<ClaimableBalanceEntryExtensionV1>),
3365    ClaimableBalanceEntryExtensionV1Ext(Box<ClaimableBalanceEntryExtensionV1Ext>),
3366    ClaimableBalanceEntry(Box<ClaimableBalanceEntry>),
3367    ClaimableBalanceEntryExt(Box<ClaimableBalanceEntryExt>),
3368    LiquidityPoolConstantProductParameters(Box<LiquidityPoolConstantProductParameters>),
3369    LiquidityPoolEntry(Box<LiquidityPoolEntry>),
3370    LiquidityPoolEntryBody(Box<LiquidityPoolEntryBody>),
3371    LiquidityPoolEntryConstantProduct(Box<LiquidityPoolEntryConstantProduct>),
3372    ContractDataDurability(Box<ContractDataDurability>),
3373    ContractDataEntry(Box<ContractDataEntry>),
3374    ContractCodeCostInputs(Box<ContractCodeCostInputs>),
3375    ContractCodeEntry(Box<ContractCodeEntry>),
3376    ContractCodeEntryExt(Box<ContractCodeEntryExt>),
3377    ContractCodeEntryV1(Box<ContractCodeEntryV1>),
3378    TtlEntry(Box<TtlEntry>),
3379    LedgerEntryExtensionV1(Box<LedgerEntryExtensionV1>),
3380    LedgerEntryExtensionV1Ext(Box<LedgerEntryExtensionV1Ext>),
3381    LedgerEntry(Box<LedgerEntry>),
3382    LedgerEntryData(Box<LedgerEntryData>),
3383    LedgerEntryExt(Box<LedgerEntryExt>),
3384    LedgerKey(Box<LedgerKey>),
3385    LedgerKeyAccount(Box<LedgerKeyAccount>),
3386    LedgerKeyTrustLine(Box<LedgerKeyTrustLine>),
3387    LedgerKeyOffer(Box<LedgerKeyOffer>),
3388    LedgerKeyData(Box<LedgerKeyData>),
3389    LedgerKeyClaimableBalance(Box<LedgerKeyClaimableBalance>),
3390    LedgerKeyLiquidityPool(Box<LedgerKeyLiquidityPool>),
3391    LedgerKeyContractData(Box<LedgerKeyContractData>),
3392    LedgerKeyContractCode(Box<LedgerKeyContractCode>),
3393    LedgerKeyConfigSetting(Box<LedgerKeyConfigSetting>),
3394    LedgerKeyTtl(Box<LedgerKeyTtl>),
3395    EnvelopeType(Box<EnvelopeType>),
3396    BucketListType(Box<BucketListType>),
3397    BucketEntryType(Box<BucketEntryType>),
3398    HotArchiveBucketEntryType(Box<HotArchiveBucketEntryType>),
3399    BucketMetadata(Box<BucketMetadata>),
3400    BucketMetadataExt(Box<BucketMetadataExt>),
3401    BucketEntry(Box<BucketEntry>),
3402    HotArchiveBucketEntry(Box<HotArchiveBucketEntry>),
3403    UpgradeType(Box<UpgradeType>),
3404    StellarValueType(Box<StellarValueType>),
3405    LedgerCloseValueSignature(Box<LedgerCloseValueSignature>),
3406    StellarValue(Box<StellarValue>),
3407    StellarValueExt(Box<StellarValueExt>),
3408    #[cfg(feature = "cap_0083")]
3409    StellarValueProposedValue(Box<StellarValueProposedValue>),
3410    LedgerHeaderFlags(Box<LedgerHeaderFlags>),
3411    LedgerHeaderExtensionV1(Box<LedgerHeaderExtensionV1>),
3412    LedgerHeaderExtensionV1Ext(Box<LedgerHeaderExtensionV1Ext>),
3413    LedgerHeader(Box<LedgerHeader>),
3414    LedgerHeaderExt(Box<LedgerHeaderExt>),
3415    LedgerUpgradeType(Box<LedgerUpgradeType>),
3416    ConfigUpgradeSetKey(Box<ConfigUpgradeSetKey>),
3417    LedgerUpgrade(Box<LedgerUpgrade>),
3418    ConfigUpgradeSet(Box<ConfigUpgradeSet>),
3419    TxSetComponentType(Box<TxSetComponentType>),
3420    DependentTxCluster(Box<DependentTxCluster>),
3421    ParallelTxExecutionStage(Box<ParallelTxExecutionStage>),
3422    ParallelTxsComponent(Box<ParallelTxsComponent>),
3423    TxSetComponent(Box<TxSetComponent>),
3424    TxSetComponentTxsMaybeDiscountedFee(Box<TxSetComponentTxsMaybeDiscountedFee>),
3425    TransactionPhase(Box<TransactionPhase>),
3426    TransactionSet(Box<TransactionSet>),
3427    TransactionSetV1(Box<TransactionSetV1>),
3428    GeneralizedTransactionSet(Box<GeneralizedTransactionSet>),
3429    TransactionResultPair(Box<TransactionResultPair>),
3430    TransactionResultSet(Box<TransactionResultSet>),
3431    TransactionHistoryEntry(Box<TransactionHistoryEntry>),
3432    TransactionHistoryEntryExt(Box<TransactionHistoryEntryExt>),
3433    TransactionHistoryResultEntry(Box<TransactionHistoryResultEntry>),
3434    TransactionHistoryResultEntryExt(Box<TransactionHistoryResultEntryExt>),
3435    LedgerHeaderHistoryEntry(Box<LedgerHeaderHistoryEntry>),
3436    LedgerHeaderHistoryEntryExt(Box<LedgerHeaderHistoryEntryExt>),
3437    LedgerScpMessages(Box<LedgerScpMessages>),
3438    ScpHistoryEntryV0(Box<ScpHistoryEntryV0>),
3439    ScpHistoryEntry(Box<ScpHistoryEntry>),
3440    LedgerEntryChangeType(Box<LedgerEntryChangeType>),
3441    LedgerEntryChange(Box<LedgerEntryChange>),
3442    LedgerEntryChanges(Box<LedgerEntryChanges>),
3443    OperationMeta(Box<OperationMeta>),
3444    TransactionMetaV1(Box<TransactionMetaV1>),
3445    TransactionMetaV2(Box<TransactionMetaV2>),
3446    ContractEventType(Box<ContractEventType>),
3447    ContractEvent(Box<ContractEvent>),
3448    ContractEventBody(Box<ContractEventBody>),
3449    ContractEventV0(Box<ContractEventV0>),
3450    DiagnosticEvent(Box<DiagnosticEvent>),
3451    SorobanTransactionMetaExtV1(Box<SorobanTransactionMetaExtV1>),
3452    SorobanTransactionMetaExt(Box<SorobanTransactionMetaExt>),
3453    SorobanTransactionMeta(Box<SorobanTransactionMeta>),
3454    TransactionMetaV3(Box<TransactionMetaV3>),
3455    OperationMetaV2(Box<OperationMetaV2>),
3456    SorobanTransactionMetaV2(Box<SorobanTransactionMetaV2>),
3457    TransactionEventStage(Box<TransactionEventStage>),
3458    TransactionEvent(Box<TransactionEvent>),
3459    TransactionMetaV4(Box<TransactionMetaV4>),
3460    InvokeHostFunctionSuccessPreImage(Box<InvokeHostFunctionSuccessPreImage>),
3461    TransactionMeta(Box<TransactionMeta>),
3462    TransactionResultMeta(Box<TransactionResultMeta>),
3463    TransactionResultMetaV1(Box<TransactionResultMetaV1>),
3464    UpgradeEntryMeta(Box<UpgradeEntryMeta>),
3465    LedgerCloseMetaV0(Box<LedgerCloseMetaV0>),
3466    LedgerCloseMetaExtV1(Box<LedgerCloseMetaExtV1>),
3467    LedgerCloseMetaExt(Box<LedgerCloseMetaExt>),
3468    LedgerCloseMetaV1(Box<LedgerCloseMetaV1>),
3469    LedgerCloseMetaV2(Box<LedgerCloseMetaV2>),
3470    LedgerCloseMeta(Box<LedgerCloseMeta>),
3471    ErrorCode(Box<ErrorCode>),
3472    SError(Box<SError>),
3473    SendMore(Box<SendMore>),
3474    SendMoreExtended(Box<SendMoreExtended>),
3475    AuthCert(Box<AuthCert>),
3476    Hello(Box<Hello>),
3477    Auth(Box<Auth>),
3478    IpAddrType(Box<IpAddrType>),
3479    PeerAddress(Box<PeerAddress>),
3480    PeerAddressIp(Box<PeerAddressIp>),
3481    MessageType(Box<MessageType>),
3482    DontHave(Box<DontHave>),
3483    SurveyMessageCommandType(Box<SurveyMessageCommandType>),
3484    SurveyMessageResponseType(Box<SurveyMessageResponseType>),
3485    TimeSlicedSurveyStartCollectingMessage(Box<TimeSlicedSurveyStartCollectingMessage>),
3486    SignedTimeSlicedSurveyStartCollectingMessage(Box<SignedTimeSlicedSurveyStartCollectingMessage>),
3487    TimeSlicedSurveyStopCollectingMessage(Box<TimeSlicedSurveyStopCollectingMessage>),
3488    SignedTimeSlicedSurveyStopCollectingMessage(Box<SignedTimeSlicedSurveyStopCollectingMessage>),
3489    SurveyRequestMessage(Box<SurveyRequestMessage>),
3490    TimeSlicedSurveyRequestMessage(Box<TimeSlicedSurveyRequestMessage>),
3491    SignedTimeSlicedSurveyRequestMessage(Box<SignedTimeSlicedSurveyRequestMessage>),
3492    EncryptedBody(Box<EncryptedBody>),
3493    SurveyResponseMessage(Box<SurveyResponseMessage>),
3494    TimeSlicedSurveyResponseMessage(Box<TimeSlicedSurveyResponseMessage>),
3495    SignedTimeSlicedSurveyResponseMessage(Box<SignedTimeSlicedSurveyResponseMessage>),
3496    PeerStats(Box<PeerStats>),
3497    TimeSlicedNodeData(Box<TimeSlicedNodeData>),
3498    TimeSlicedPeerData(Box<TimeSlicedPeerData>),
3499    TimeSlicedPeerDataList(Box<TimeSlicedPeerDataList>),
3500    TopologyResponseBodyV2(Box<TopologyResponseBodyV2>),
3501    SurveyResponseBody(Box<SurveyResponseBody>),
3502    TxAdvertVector(Box<TxAdvertVector>),
3503    FloodAdvert(Box<FloodAdvert>),
3504    TxDemandVector(Box<TxDemandVector>),
3505    FloodDemand(Box<FloodDemand>),
3506    StellarMessage(Box<StellarMessage>),
3507    AuthenticatedMessage(Box<AuthenticatedMessage>),
3508    AuthenticatedMessageV0(Box<AuthenticatedMessageV0>),
3509    LiquidityPoolParameters(Box<LiquidityPoolParameters>),
3510    MuxedAccount(Box<MuxedAccount>),
3511    MuxedAccountMed25519(Box<MuxedAccountMed25519>),
3512    DecoratedSignature(Box<DecoratedSignature>),
3513    OperationType(Box<OperationType>),
3514    CreateAccountOp(Box<CreateAccountOp>),
3515    PaymentOp(Box<PaymentOp>),
3516    PathPaymentStrictReceiveOp(Box<PathPaymentStrictReceiveOp>),
3517    PathPaymentStrictSendOp(Box<PathPaymentStrictSendOp>),
3518    ManageSellOfferOp(Box<ManageSellOfferOp>),
3519    ManageBuyOfferOp(Box<ManageBuyOfferOp>),
3520    CreatePassiveSellOfferOp(Box<CreatePassiveSellOfferOp>),
3521    SetOptionsOp(Box<SetOptionsOp>),
3522    ChangeTrustAsset(Box<ChangeTrustAsset>),
3523    ChangeTrustOp(Box<ChangeTrustOp>),
3524    AllowTrustOp(Box<AllowTrustOp>),
3525    ManageDataOp(Box<ManageDataOp>),
3526    BumpSequenceOp(Box<BumpSequenceOp>),
3527    CreateClaimableBalanceOp(Box<CreateClaimableBalanceOp>),
3528    ClaimClaimableBalanceOp(Box<ClaimClaimableBalanceOp>),
3529    BeginSponsoringFutureReservesOp(Box<BeginSponsoringFutureReservesOp>),
3530    RevokeSponsorshipType(Box<RevokeSponsorshipType>),
3531    RevokeSponsorshipOp(Box<RevokeSponsorshipOp>),
3532    RevokeSponsorshipOpSigner(Box<RevokeSponsorshipOpSigner>),
3533    ClawbackOp(Box<ClawbackOp>),
3534    ClawbackClaimableBalanceOp(Box<ClawbackClaimableBalanceOp>),
3535    SetTrustLineFlagsOp(Box<SetTrustLineFlagsOp>),
3536    LiquidityPoolDepositOp(Box<LiquidityPoolDepositOp>),
3537    LiquidityPoolWithdrawOp(Box<LiquidityPoolWithdrawOp>),
3538    HostFunctionType(Box<HostFunctionType>),
3539    ContractIdPreimageType(Box<ContractIdPreimageType>),
3540    ContractIdPreimage(Box<ContractIdPreimage>),
3541    ContractIdPreimageFromAddress(Box<ContractIdPreimageFromAddress>),
3542    CreateContractArgs(Box<CreateContractArgs>),
3543    CreateContractArgsV2(Box<CreateContractArgsV2>),
3544    InvokeContractArgs(Box<InvokeContractArgs>),
3545    HostFunction(Box<HostFunction>),
3546    SorobanAuthorizedFunctionType(Box<SorobanAuthorizedFunctionType>),
3547    SorobanAuthorizedFunction(Box<SorobanAuthorizedFunction>),
3548    SorobanAuthorizedInvocation(Box<SorobanAuthorizedInvocation>),
3549    SorobanAddressCredentials(Box<SorobanAddressCredentials>),
3550    SorobanDelegateSignature(Box<SorobanDelegateSignature>),
3551    SorobanAddressCredentialsWithDelegates(Box<SorobanAddressCredentialsWithDelegates>),
3552    SorobanCredentialsType(Box<SorobanCredentialsType>),
3553    SorobanCredentials(Box<SorobanCredentials>),
3554    SorobanAuthorizationEntry(Box<SorobanAuthorizationEntry>),
3555    SorobanAuthorizationEntries(Box<SorobanAuthorizationEntries>),
3556    InvokeHostFunctionOp(Box<InvokeHostFunctionOp>),
3557    ExtendFootprintTtlOp(Box<ExtendFootprintTtlOp>),
3558    RestoreFootprintOp(Box<RestoreFootprintOp>),
3559    Operation(Box<Operation>),
3560    OperationBody(Box<OperationBody>),
3561    HashIdPreimage(Box<HashIdPreimage>),
3562    HashIdPreimageOperationId(Box<HashIdPreimageOperationId>),
3563    HashIdPreimageRevokeId(Box<HashIdPreimageRevokeId>),
3564    HashIdPreimageContractId(Box<HashIdPreimageContractId>),
3565    HashIdPreimageSorobanAuthorization(Box<HashIdPreimageSorobanAuthorization>),
3566    HashIdPreimageSorobanAuthorizationWithAddress(
3567        Box<HashIdPreimageSorobanAuthorizationWithAddress>,
3568    ),
3569    MemoType(Box<MemoType>),
3570    Memo(Box<Memo>),
3571    TimeBounds(Box<TimeBounds>),
3572    LedgerBounds(Box<LedgerBounds>),
3573    PreconditionsV2(Box<PreconditionsV2>),
3574    PreconditionType(Box<PreconditionType>),
3575    Preconditions(Box<Preconditions>),
3576    LedgerFootprint(Box<LedgerFootprint>),
3577    SorobanResources(Box<SorobanResources>),
3578    SorobanResourcesExtV0(Box<SorobanResourcesExtV0>),
3579    SorobanTransactionData(Box<SorobanTransactionData>),
3580    SorobanTransactionDataExt(Box<SorobanTransactionDataExt>),
3581    TransactionV0(Box<TransactionV0>),
3582    TransactionV0Ext(Box<TransactionV0Ext>),
3583    TransactionV0Envelope(Box<TransactionV0Envelope>),
3584    Transaction(Box<Transaction>),
3585    TransactionExt(Box<TransactionExt>),
3586    TransactionV1Envelope(Box<TransactionV1Envelope>),
3587    FeeBumpTransaction(Box<FeeBumpTransaction>),
3588    FeeBumpTransactionInnerTx(Box<FeeBumpTransactionInnerTx>),
3589    FeeBumpTransactionExt(Box<FeeBumpTransactionExt>),
3590    FeeBumpTransactionEnvelope(Box<FeeBumpTransactionEnvelope>),
3591    TransactionEnvelope(Box<TransactionEnvelope>),
3592    TransactionSignaturePayload(Box<TransactionSignaturePayload>),
3593    TransactionSignaturePayloadTaggedTransaction(Box<TransactionSignaturePayloadTaggedTransaction>),
3594    ClaimAtomType(Box<ClaimAtomType>),
3595    ClaimOfferAtomV0(Box<ClaimOfferAtomV0>),
3596    ClaimOfferAtom(Box<ClaimOfferAtom>),
3597    ClaimLiquidityAtom(Box<ClaimLiquidityAtom>),
3598    ClaimAtom(Box<ClaimAtom>),
3599    CreateAccountResultCode(Box<CreateAccountResultCode>),
3600    CreateAccountResult(Box<CreateAccountResult>),
3601    PaymentResultCode(Box<PaymentResultCode>),
3602    PaymentResult(Box<PaymentResult>),
3603    PathPaymentStrictReceiveResultCode(Box<PathPaymentStrictReceiveResultCode>),
3604    SimplePaymentResult(Box<SimplePaymentResult>),
3605    PathPaymentStrictReceiveResult(Box<PathPaymentStrictReceiveResult>),
3606    PathPaymentStrictReceiveResultSuccess(Box<PathPaymentStrictReceiveResultSuccess>),
3607    PathPaymentStrictSendResultCode(Box<PathPaymentStrictSendResultCode>),
3608    PathPaymentStrictSendResult(Box<PathPaymentStrictSendResult>),
3609    PathPaymentStrictSendResultSuccess(Box<PathPaymentStrictSendResultSuccess>),
3610    ManageSellOfferResultCode(Box<ManageSellOfferResultCode>),
3611    ManageOfferEffect(Box<ManageOfferEffect>),
3612    ManageOfferSuccessResult(Box<ManageOfferSuccessResult>),
3613    ManageOfferSuccessResultOffer(Box<ManageOfferSuccessResultOffer>),
3614    ManageSellOfferResult(Box<ManageSellOfferResult>),
3615    ManageBuyOfferResultCode(Box<ManageBuyOfferResultCode>),
3616    ManageBuyOfferResult(Box<ManageBuyOfferResult>),
3617    SetOptionsResultCode(Box<SetOptionsResultCode>),
3618    SetOptionsResult(Box<SetOptionsResult>),
3619    ChangeTrustResultCode(Box<ChangeTrustResultCode>),
3620    ChangeTrustResult(Box<ChangeTrustResult>),
3621    AllowTrustResultCode(Box<AllowTrustResultCode>),
3622    AllowTrustResult(Box<AllowTrustResult>),
3623    AccountMergeResultCode(Box<AccountMergeResultCode>),
3624    AccountMergeResult(Box<AccountMergeResult>),
3625    InflationResultCode(Box<InflationResultCode>),
3626    InflationPayout(Box<InflationPayout>),
3627    InflationResult(Box<InflationResult>),
3628    ManageDataResultCode(Box<ManageDataResultCode>),
3629    ManageDataResult(Box<ManageDataResult>),
3630    BumpSequenceResultCode(Box<BumpSequenceResultCode>),
3631    BumpSequenceResult(Box<BumpSequenceResult>),
3632    CreateClaimableBalanceResultCode(Box<CreateClaimableBalanceResultCode>),
3633    CreateClaimableBalanceResult(Box<CreateClaimableBalanceResult>),
3634    ClaimClaimableBalanceResultCode(Box<ClaimClaimableBalanceResultCode>),
3635    ClaimClaimableBalanceResult(Box<ClaimClaimableBalanceResult>),
3636    BeginSponsoringFutureReservesResultCode(Box<BeginSponsoringFutureReservesResultCode>),
3637    BeginSponsoringFutureReservesResult(Box<BeginSponsoringFutureReservesResult>),
3638    EndSponsoringFutureReservesResultCode(Box<EndSponsoringFutureReservesResultCode>),
3639    EndSponsoringFutureReservesResult(Box<EndSponsoringFutureReservesResult>),
3640    RevokeSponsorshipResultCode(Box<RevokeSponsorshipResultCode>),
3641    RevokeSponsorshipResult(Box<RevokeSponsorshipResult>),
3642    ClawbackResultCode(Box<ClawbackResultCode>),
3643    ClawbackResult(Box<ClawbackResult>),
3644    ClawbackClaimableBalanceResultCode(Box<ClawbackClaimableBalanceResultCode>),
3645    ClawbackClaimableBalanceResult(Box<ClawbackClaimableBalanceResult>),
3646    SetTrustLineFlagsResultCode(Box<SetTrustLineFlagsResultCode>),
3647    SetTrustLineFlagsResult(Box<SetTrustLineFlagsResult>),
3648    LiquidityPoolDepositResultCode(Box<LiquidityPoolDepositResultCode>),
3649    LiquidityPoolDepositResult(Box<LiquidityPoolDepositResult>),
3650    LiquidityPoolWithdrawResultCode(Box<LiquidityPoolWithdrawResultCode>),
3651    LiquidityPoolWithdrawResult(Box<LiquidityPoolWithdrawResult>),
3652    InvokeHostFunctionResultCode(Box<InvokeHostFunctionResultCode>),
3653    InvokeHostFunctionResult(Box<InvokeHostFunctionResult>),
3654    ExtendFootprintTtlResultCode(Box<ExtendFootprintTtlResultCode>),
3655    ExtendFootprintTtlResult(Box<ExtendFootprintTtlResult>),
3656    RestoreFootprintResultCode(Box<RestoreFootprintResultCode>),
3657    RestoreFootprintResult(Box<RestoreFootprintResult>),
3658    OperationResultCode(Box<OperationResultCode>),
3659    OperationResult(Box<OperationResult>),
3660    OperationResultTr(Box<OperationResultTr>),
3661    TransactionResultCode(Box<TransactionResultCode>),
3662    InnerTransactionResult(Box<InnerTransactionResult>),
3663    InnerTransactionResultResult(Box<InnerTransactionResultResult>),
3664    InnerTransactionResultExt(Box<InnerTransactionResultExt>),
3665    InnerTransactionResultPair(Box<InnerTransactionResultPair>),
3666    TransactionResult(Box<TransactionResult>),
3667    TransactionResultResult(Box<TransactionResultResult>),
3668    TransactionResultExt(Box<TransactionResultExt>),
3669    Hash(Box<Hash>),
3670    Uint256(Box<Uint256>),
3671    Uint32(Box<Uint32>),
3672    Int32(Box<Int32>),
3673    Uint64(Box<Uint64>),
3674    Int64(Box<Int64>),
3675    TimePoint(Box<TimePoint>),
3676    Duration(Box<Duration>),
3677    ExtensionPoint(Box<ExtensionPoint>),
3678    CryptoKeyType(Box<CryptoKeyType>),
3679    PublicKeyType(Box<PublicKeyType>),
3680    SignerKeyType(Box<SignerKeyType>),
3681    PublicKey(Box<PublicKey>),
3682    SignerKey(Box<SignerKey>),
3683    SignerKeyEd25519SignedPayload(Box<SignerKeyEd25519SignedPayload>),
3684    Signature(Box<Signature>),
3685    SignatureHint(Box<SignatureHint>),
3686    NodeId(Box<NodeId>),
3687    AccountId(Box<AccountId>),
3688    ContractId(Box<ContractId>),
3689    Curve25519Secret(Box<Curve25519Secret>),
3690    Curve25519Public(Box<Curve25519Public>),
3691    HmacSha256Key(Box<HmacSha256Key>),
3692    HmacSha256Mac(Box<HmacSha256Mac>),
3693    ShortHashSeed(Box<ShortHashSeed>),
3694    BinaryFuseFilterType(Box<BinaryFuseFilterType>),
3695    SerializedBinaryFuseFilter(Box<SerializedBinaryFuseFilter>),
3696    PoolId(Box<PoolId>),
3697    ClaimableBalanceIdType(Box<ClaimableBalanceIdType>),
3698    ClaimableBalanceId(Box<ClaimableBalanceId>),
3699    #[cfg(feature = "test_feature")]
3700    TestNextType(Box<TestNextType>),
3701}
3702
3703#[cfg(feature = "type_enum")]
3704impl Type {
3705    const _VARIANTS: &[TypeVariant] = &[
3706        TypeVariant::Value,
3707        TypeVariant::ScpBallot,
3708        TypeVariant::ScpStatementType,
3709        TypeVariant::ScpNomination,
3710        TypeVariant::ScpStatement,
3711        TypeVariant::ScpStatementPledges,
3712        TypeVariant::ScpStatementPrepare,
3713        TypeVariant::ScpStatementConfirm,
3714        TypeVariant::ScpStatementExternalize,
3715        TypeVariant::ScpEnvelope,
3716        TypeVariant::ScpQuorumSet,
3717        TypeVariant::EncodedLedgerKey,
3718        TypeVariant::ConfigSettingContractExecutionLanesV0,
3719        TypeVariant::ConfigSettingContractComputeV0,
3720        TypeVariant::ConfigSettingContractParallelComputeV0,
3721        TypeVariant::ConfigSettingContractLedgerCostV0,
3722        TypeVariant::ConfigSettingContractLedgerCostExtV0,
3723        TypeVariant::ConfigSettingContractHistoricalDataV0,
3724        TypeVariant::ConfigSettingContractEventsV0,
3725        TypeVariant::ConfigSettingContractBandwidthV0,
3726        TypeVariant::ContractCostType,
3727        TypeVariant::ContractCostParamEntry,
3728        TypeVariant::StateArchivalSettings,
3729        TypeVariant::EvictionIterator,
3730        TypeVariant::ConfigSettingScpTiming,
3731        TypeVariant::FrozenLedgerKeys,
3732        TypeVariant::FrozenLedgerKeysDelta,
3733        TypeVariant::FreezeBypassTxs,
3734        TypeVariant::FreezeBypassTxsDelta,
3735        TypeVariant::ContractCostParams,
3736        TypeVariant::ConfigSettingId,
3737        TypeVariant::ConfigSettingEntry,
3738        TypeVariant::ScEnvMetaKind,
3739        TypeVariant::ScEnvMetaEntry,
3740        TypeVariant::ScEnvMetaEntryInterfaceVersion,
3741        TypeVariant::ScMetaV0,
3742        TypeVariant::ScMetaKind,
3743        TypeVariant::ScMetaEntry,
3744        TypeVariant::ScSpecType,
3745        TypeVariant::ScSpecTypeOption,
3746        TypeVariant::ScSpecTypeResult,
3747        TypeVariant::ScSpecTypeVec,
3748        TypeVariant::ScSpecTypeMap,
3749        TypeVariant::ScSpecTypeTuple,
3750        TypeVariant::ScSpecTypeBytesN,
3751        TypeVariant::ScSpecTypeUdt,
3752        TypeVariant::ScSpecTypeDef,
3753        TypeVariant::ScSpecUdtStructFieldV0,
3754        TypeVariant::ScSpecUdtStructV0,
3755        TypeVariant::ScSpecUdtUnionCaseVoidV0,
3756        TypeVariant::ScSpecUdtUnionCaseTupleV0,
3757        TypeVariant::ScSpecUdtUnionCaseV0Kind,
3758        TypeVariant::ScSpecUdtUnionCaseV0,
3759        TypeVariant::ScSpecUdtUnionV0,
3760        TypeVariant::ScSpecUdtEnumCaseV0,
3761        TypeVariant::ScSpecUdtEnumV0,
3762        TypeVariant::ScSpecUdtErrorEnumCaseV0,
3763        TypeVariant::ScSpecUdtErrorEnumV0,
3764        TypeVariant::ScSpecFunctionInputV0,
3765        TypeVariant::ScSpecFunctionV0,
3766        TypeVariant::ScSpecEventParamLocationV0,
3767        TypeVariant::ScSpecEventParamV0,
3768        TypeVariant::ScSpecEventDataFormat,
3769        TypeVariant::ScSpecEventV0,
3770        TypeVariant::ScSpecEntryKind,
3771        TypeVariant::ScSpecEntry,
3772        TypeVariant::ScValType,
3773        TypeVariant::ScErrorType,
3774        TypeVariant::ScErrorCode,
3775        TypeVariant::ScError,
3776        TypeVariant::UInt128Parts,
3777        TypeVariant::Int128Parts,
3778        TypeVariant::UInt256Parts,
3779        TypeVariant::Int256Parts,
3780        TypeVariant::ContractExecutableType,
3781        TypeVariant::ContractExecutable,
3782        TypeVariant::ScAddressType,
3783        TypeVariant::MuxedEd25519Account,
3784        TypeVariant::ScAddress,
3785        TypeVariant::ScVec,
3786        TypeVariant::ScMap,
3787        TypeVariant::ScBytes,
3788        TypeVariant::ScString,
3789        TypeVariant::ScSymbol,
3790        TypeVariant::ScNonceKey,
3791        TypeVariant::ScContractInstance,
3792        TypeVariant::ScVal,
3793        TypeVariant::ScMapEntry,
3794        TypeVariant::LedgerCloseMetaBatch,
3795        TypeVariant::StoredTransactionSet,
3796        TypeVariant::StoredDebugTransactionSet,
3797        TypeVariant::PersistedScpStateV0,
3798        TypeVariant::PersistedScpStateV1,
3799        TypeVariant::PersistedScpState,
3800        TypeVariant::Thresholds,
3801        TypeVariant::String32,
3802        TypeVariant::String64,
3803        TypeVariant::SequenceNumber,
3804        TypeVariant::DataValue,
3805        TypeVariant::AssetCode4,
3806        TypeVariant::AssetCode12,
3807        TypeVariant::AssetType,
3808        TypeVariant::AssetCode,
3809        TypeVariant::AlphaNum4,
3810        TypeVariant::AlphaNum12,
3811        TypeVariant::Asset,
3812        TypeVariant::Price,
3813        TypeVariant::Liabilities,
3814        TypeVariant::ThresholdIndexes,
3815        TypeVariant::LedgerEntryType,
3816        TypeVariant::Signer,
3817        TypeVariant::AccountFlags,
3818        TypeVariant::SponsorshipDescriptor,
3819        TypeVariant::AccountEntryExtensionV3,
3820        TypeVariant::AccountEntryExtensionV2,
3821        TypeVariant::AccountEntryExtensionV2Ext,
3822        TypeVariant::AccountEntryExtensionV1,
3823        TypeVariant::AccountEntryExtensionV1Ext,
3824        TypeVariant::AccountEntry,
3825        TypeVariant::AccountEntryExt,
3826        TypeVariant::TrustLineFlags,
3827        TypeVariant::LiquidityPoolType,
3828        TypeVariant::TrustLineAsset,
3829        TypeVariant::TrustLineEntryExtensionV2,
3830        TypeVariant::TrustLineEntryExtensionV2Ext,
3831        TypeVariant::TrustLineEntry,
3832        TypeVariant::TrustLineEntryExt,
3833        TypeVariant::TrustLineEntryV1,
3834        TypeVariant::TrustLineEntryV1Ext,
3835        TypeVariant::OfferEntryFlags,
3836        TypeVariant::OfferEntry,
3837        TypeVariant::OfferEntryExt,
3838        TypeVariant::DataEntry,
3839        TypeVariant::DataEntryExt,
3840        TypeVariant::ClaimPredicateType,
3841        TypeVariant::ClaimPredicate,
3842        TypeVariant::ClaimantType,
3843        TypeVariant::Claimant,
3844        TypeVariant::ClaimantV0,
3845        TypeVariant::ClaimableBalanceFlags,
3846        TypeVariant::ClaimableBalanceEntryExtensionV1,
3847        TypeVariant::ClaimableBalanceEntryExtensionV1Ext,
3848        TypeVariant::ClaimableBalanceEntry,
3849        TypeVariant::ClaimableBalanceEntryExt,
3850        TypeVariant::LiquidityPoolConstantProductParameters,
3851        TypeVariant::LiquidityPoolEntry,
3852        TypeVariant::LiquidityPoolEntryBody,
3853        TypeVariant::LiquidityPoolEntryConstantProduct,
3854        TypeVariant::ContractDataDurability,
3855        TypeVariant::ContractDataEntry,
3856        TypeVariant::ContractCodeCostInputs,
3857        TypeVariant::ContractCodeEntry,
3858        TypeVariant::ContractCodeEntryExt,
3859        TypeVariant::ContractCodeEntryV1,
3860        TypeVariant::TtlEntry,
3861        TypeVariant::LedgerEntryExtensionV1,
3862        TypeVariant::LedgerEntryExtensionV1Ext,
3863        TypeVariant::LedgerEntry,
3864        TypeVariant::LedgerEntryData,
3865        TypeVariant::LedgerEntryExt,
3866        TypeVariant::LedgerKey,
3867        TypeVariant::LedgerKeyAccount,
3868        TypeVariant::LedgerKeyTrustLine,
3869        TypeVariant::LedgerKeyOffer,
3870        TypeVariant::LedgerKeyData,
3871        TypeVariant::LedgerKeyClaimableBalance,
3872        TypeVariant::LedgerKeyLiquidityPool,
3873        TypeVariant::LedgerKeyContractData,
3874        TypeVariant::LedgerKeyContractCode,
3875        TypeVariant::LedgerKeyConfigSetting,
3876        TypeVariant::LedgerKeyTtl,
3877        TypeVariant::EnvelopeType,
3878        TypeVariant::BucketListType,
3879        TypeVariant::BucketEntryType,
3880        TypeVariant::HotArchiveBucketEntryType,
3881        TypeVariant::BucketMetadata,
3882        TypeVariant::BucketMetadataExt,
3883        TypeVariant::BucketEntry,
3884        TypeVariant::HotArchiveBucketEntry,
3885        TypeVariant::UpgradeType,
3886        TypeVariant::StellarValueType,
3887        TypeVariant::LedgerCloseValueSignature,
3888        TypeVariant::StellarValue,
3889        TypeVariant::StellarValueExt,
3890        #[cfg(feature = "cap_0083")]
3891        TypeVariant::StellarValueProposedValue,
3892        TypeVariant::LedgerHeaderFlags,
3893        TypeVariant::LedgerHeaderExtensionV1,
3894        TypeVariant::LedgerHeaderExtensionV1Ext,
3895        TypeVariant::LedgerHeader,
3896        TypeVariant::LedgerHeaderExt,
3897        TypeVariant::LedgerUpgradeType,
3898        TypeVariant::ConfigUpgradeSetKey,
3899        TypeVariant::LedgerUpgrade,
3900        TypeVariant::ConfigUpgradeSet,
3901        TypeVariant::TxSetComponentType,
3902        TypeVariant::DependentTxCluster,
3903        TypeVariant::ParallelTxExecutionStage,
3904        TypeVariant::ParallelTxsComponent,
3905        TypeVariant::TxSetComponent,
3906        TypeVariant::TxSetComponentTxsMaybeDiscountedFee,
3907        TypeVariant::TransactionPhase,
3908        TypeVariant::TransactionSet,
3909        TypeVariant::TransactionSetV1,
3910        TypeVariant::GeneralizedTransactionSet,
3911        TypeVariant::TransactionResultPair,
3912        TypeVariant::TransactionResultSet,
3913        TypeVariant::TransactionHistoryEntry,
3914        TypeVariant::TransactionHistoryEntryExt,
3915        TypeVariant::TransactionHistoryResultEntry,
3916        TypeVariant::TransactionHistoryResultEntryExt,
3917        TypeVariant::LedgerHeaderHistoryEntry,
3918        TypeVariant::LedgerHeaderHistoryEntryExt,
3919        TypeVariant::LedgerScpMessages,
3920        TypeVariant::ScpHistoryEntryV0,
3921        TypeVariant::ScpHistoryEntry,
3922        TypeVariant::LedgerEntryChangeType,
3923        TypeVariant::LedgerEntryChange,
3924        TypeVariant::LedgerEntryChanges,
3925        TypeVariant::OperationMeta,
3926        TypeVariant::TransactionMetaV1,
3927        TypeVariant::TransactionMetaV2,
3928        TypeVariant::ContractEventType,
3929        TypeVariant::ContractEvent,
3930        TypeVariant::ContractEventBody,
3931        TypeVariant::ContractEventV0,
3932        TypeVariant::DiagnosticEvent,
3933        TypeVariant::SorobanTransactionMetaExtV1,
3934        TypeVariant::SorobanTransactionMetaExt,
3935        TypeVariant::SorobanTransactionMeta,
3936        TypeVariant::TransactionMetaV3,
3937        TypeVariant::OperationMetaV2,
3938        TypeVariant::SorobanTransactionMetaV2,
3939        TypeVariant::TransactionEventStage,
3940        TypeVariant::TransactionEvent,
3941        TypeVariant::TransactionMetaV4,
3942        TypeVariant::InvokeHostFunctionSuccessPreImage,
3943        TypeVariant::TransactionMeta,
3944        TypeVariant::TransactionResultMeta,
3945        TypeVariant::TransactionResultMetaV1,
3946        TypeVariant::UpgradeEntryMeta,
3947        TypeVariant::LedgerCloseMetaV0,
3948        TypeVariant::LedgerCloseMetaExtV1,
3949        TypeVariant::LedgerCloseMetaExt,
3950        TypeVariant::LedgerCloseMetaV1,
3951        TypeVariant::LedgerCloseMetaV2,
3952        TypeVariant::LedgerCloseMeta,
3953        TypeVariant::ErrorCode,
3954        TypeVariant::SError,
3955        TypeVariant::SendMore,
3956        TypeVariant::SendMoreExtended,
3957        TypeVariant::AuthCert,
3958        TypeVariant::Hello,
3959        TypeVariant::Auth,
3960        TypeVariant::IpAddrType,
3961        TypeVariant::PeerAddress,
3962        TypeVariant::PeerAddressIp,
3963        TypeVariant::MessageType,
3964        TypeVariant::DontHave,
3965        TypeVariant::SurveyMessageCommandType,
3966        TypeVariant::SurveyMessageResponseType,
3967        TypeVariant::TimeSlicedSurveyStartCollectingMessage,
3968        TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage,
3969        TypeVariant::TimeSlicedSurveyStopCollectingMessage,
3970        TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage,
3971        TypeVariant::SurveyRequestMessage,
3972        TypeVariant::TimeSlicedSurveyRequestMessage,
3973        TypeVariant::SignedTimeSlicedSurveyRequestMessage,
3974        TypeVariant::EncryptedBody,
3975        TypeVariant::SurveyResponseMessage,
3976        TypeVariant::TimeSlicedSurveyResponseMessage,
3977        TypeVariant::SignedTimeSlicedSurveyResponseMessage,
3978        TypeVariant::PeerStats,
3979        TypeVariant::TimeSlicedNodeData,
3980        TypeVariant::TimeSlicedPeerData,
3981        TypeVariant::TimeSlicedPeerDataList,
3982        TypeVariant::TopologyResponseBodyV2,
3983        TypeVariant::SurveyResponseBody,
3984        TypeVariant::TxAdvertVector,
3985        TypeVariant::FloodAdvert,
3986        TypeVariant::TxDemandVector,
3987        TypeVariant::FloodDemand,
3988        TypeVariant::StellarMessage,
3989        TypeVariant::AuthenticatedMessage,
3990        TypeVariant::AuthenticatedMessageV0,
3991        TypeVariant::LiquidityPoolParameters,
3992        TypeVariant::MuxedAccount,
3993        TypeVariant::MuxedAccountMed25519,
3994        TypeVariant::DecoratedSignature,
3995        TypeVariant::OperationType,
3996        TypeVariant::CreateAccountOp,
3997        TypeVariant::PaymentOp,
3998        TypeVariant::PathPaymentStrictReceiveOp,
3999        TypeVariant::PathPaymentStrictSendOp,
4000        TypeVariant::ManageSellOfferOp,
4001        TypeVariant::ManageBuyOfferOp,
4002        TypeVariant::CreatePassiveSellOfferOp,
4003        TypeVariant::SetOptionsOp,
4004        TypeVariant::ChangeTrustAsset,
4005        TypeVariant::ChangeTrustOp,
4006        TypeVariant::AllowTrustOp,
4007        TypeVariant::ManageDataOp,
4008        TypeVariant::BumpSequenceOp,
4009        TypeVariant::CreateClaimableBalanceOp,
4010        TypeVariant::ClaimClaimableBalanceOp,
4011        TypeVariant::BeginSponsoringFutureReservesOp,
4012        TypeVariant::RevokeSponsorshipType,
4013        TypeVariant::RevokeSponsorshipOp,
4014        TypeVariant::RevokeSponsorshipOpSigner,
4015        TypeVariant::ClawbackOp,
4016        TypeVariant::ClawbackClaimableBalanceOp,
4017        TypeVariant::SetTrustLineFlagsOp,
4018        TypeVariant::LiquidityPoolDepositOp,
4019        TypeVariant::LiquidityPoolWithdrawOp,
4020        TypeVariant::HostFunctionType,
4021        TypeVariant::ContractIdPreimageType,
4022        TypeVariant::ContractIdPreimage,
4023        TypeVariant::ContractIdPreimageFromAddress,
4024        TypeVariant::CreateContractArgs,
4025        TypeVariant::CreateContractArgsV2,
4026        TypeVariant::InvokeContractArgs,
4027        TypeVariant::HostFunction,
4028        TypeVariant::SorobanAuthorizedFunctionType,
4029        TypeVariant::SorobanAuthorizedFunction,
4030        TypeVariant::SorobanAuthorizedInvocation,
4031        TypeVariant::SorobanAddressCredentials,
4032        TypeVariant::SorobanDelegateSignature,
4033        TypeVariant::SorobanAddressCredentialsWithDelegates,
4034        TypeVariant::SorobanCredentialsType,
4035        TypeVariant::SorobanCredentials,
4036        TypeVariant::SorobanAuthorizationEntry,
4037        TypeVariant::SorobanAuthorizationEntries,
4038        TypeVariant::InvokeHostFunctionOp,
4039        TypeVariant::ExtendFootprintTtlOp,
4040        TypeVariant::RestoreFootprintOp,
4041        TypeVariant::Operation,
4042        TypeVariant::OperationBody,
4043        TypeVariant::HashIdPreimage,
4044        TypeVariant::HashIdPreimageOperationId,
4045        TypeVariant::HashIdPreimageRevokeId,
4046        TypeVariant::HashIdPreimageContractId,
4047        TypeVariant::HashIdPreimageSorobanAuthorization,
4048        TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress,
4049        TypeVariant::MemoType,
4050        TypeVariant::Memo,
4051        TypeVariant::TimeBounds,
4052        TypeVariant::LedgerBounds,
4053        TypeVariant::PreconditionsV2,
4054        TypeVariant::PreconditionType,
4055        TypeVariant::Preconditions,
4056        TypeVariant::LedgerFootprint,
4057        TypeVariant::SorobanResources,
4058        TypeVariant::SorobanResourcesExtV0,
4059        TypeVariant::SorobanTransactionData,
4060        TypeVariant::SorobanTransactionDataExt,
4061        TypeVariant::TransactionV0,
4062        TypeVariant::TransactionV0Ext,
4063        TypeVariant::TransactionV0Envelope,
4064        TypeVariant::Transaction,
4065        TypeVariant::TransactionExt,
4066        TypeVariant::TransactionV1Envelope,
4067        TypeVariant::FeeBumpTransaction,
4068        TypeVariant::FeeBumpTransactionInnerTx,
4069        TypeVariant::FeeBumpTransactionExt,
4070        TypeVariant::FeeBumpTransactionEnvelope,
4071        TypeVariant::TransactionEnvelope,
4072        TypeVariant::TransactionSignaturePayload,
4073        TypeVariant::TransactionSignaturePayloadTaggedTransaction,
4074        TypeVariant::ClaimAtomType,
4075        TypeVariant::ClaimOfferAtomV0,
4076        TypeVariant::ClaimOfferAtom,
4077        TypeVariant::ClaimLiquidityAtom,
4078        TypeVariant::ClaimAtom,
4079        TypeVariant::CreateAccountResultCode,
4080        TypeVariant::CreateAccountResult,
4081        TypeVariant::PaymentResultCode,
4082        TypeVariant::PaymentResult,
4083        TypeVariant::PathPaymentStrictReceiveResultCode,
4084        TypeVariant::SimplePaymentResult,
4085        TypeVariant::PathPaymentStrictReceiveResult,
4086        TypeVariant::PathPaymentStrictReceiveResultSuccess,
4087        TypeVariant::PathPaymentStrictSendResultCode,
4088        TypeVariant::PathPaymentStrictSendResult,
4089        TypeVariant::PathPaymentStrictSendResultSuccess,
4090        TypeVariant::ManageSellOfferResultCode,
4091        TypeVariant::ManageOfferEffect,
4092        TypeVariant::ManageOfferSuccessResult,
4093        TypeVariant::ManageOfferSuccessResultOffer,
4094        TypeVariant::ManageSellOfferResult,
4095        TypeVariant::ManageBuyOfferResultCode,
4096        TypeVariant::ManageBuyOfferResult,
4097        TypeVariant::SetOptionsResultCode,
4098        TypeVariant::SetOptionsResult,
4099        TypeVariant::ChangeTrustResultCode,
4100        TypeVariant::ChangeTrustResult,
4101        TypeVariant::AllowTrustResultCode,
4102        TypeVariant::AllowTrustResult,
4103        TypeVariant::AccountMergeResultCode,
4104        TypeVariant::AccountMergeResult,
4105        TypeVariant::InflationResultCode,
4106        TypeVariant::InflationPayout,
4107        TypeVariant::InflationResult,
4108        TypeVariant::ManageDataResultCode,
4109        TypeVariant::ManageDataResult,
4110        TypeVariant::BumpSequenceResultCode,
4111        TypeVariant::BumpSequenceResult,
4112        TypeVariant::CreateClaimableBalanceResultCode,
4113        TypeVariant::CreateClaimableBalanceResult,
4114        TypeVariant::ClaimClaimableBalanceResultCode,
4115        TypeVariant::ClaimClaimableBalanceResult,
4116        TypeVariant::BeginSponsoringFutureReservesResultCode,
4117        TypeVariant::BeginSponsoringFutureReservesResult,
4118        TypeVariant::EndSponsoringFutureReservesResultCode,
4119        TypeVariant::EndSponsoringFutureReservesResult,
4120        TypeVariant::RevokeSponsorshipResultCode,
4121        TypeVariant::RevokeSponsorshipResult,
4122        TypeVariant::ClawbackResultCode,
4123        TypeVariant::ClawbackResult,
4124        TypeVariant::ClawbackClaimableBalanceResultCode,
4125        TypeVariant::ClawbackClaimableBalanceResult,
4126        TypeVariant::SetTrustLineFlagsResultCode,
4127        TypeVariant::SetTrustLineFlagsResult,
4128        TypeVariant::LiquidityPoolDepositResultCode,
4129        TypeVariant::LiquidityPoolDepositResult,
4130        TypeVariant::LiquidityPoolWithdrawResultCode,
4131        TypeVariant::LiquidityPoolWithdrawResult,
4132        TypeVariant::InvokeHostFunctionResultCode,
4133        TypeVariant::InvokeHostFunctionResult,
4134        TypeVariant::ExtendFootprintTtlResultCode,
4135        TypeVariant::ExtendFootprintTtlResult,
4136        TypeVariant::RestoreFootprintResultCode,
4137        TypeVariant::RestoreFootprintResult,
4138        TypeVariant::OperationResultCode,
4139        TypeVariant::OperationResult,
4140        TypeVariant::OperationResultTr,
4141        TypeVariant::TransactionResultCode,
4142        TypeVariant::InnerTransactionResult,
4143        TypeVariant::InnerTransactionResultResult,
4144        TypeVariant::InnerTransactionResultExt,
4145        TypeVariant::InnerTransactionResultPair,
4146        TypeVariant::TransactionResult,
4147        TypeVariant::TransactionResultResult,
4148        TypeVariant::TransactionResultExt,
4149        TypeVariant::Hash,
4150        TypeVariant::Uint256,
4151        TypeVariant::Uint32,
4152        TypeVariant::Int32,
4153        TypeVariant::Uint64,
4154        TypeVariant::Int64,
4155        TypeVariant::TimePoint,
4156        TypeVariant::Duration,
4157        TypeVariant::ExtensionPoint,
4158        TypeVariant::CryptoKeyType,
4159        TypeVariant::PublicKeyType,
4160        TypeVariant::SignerKeyType,
4161        TypeVariant::PublicKey,
4162        TypeVariant::SignerKey,
4163        TypeVariant::SignerKeyEd25519SignedPayload,
4164        TypeVariant::Signature,
4165        TypeVariant::SignatureHint,
4166        TypeVariant::NodeId,
4167        TypeVariant::AccountId,
4168        TypeVariant::ContractId,
4169        TypeVariant::Curve25519Secret,
4170        TypeVariant::Curve25519Public,
4171        TypeVariant::HmacSha256Key,
4172        TypeVariant::HmacSha256Mac,
4173        TypeVariant::ShortHashSeed,
4174        TypeVariant::BinaryFuseFilterType,
4175        TypeVariant::SerializedBinaryFuseFilter,
4176        TypeVariant::PoolId,
4177        TypeVariant::ClaimableBalanceIdType,
4178        TypeVariant::ClaimableBalanceId,
4179        #[cfg(feature = "test_feature")]
4180        TypeVariant::TestNextType,
4181    ];
4182    pub const VARIANTS: [TypeVariant; Self::_VARIANTS.len()] = {
4183        let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
4184        let mut i = 1;
4185        while i < Self::_VARIANTS.len() {
4186            arr[i] = Self::_VARIANTS[i];
4187            i += 1;
4188        }
4189        arr
4190    };
4191    const _VARIANTS_STR: &[&str] = &[
4192        "Value",
4193        "ScpBallot",
4194        "ScpStatementType",
4195        "ScpNomination",
4196        "ScpStatement",
4197        "ScpStatementPledges",
4198        "ScpStatementPrepare",
4199        "ScpStatementConfirm",
4200        "ScpStatementExternalize",
4201        "ScpEnvelope",
4202        "ScpQuorumSet",
4203        "EncodedLedgerKey",
4204        "ConfigSettingContractExecutionLanesV0",
4205        "ConfigSettingContractComputeV0",
4206        "ConfigSettingContractParallelComputeV0",
4207        "ConfigSettingContractLedgerCostV0",
4208        "ConfigSettingContractLedgerCostExtV0",
4209        "ConfigSettingContractHistoricalDataV0",
4210        "ConfigSettingContractEventsV0",
4211        "ConfigSettingContractBandwidthV0",
4212        "ContractCostType",
4213        "ContractCostParamEntry",
4214        "StateArchivalSettings",
4215        "EvictionIterator",
4216        "ConfigSettingScpTiming",
4217        "FrozenLedgerKeys",
4218        "FrozenLedgerKeysDelta",
4219        "FreezeBypassTxs",
4220        "FreezeBypassTxsDelta",
4221        "ContractCostParams",
4222        "ConfigSettingId",
4223        "ConfigSettingEntry",
4224        "ScEnvMetaKind",
4225        "ScEnvMetaEntry",
4226        "ScEnvMetaEntryInterfaceVersion",
4227        "ScMetaV0",
4228        "ScMetaKind",
4229        "ScMetaEntry",
4230        "ScSpecType",
4231        "ScSpecTypeOption",
4232        "ScSpecTypeResult",
4233        "ScSpecTypeVec",
4234        "ScSpecTypeMap",
4235        "ScSpecTypeTuple",
4236        "ScSpecTypeBytesN",
4237        "ScSpecTypeUdt",
4238        "ScSpecTypeDef",
4239        "ScSpecUdtStructFieldV0",
4240        "ScSpecUdtStructV0",
4241        "ScSpecUdtUnionCaseVoidV0",
4242        "ScSpecUdtUnionCaseTupleV0",
4243        "ScSpecUdtUnionCaseV0Kind",
4244        "ScSpecUdtUnionCaseV0",
4245        "ScSpecUdtUnionV0",
4246        "ScSpecUdtEnumCaseV0",
4247        "ScSpecUdtEnumV0",
4248        "ScSpecUdtErrorEnumCaseV0",
4249        "ScSpecUdtErrorEnumV0",
4250        "ScSpecFunctionInputV0",
4251        "ScSpecFunctionV0",
4252        "ScSpecEventParamLocationV0",
4253        "ScSpecEventParamV0",
4254        "ScSpecEventDataFormat",
4255        "ScSpecEventV0",
4256        "ScSpecEntryKind",
4257        "ScSpecEntry",
4258        "ScValType",
4259        "ScErrorType",
4260        "ScErrorCode",
4261        "ScError",
4262        "UInt128Parts",
4263        "Int128Parts",
4264        "UInt256Parts",
4265        "Int256Parts",
4266        "ContractExecutableType",
4267        "ContractExecutable",
4268        "ScAddressType",
4269        "MuxedEd25519Account",
4270        "ScAddress",
4271        "ScVec",
4272        "ScMap",
4273        "ScBytes",
4274        "ScString",
4275        "ScSymbol",
4276        "ScNonceKey",
4277        "ScContractInstance",
4278        "ScVal",
4279        "ScMapEntry",
4280        "LedgerCloseMetaBatch",
4281        "StoredTransactionSet",
4282        "StoredDebugTransactionSet",
4283        "PersistedScpStateV0",
4284        "PersistedScpStateV1",
4285        "PersistedScpState",
4286        "Thresholds",
4287        "String32",
4288        "String64",
4289        "SequenceNumber",
4290        "DataValue",
4291        "AssetCode4",
4292        "AssetCode12",
4293        "AssetType",
4294        "AssetCode",
4295        "AlphaNum4",
4296        "AlphaNum12",
4297        "Asset",
4298        "Price",
4299        "Liabilities",
4300        "ThresholdIndexes",
4301        "LedgerEntryType",
4302        "Signer",
4303        "AccountFlags",
4304        "SponsorshipDescriptor",
4305        "AccountEntryExtensionV3",
4306        "AccountEntryExtensionV2",
4307        "AccountEntryExtensionV2Ext",
4308        "AccountEntryExtensionV1",
4309        "AccountEntryExtensionV1Ext",
4310        "AccountEntry",
4311        "AccountEntryExt",
4312        "TrustLineFlags",
4313        "LiquidityPoolType",
4314        "TrustLineAsset",
4315        "TrustLineEntryExtensionV2",
4316        "TrustLineEntryExtensionV2Ext",
4317        "TrustLineEntry",
4318        "TrustLineEntryExt",
4319        "TrustLineEntryV1",
4320        "TrustLineEntryV1Ext",
4321        "OfferEntryFlags",
4322        "OfferEntry",
4323        "OfferEntryExt",
4324        "DataEntry",
4325        "DataEntryExt",
4326        "ClaimPredicateType",
4327        "ClaimPredicate",
4328        "ClaimantType",
4329        "Claimant",
4330        "ClaimantV0",
4331        "ClaimableBalanceFlags",
4332        "ClaimableBalanceEntryExtensionV1",
4333        "ClaimableBalanceEntryExtensionV1Ext",
4334        "ClaimableBalanceEntry",
4335        "ClaimableBalanceEntryExt",
4336        "LiquidityPoolConstantProductParameters",
4337        "LiquidityPoolEntry",
4338        "LiquidityPoolEntryBody",
4339        "LiquidityPoolEntryConstantProduct",
4340        "ContractDataDurability",
4341        "ContractDataEntry",
4342        "ContractCodeCostInputs",
4343        "ContractCodeEntry",
4344        "ContractCodeEntryExt",
4345        "ContractCodeEntryV1",
4346        "TtlEntry",
4347        "LedgerEntryExtensionV1",
4348        "LedgerEntryExtensionV1Ext",
4349        "LedgerEntry",
4350        "LedgerEntryData",
4351        "LedgerEntryExt",
4352        "LedgerKey",
4353        "LedgerKeyAccount",
4354        "LedgerKeyTrustLine",
4355        "LedgerKeyOffer",
4356        "LedgerKeyData",
4357        "LedgerKeyClaimableBalance",
4358        "LedgerKeyLiquidityPool",
4359        "LedgerKeyContractData",
4360        "LedgerKeyContractCode",
4361        "LedgerKeyConfigSetting",
4362        "LedgerKeyTtl",
4363        "EnvelopeType",
4364        "BucketListType",
4365        "BucketEntryType",
4366        "HotArchiveBucketEntryType",
4367        "BucketMetadata",
4368        "BucketMetadataExt",
4369        "BucketEntry",
4370        "HotArchiveBucketEntry",
4371        "UpgradeType",
4372        "StellarValueType",
4373        "LedgerCloseValueSignature",
4374        "StellarValue",
4375        "StellarValueExt",
4376        #[cfg(feature = "cap_0083")]
4377        "StellarValueProposedValue",
4378        "LedgerHeaderFlags",
4379        "LedgerHeaderExtensionV1",
4380        "LedgerHeaderExtensionV1Ext",
4381        "LedgerHeader",
4382        "LedgerHeaderExt",
4383        "LedgerUpgradeType",
4384        "ConfigUpgradeSetKey",
4385        "LedgerUpgrade",
4386        "ConfigUpgradeSet",
4387        "TxSetComponentType",
4388        "DependentTxCluster",
4389        "ParallelTxExecutionStage",
4390        "ParallelTxsComponent",
4391        "TxSetComponent",
4392        "TxSetComponentTxsMaybeDiscountedFee",
4393        "TransactionPhase",
4394        "TransactionSet",
4395        "TransactionSetV1",
4396        "GeneralizedTransactionSet",
4397        "TransactionResultPair",
4398        "TransactionResultSet",
4399        "TransactionHistoryEntry",
4400        "TransactionHistoryEntryExt",
4401        "TransactionHistoryResultEntry",
4402        "TransactionHistoryResultEntryExt",
4403        "LedgerHeaderHistoryEntry",
4404        "LedgerHeaderHistoryEntryExt",
4405        "LedgerScpMessages",
4406        "ScpHistoryEntryV0",
4407        "ScpHistoryEntry",
4408        "LedgerEntryChangeType",
4409        "LedgerEntryChange",
4410        "LedgerEntryChanges",
4411        "OperationMeta",
4412        "TransactionMetaV1",
4413        "TransactionMetaV2",
4414        "ContractEventType",
4415        "ContractEvent",
4416        "ContractEventBody",
4417        "ContractEventV0",
4418        "DiagnosticEvent",
4419        "SorobanTransactionMetaExtV1",
4420        "SorobanTransactionMetaExt",
4421        "SorobanTransactionMeta",
4422        "TransactionMetaV3",
4423        "OperationMetaV2",
4424        "SorobanTransactionMetaV2",
4425        "TransactionEventStage",
4426        "TransactionEvent",
4427        "TransactionMetaV4",
4428        "InvokeHostFunctionSuccessPreImage",
4429        "TransactionMeta",
4430        "TransactionResultMeta",
4431        "TransactionResultMetaV1",
4432        "UpgradeEntryMeta",
4433        "LedgerCloseMetaV0",
4434        "LedgerCloseMetaExtV1",
4435        "LedgerCloseMetaExt",
4436        "LedgerCloseMetaV1",
4437        "LedgerCloseMetaV2",
4438        "LedgerCloseMeta",
4439        "ErrorCode",
4440        "SError",
4441        "SendMore",
4442        "SendMoreExtended",
4443        "AuthCert",
4444        "Hello",
4445        "Auth",
4446        "IpAddrType",
4447        "PeerAddress",
4448        "PeerAddressIp",
4449        "MessageType",
4450        "DontHave",
4451        "SurveyMessageCommandType",
4452        "SurveyMessageResponseType",
4453        "TimeSlicedSurveyStartCollectingMessage",
4454        "SignedTimeSlicedSurveyStartCollectingMessage",
4455        "TimeSlicedSurveyStopCollectingMessage",
4456        "SignedTimeSlicedSurveyStopCollectingMessage",
4457        "SurveyRequestMessage",
4458        "TimeSlicedSurveyRequestMessage",
4459        "SignedTimeSlicedSurveyRequestMessage",
4460        "EncryptedBody",
4461        "SurveyResponseMessage",
4462        "TimeSlicedSurveyResponseMessage",
4463        "SignedTimeSlicedSurveyResponseMessage",
4464        "PeerStats",
4465        "TimeSlicedNodeData",
4466        "TimeSlicedPeerData",
4467        "TimeSlicedPeerDataList",
4468        "TopologyResponseBodyV2",
4469        "SurveyResponseBody",
4470        "TxAdvertVector",
4471        "FloodAdvert",
4472        "TxDemandVector",
4473        "FloodDemand",
4474        "StellarMessage",
4475        "AuthenticatedMessage",
4476        "AuthenticatedMessageV0",
4477        "LiquidityPoolParameters",
4478        "MuxedAccount",
4479        "MuxedAccountMed25519",
4480        "DecoratedSignature",
4481        "OperationType",
4482        "CreateAccountOp",
4483        "PaymentOp",
4484        "PathPaymentStrictReceiveOp",
4485        "PathPaymentStrictSendOp",
4486        "ManageSellOfferOp",
4487        "ManageBuyOfferOp",
4488        "CreatePassiveSellOfferOp",
4489        "SetOptionsOp",
4490        "ChangeTrustAsset",
4491        "ChangeTrustOp",
4492        "AllowTrustOp",
4493        "ManageDataOp",
4494        "BumpSequenceOp",
4495        "CreateClaimableBalanceOp",
4496        "ClaimClaimableBalanceOp",
4497        "BeginSponsoringFutureReservesOp",
4498        "RevokeSponsorshipType",
4499        "RevokeSponsorshipOp",
4500        "RevokeSponsorshipOpSigner",
4501        "ClawbackOp",
4502        "ClawbackClaimableBalanceOp",
4503        "SetTrustLineFlagsOp",
4504        "LiquidityPoolDepositOp",
4505        "LiquidityPoolWithdrawOp",
4506        "HostFunctionType",
4507        "ContractIdPreimageType",
4508        "ContractIdPreimage",
4509        "ContractIdPreimageFromAddress",
4510        "CreateContractArgs",
4511        "CreateContractArgsV2",
4512        "InvokeContractArgs",
4513        "HostFunction",
4514        "SorobanAuthorizedFunctionType",
4515        "SorobanAuthorizedFunction",
4516        "SorobanAuthorizedInvocation",
4517        "SorobanAddressCredentials",
4518        "SorobanDelegateSignature",
4519        "SorobanAddressCredentialsWithDelegates",
4520        "SorobanCredentialsType",
4521        "SorobanCredentials",
4522        "SorobanAuthorizationEntry",
4523        "SorobanAuthorizationEntries",
4524        "InvokeHostFunctionOp",
4525        "ExtendFootprintTtlOp",
4526        "RestoreFootprintOp",
4527        "Operation",
4528        "OperationBody",
4529        "HashIdPreimage",
4530        "HashIdPreimageOperationId",
4531        "HashIdPreimageRevokeId",
4532        "HashIdPreimageContractId",
4533        "HashIdPreimageSorobanAuthorization",
4534        "HashIdPreimageSorobanAuthorizationWithAddress",
4535        "MemoType",
4536        "Memo",
4537        "TimeBounds",
4538        "LedgerBounds",
4539        "PreconditionsV2",
4540        "PreconditionType",
4541        "Preconditions",
4542        "LedgerFootprint",
4543        "SorobanResources",
4544        "SorobanResourcesExtV0",
4545        "SorobanTransactionData",
4546        "SorobanTransactionDataExt",
4547        "TransactionV0",
4548        "TransactionV0Ext",
4549        "TransactionV0Envelope",
4550        "Transaction",
4551        "TransactionExt",
4552        "TransactionV1Envelope",
4553        "FeeBumpTransaction",
4554        "FeeBumpTransactionInnerTx",
4555        "FeeBumpTransactionExt",
4556        "FeeBumpTransactionEnvelope",
4557        "TransactionEnvelope",
4558        "TransactionSignaturePayload",
4559        "TransactionSignaturePayloadTaggedTransaction",
4560        "ClaimAtomType",
4561        "ClaimOfferAtomV0",
4562        "ClaimOfferAtom",
4563        "ClaimLiquidityAtom",
4564        "ClaimAtom",
4565        "CreateAccountResultCode",
4566        "CreateAccountResult",
4567        "PaymentResultCode",
4568        "PaymentResult",
4569        "PathPaymentStrictReceiveResultCode",
4570        "SimplePaymentResult",
4571        "PathPaymentStrictReceiveResult",
4572        "PathPaymentStrictReceiveResultSuccess",
4573        "PathPaymentStrictSendResultCode",
4574        "PathPaymentStrictSendResult",
4575        "PathPaymentStrictSendResultSuccess",
4576        "ManageSellOfferResultCode",
4577        "ManageOfferEffect",
4578        "ManageOfferSuccessResult",
4579        "ManageOfferSuccessResultOffer",
4580        "ManageSellOfferResult",
4581        "ManageBuyOfferResultCode",
4582        "ManageBuyOfferResult",
4583        "SetOptionsResultCode",
4584        "SetOptionsResult",
4585        "ChangeTrustResultCode",
4586        "ChangeTrustResult",
4587        "AllowTrustResultCode",
4588        "AllowTrustResult",
4589        "AccountMergeResultCode",
4590        "AccountMergeResult",
4591        "InflationResultCode",
4592        "InflationPayout",
4593        "InflationResult",
4594        "ManageDataResultCode",
4595        "ManageDataResult",
4596        "BumpSequenceResultCode",
4597        "BumpSequenceResult",
4598        "CreateClaimableBalanceResultCode",
4599        "CreateClaimableBalanceResult",
4600        "ClaimClaimableBalanceResultCode",
4601        "ClaimClaimableBalanceResult",
4602        "BeginSponsoringFutureReservesResultCode",
4603        "BeginSponsoringFutureReservesResult",
4604        "EndSponsoringFutureReservesResultCode",
4605        "EndSponsoringFutureReservesResult",
4606        "RevokeSponsorshipResultCode",
4607        "RevokeSponsorshipResult",
4608        "ClawbackResultCode",
4609        "ClawbackResult",
4610        "ClawbackClaimableBalanceResultCode",
4611        "ClawbackClaimableBalanceResult",
4612        "SetTrustLineFlagsResultCode",
4613        "SetTrustLineFlagsResult",
4614        "LiquidityPoolDepositResultCode",
4615        "LiquidityPoolDepositResult",
4616        "LiquidityPoolWithdrawResultCode",
4617        "LiquidityPoolWithdrawResult",
4618        "InvokeHostFunctionResultCode",
4619        "InvokeHostFunctionResult",
4620        "ExtendFootprintTtlResultCode",
4621        "ExtendFootprintTtlResult",
4622        "RestoreFootprintResultCode",
4623        "RestoreFootprintResult",
4624        "OperationResultCode",
4625        "OperationResult",
4626        "OperationResultTr",
4627        "TransactionResultCode",
4628        "InnerTransactionResult",
4629        "InnerTransactionResultResult",
4630        "InnerTransactionResultExt",
4631        "InnerTransactionResultPair",
4632        "TransactionResult",
4633        "TransactionResultResult",
4634        "TransactionResultExt",
4635        "Hash",
4636        "Uint256",
4637        "Uint32",
4638        "Int32",
4639        "Uint64",
4640        "Int64",
4641        "TimePoint",
4642        "Duration",
4643        "ExtensionPoint",
4644        "CryptoKeyType",
4645        "PublicKeyType",
4646        "SignerKeyType",
4647        "PublicKey",
4648        "SignerKey",
4649        "SignerKeyEd25519SignedPayload",
4650        "Signature",
4651        "SignatureHint",
4652        "NodeId",
4653        "AccountId",
4654        "ContractId",
4655        "Curve25519Secret",
4656        "Curve25519Public",
4657        "HmacSha256Key",
4658        "HmacSha256Mac",
4659        "ShortHashSeed",
4660        "BinaryFuseFilterType",
4661        "SerializedBinaryFuseFilter",
4662        "PoolId",
4663        "ClaimableBalanceIdType",
4664        "ClaimableBalanceId",
4665        #[cfg(feature = "test_feature")]
4666        "TestNextType",
4667    ];
4668    pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
4669        let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
4670        let mut i = 1;
4671        while i < Self::_VARIANTS_STR.len() {
4672            arr[i] = Self::_VARIANTS_STR[i];
4673            i += 1;
4674        }
4675        arr
4676    };
4677
4678    #[cfg(feature = "std")]
4679    #[allow(clippy::too_many_lines)]
4680    pub fn read_xdr<R: Read>(v: TypeVariant, r: &mut Limited<R>) -> Result<Self, Error> {
4681        match v {
4682            TypeVariant::Value => {
4683                r.with_limited_depth(|r| Ok(Self::Value(Box::new(Value::read_xdr(r)?))))
4684            }
4685            TypeVariant::ScpBallot => {
4686                r.with_limited_depth(|r| Ok(Self::ScpBallot(Box::new(ScpBallot::read_xdr(r)?))))
4687            }
4688            TypeVariant::ScpStatementType => r.with_limited_depth(|r| {
4689                Ok(Self::ScpStatementType(Box::new(
4690                    ScpStatementType::read_xdr(r)?,
4691                )))
4692            }),
4693            TypeVariant::ScpNomination => r.with_limited_depth(|r| {
4694                Ok(Self::ScpNomination(Box::new(ScpNomination::read_xdr(r)?)))
4695            }),
4696            TypeVariant::ScpStatement => r.with_limited_depth(|r| {
4697                Ok(Self::ScpStatement(Box::new(ScpStatement::read_xdr(r)?)))
4698            }),
4699            TypeVariant::ScpStatementPledges => r.with_limited_depth(|r| {
4700                Ok(Self::ScpStatementPledges(Box::new(
4701                    ScpStatementPledges::read_xdr(r)?,
4702                )))
4703            }),
4704            TypeVariant::ScpStatementPrepare => r.with_limited_depth(|r| {
4705                Ok(Self::ScpStatementPrepare(Box::new(
4706                    ScpStatementPrepare::read_xdr(r)?,
4707                )))
4708            }),
4709            TypeVariant::ScpStatementConfirm => r.with_limited_depth(|r| {
4710                Ok(Self::ScpStatementConfirm(Box::new(
4711                    ScpStatementConfirm::read_xdr(r)?,
4712                )))
4713            }),
4714            TypeVariant::ScpStatementExternalize => r.with_limited_depth(|r| {
4715                Ok(Self::ScpStatementExternalize(Box::new(
4716                    ScpStatementExternalize::read_xdr(r)?,
4717                )))
4718            }),
4719            TypeVariant::ScpEnvelope => {
4720                r.with_limited_depth(|r| Ok(Self::ScpEnvelope(Box::new(ScpEnvelope::read_xdr(r)?))))
4721            }
4722            TypeVariant::ScpQuorumSet => r.with_limited_depth(|r| {
4723                Ok(Self::ScpQuorumSet(Box::new(ScpQuorumSet::read_xdr(r)?)))
4724            }),
4725            TypeVariant::EncodedLedgerKey => r.with_limited_depth(|r| {
4726                Ok(Self::EncodedLedgerKey(Box::new(
4727                    EncodedLedgerKey::read_xdr(r)?,
4728                )))
4729            }),
4730            TypeVariant::ConfigSettingContractExecutionLanesV0 => r.with_limited_depth(|r| {
4731                Ok(Self::ConfigSettingContractExecutionLanesV0(Box::new(
4732                    ConfigSettingContractExecutionLanesV0::read_xdr(r)?,
4733                )))
4734            }),
4735            TypeVariant::ConfigSettingContractComputeV0 => r.with_limited_depth(|r| {
4736                Ok(Self::ConfigSettingContractComputeV0(Box::new(
4737                    ConfigSettingContractComputeV0::read_xdr(r)?,
4738                )))
4739            }),
4740            TypeVariant::ConfigSettingContractParallelComputeV0 => r.with_limited_depth(|r| {
4741                Ok(Self::ConfigSettingContractParallelComputeV0(Box::new(
4742                    ConfigSettingContractParallelComputeV0::read_xdr(r)?,
4743                )))
4744            }),
4745            TypeVariant::ConfigSettingContractLedgerCostV0 => r.with_limited_depth(|r| {
4746                Ok(Self::ConfigSettingContractLedgerCostV0(Box::new(
4747                    ConfigSettingContractLedgerCostV0::read_xdr(r)?,
4748                )))
4749            }),
4750            TypeVariant::ConfigSettingContractLedgerCostExtV0 => r.with_limited_depth(|r| {
4751                Ok(Self::ConfigSettingContractLedgerCostExtV0(Box::new(
4752                    ConfigSettingContractLedgerCostExtV0::read_xdr(r)?,
4753                )))
4754            }),
4755            TypeVariant::ConfigSettingContractHistoricalDataV0 => r.with_limited_depth(|r| {
4756                Ok(Self::ConfigSettingContractHistoricalDataV0(Box::new(
4757                    ConfigSettingContractHistoricalDataV0::read_xdr(r)?,
4758                )))
4759            }),
4760            TypeVariant::ConfigSettingContractEventsV0 => r.with_limited_depth(|r| {
4761                Ok(Self::ConfigSettingContractEventsV0(Box::new(
4762                    ConfigSettingContractEventsV0::read_xdr(r)?,
4763                )))
4764            }),
4765            TypeVariant::ConfigSettingContractBandwidthV0 => r.with_limited_depth(|r| {
4766                Ok(Self::ConfigSettingContractBandwidthV0(Box::new(
4767                    ConfigSettingContractBandwidthV0::read_xdr(r)?,
4768                )))
4769            }),
4770            TypeVariant::ContractCostType => r.with_limited_depth(|r| {
4771                Ok(Self::ContractCostType(Box::new(
4772                    ContractCostType::read_xdr(r)?,
4773                )))
4774            }),
4775            TypeVariant::ContractCostParamEntry => r.with_limited_depth(|r| {
4776                Ok(Self::ContractCostParamEntry(Box::new(
4777                    ContractCostParamEntry::read_xdr(r)?,
4778                )))
4779            }),
4780            TypeVariant::StateArchivalSettings => r.with_limited_depth(|r| {
4781                Ok(Self::StateArchivalSettings(Box::new(
4782                    StateArchivalSettings::read_xdr(r)?,
4783                )))
4784            }),
4785            TypeVariant::EvictionIterator => r.with_limited_depth(|r| {
4786                Ok(Self::EvictionIterator(Box::new(
4787                    EvictionIterator::read_xdr(r)?,
4788                )))
4789            }),
4790            TypeVariant::ConfigSettingScpTiming => r.with_limited_depth(|r| {
4791                Ok(Self::ConfigSettingScpTiming(Box::new(
4792                    ConfigSettingScpTiming::read_xdr(r)?,
4793                )))
4794            }),
4795            TypeVariant::FrozenLedgerKeys => r.with_limited_depth(|r| {
4796                Ok(Self::FrozenLedgerKeys(Box::new(
4797                    FrozenLedgerKeys::read_xdr(r)?,
4798                )))
4799            }),
4800            TypeVariant::FrozenLedgerKeysDelta => r.with_limited_depth(|r| {
4801                Ok(Self::FrozenLedgerKeysDelta(Box::new(
4802                    FrozenLedgerKeysDelta::read_xdr(r)?,
4803                )))
4804            }),
4805            TypeVariant::FreezeBypassTxs => r.with_limited_depth(|r| {
4806                Ok(Self::FreezeBypassTxs(Box::new(FreezeBypassTxs::read_xdr(
4807                    r,
4808                )?)))
4809            }),
4810            TypeVariant::FreezeBypassTxsDelta => r.with_limited_depth(|r| {
4811                Ok(Self::FreezeBypassTxsDelta(Box::new(
4812                    FreezeBypassTxsDelta::read_xdr(r)?,
4813                )))
4814            }),
4815            TypeVariant::ContractCostParams => r.with_limited_depth(|r| {
4816                Ok(Self::ContractCostParams(Box::new(
4817                    ContractCostParams::read_xdr(r)?,
4818                )))
4819            }),
4820            TypeVariant::ConfigSettingId => r.with_limited_depth(|r| {
4821                Ok(Self::ConfigSettingId(Box::new(ConfigSettingId::read_xdr(
4822                    r,
4823                )?)))
4824            }),
4825            TypeVariant::ConfigSettingEntry => r.with_limited_depth(|r| {
4826                Ok(Self::ConfigSettingEntry(Box::new(
4827                    ConfigSettingEntry::read_xdr(r)?,
4828                )))
4829            }),
4830            TypeVariant::ScEnvMetaKind => r.with_limited_depth(|r| {
4831                Ok(Self::ScEnvMetaKind(Box::new(ScEnvMetaKind::read_xdr(r)?)))
4832            }),
4833            TypeVariant::ScEnvMetaEntry => r.with_limited_depth(|r| {
4834                Ok(Self::ScEnvMetaEntry(Box::new(ScEnvMetaEntry::read_xdr(r)?)))
4835            }),
4836            TypeVariant::ScEnvMetaEntryInterfaceVersion => r.with_limited_depth(|r| {
4837                Ok(Self::ScEnvMetaEntryInterfaceVersion(Box::new(
4838                    ScEnvMetaEntryInterfaceVersion::read_xdr(r)?,
4839                )))
4840            }),
4841            TypeVariant::ScMetaV0 => {
4842                r.with_limited_depth(|r| Ok(Self::ScMetaV0(Box::new(ScMetaV0::read_xdr(r)?))))
4843            }
4844            TypeVariant::ScMetaKind => {
4845                r.with_limited_depth(|r| Ok(Self::ScMetaKind(Box::new(ScMetaKind::read_xdr(r)?))))
4846            }
4847            TypeVariant::ScMetaEntry => {
4848                r.with_limited_depth(|r| Ok(Self::ScMetaEntry(Box::new(ScMetaEntry::read_xdr(r)?))))
4849            }
4850            TypeVariant::ScSpecType => {
4851                r.with_limited_depth(|r| Ok(Self::ScSpecType(Box::new(ScSpecType::read_xdr(r)?))))
4852            }
4853            TypeVariant::ScSpecTypeOption => r.with_limited_depth(|r| {
4854                Ok(Self::ScSpecTypeOption(Box::new(
4855                    ScSpecTypeOption::read_xdr(r)?,
4856                )))
4857            }),
4858            TypeVariant::ScSpecTypeResult => r.with_limited_depth(|r| {
4859                Ok(Self::ScSpecTypeResult(Box::new(
4860                    ScSpecTypeResult::read_xdr(r)?,
4861                )))
4862            }),
4863            TypeVariant::ScSpecTypeVec => r.with_limited_depth(|r| {
4864                Ok(Self::ScSpecTypeVec(Box::new(ScSpecTypeVec::read_xdr(r)?)))
4865            }),
4866            TypeVariant::ScSpecTypeMap => r.with_limited_depth(|r| {
4867                Ok(Self::ScSpecTypeMap(Box::new(ScSpecTypeMap::read_xdr(r)?)))
4868            }),
4869            TypeVariant::ScSpecTypeTuple => r.with_limited_depth(|r| {
4870                Ok(Self::ScSpecTypeTuple(Box::new(ScSpecTypeTuple::read_xdr(
4871                    r,
4872                )?)))
4873            }),
4874            TypeVariant::ScSpecTypeBytesN => r.with_limited_depth(|r| {
4875                Ok(Self::ScSpecTypeBytesN(Box::new(
4876                    ScSpecTypeBytesN::read_xdr(r)?,
4877                )))
4878            }),
4879            TypeVariant::ScSpecTypeUdt => r.with_limited_depth(|r| {
4880                Ok(Self::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::read_xdr(r)?)))
4881            }),
4882            TypeVariant::ScSpecTypeDef => r.with_limited_depth(|r| {
4883                Ok(Self::ScSpecTypeDef(Box::new(ScSpecTypeDef::read_xdr(r)?)))
4884            }),
4885            TypeVariant::ScSpecUdtStructFieldV0 => r.with_limited_depth(|r| {
4886                Ok(Self::ScSpecUdtStructFieldV0(Box::new(
4887                    ScSpecUdtStructFieldV0::read_xdr(r)?,
4888                )))
4889            }),
4890            TypeVariant::ScSpecUdtStructV0 => r.with_limited_depth(|r| {
4891                Ok(Self::ScSpecUdtStructV0(Box::new(
4892                    ScSpecUdtStructV0::read_xdr(r)?,
4893                )))
4894            }),
4895            TypeVariant::ScSpecUdtUnionCaseVoidV0 => r.with_limited_depth(|r| {
4896                Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
4897                    ScSpecUdtUnionCaseVoidV0::read_xdr(r)?,
4898                )))
4899            }),
4900            TypeVariant::ScSpecUdtUnionCaseTupleV0 => r.with_limited_depth(|r| {
4901                Ok(Self::ScSpecUdtUnionCaseTupleV0(Box::new(
4902                    ScSpecUdtUnionCaseTupleV0::read_xdr(r)?,
4903                )))
4904            }),
4905            TypeVariant::ScSpecUdtUnionCaseV0Kind => r.with_limited_depth(|r| {
4906                Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
4907                    ScSpecUdtUnionCaseV0Kind::read_xdr(r)?,
4908                )))
4909            }),
4910            TypeVariant::ScSpecUdtUnionCaseV0 => r.with_limited_depth(|r| {
4911                Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
4912                    ScSpecUdtUnionCaseV0::read_xdr(r)?,
4913                )))
4914            }),
4915            TypeVariant::ScSpecUdtUnionV0 => r.with_limited_depth(|r| {
4916                Ok(Self::ScSpecUdtUnionV0(Box::new(
4917                    ScSpecUdtUnionV0::read_xdr(r)?,
4918                )))
4919            }),
4920            TypeVariant::ScSpecUdtEnumCaseV0 => r.with_limited_depth(|r| {
4921                Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
4922                    ScSpecUdtEnumCaseV0::read_xdr(r)?,
4923                )))
4924            }),
4925            TypeVariant::ScSpecUdtEnumV0 => r.with_limited_depth(|r| {
4926                Ok(Self::ScSpecUdtEnumV0(Box::new(ScSpecUdtEnumV0::read_xdr(
4927                    r,
4928                )?)))
4929            }),
4930            TypeVariant::ScSpecUdtErrorEnumCaseV0 => r.with_limited_depth(|r| {
4931                Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
4932                    ScSpecUdtErrorEnumCaseV0::read_xdr(r)?,
4933                )))
4934            }),
4935            TypeVariant::ScSpecUdtErrorEnumV0 => r.with_limited_depth(|r| {
4936                Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
4937                    ScSpecUdtErrorEnumV0::read_xdr(r)?,
4938                )))
4939            }),
4940            TypeVariant::ScSpecFunctionInputV0 => r.with_limited_depth(|r| {
4941                Ok(Self::ScSpecFunctionInputV0(Box::new(
4942                    ScSpecFunctionInputV0::read_xdr(r)?,
4943                )))
4944            }),
4945            TypeVariant::ScSpecFunctionV0 => r.with_limited_depth(|r| {
4946                Ok(Self::ScSpecFunctionV0(Box::new(
4947                    ScSpecFunctionV0::read_xdr(r)?,
4948                )))
4949            }),
4950            TypeVariant::ScSpecEventParamLocationV0 => r.with_limited_depth(|r| {
4951                Ok(Self::ScSpecEventParamLocationV0(Box::new(
4952                    ScSpecEventParamLocationV0::read_xdr(r)?,
4953                )))
4954            }),
4955            TypeVariant::ScSpecEventParamV0 => r.with_limited_depth(|r| {
4956                Ok(Self::ScSpecEventParamV0(Box::new(
4957                    ScSpecEventParamV0::read_xdr(r)?,
4958                )))
4959            }),
4960            TypeVariant::ScSpecEventDataFormat => r.with_limited_depth(|r| {
4961                Ok(Self::ScSpecEventDataFormat(Box::new(
4962                    ScSpecEventDataFormat::read_xdr(r)?,
4963                )))
4964            }),
4965            TypeVariant::ScSpecEventV0 => r.with_limited_depth(|r| {
4966                Ok(Self::ScSpecEventV0(Box::new(ScSpecEventV0::read_xdr(r)?)))
4967            }),
4968            TypeVariant::ScSpecEntryKind => r.with_limited_depth(|r| {
4969                Ok(Self::ScSpecEntryKind(Box::new(ScSpecEntryKind::read_xdr(
4970                    r,
4971                )?)))
4972            }),
4973            TypeVariant::ScSpecEntry => {
4974                r.with_limited_depth(|r| Ok(Self::ScSpecEntry(Box::new(ScSpecEntry::read_xdr(r)?))))
4975            }
4976            TypeVariant::ScValType => {
4977                r.with_limited_depth(|r| Ok(Self::ScValType(Box::new(ScValType::read_xdr(r)?))))
4978            }
4979            TypeVariant::ScErrorType => {
4980                r.with_limited_depth(|r| Ok(Self::ScErrorType(Box::new(ScErrorType::read_xdr(r)?))))
4981            }
4982            TypeVariant::ScErrorCode => {
4983                r.with_limited_depth(|r| Ok(Self::ScErrorCode(Box::new(ScErrorCode::read_xdr(r)?))))
4984            }
4985            TypeVariant::ScError => {
4986                r.with_limited_depth(|r| Ok(Self::ScError(Box::new(ScError::read_xdr(r)?))))
4987            }
4988            TypeVariant::UInt128Parts => r.with_limited_depth(|r| {
4989                Ok(Self::UInt128Parts(Box::new(UInt128Parts::read_xdr(r)?)))
4990            }),
4991            TypeVariant::Int128Parts => {
4992                r.with_limited_depth(|r| Ok(Self::Int128Parts(Box::new(Int128Parts::read_xdr(r)?))))
4993            }
4994            TypeVariant::UInt256Parts => r.with_limited_depth(|r| {
4995                Ok(Self::UInt256Parts(Box::new(UInt256Parts::read_xdr(r)?)))
4996            }),
4997            TypeVariant::Int256Parts => {
4998                r.with_limited_depth(|r| Ok(Self::Int256Parts(Box::new(Int256Parts::read_xdr(r)?))))
4999            }
5000            TypeVariant::ContractExecutableType => r.with_limited_depth(|r| {
5001                Ok(Self::ContractExecutableType(Box::new(
5002                    ContractExecutableType::read_xdr(r)?,
5003                )))
5004            }),
5005            TypeVariant::ContractExecutable => r.with_limited_depth(|r| {
5006                Ok(Self::ContractExecutable(Box::new(
5007                    ContractExecutable::read_xdr(r)?,
5008                )))
5009            }),
5010            TypeVariant::ScAddressType => r.with_limited_depth(|r| {
5011                Ok(Self::ScAddressType(Box::new(ScAddressType::read_xdr(r)?)))
5012            }),
5013            TypeVariant::MuxedEd25519Account => r.with_limited_depth(|r| {
5014                Ok(Self::MuxedEd25519Account(Box::new(
5015                    MuxedEd25519Account::read_xdr(r)?,
5016                )))
5017            }),
5018            TypeVariant::ScAddress => {
5019                r.with_limited_depth(|r| Ok(Self::ScAddress(Box::new(ScAddress::read_xdr(r)?))))
5020            }
5021            TypeVariant::ScVec => {
5022                r.with_limited_depth(|r| Ok(Self::ScVec(Box::new(ScVec::read_xdr(r)?))))
5023            }
5024            TypeVariant::ScMap => {
5025                r.with_limited_depth(|r| Ok(Self::ScMap(Box::new(ScMap::read_xdr(r)?))))
5026            }
5027            TypeVariant::ScBytes => {
5028                r.with_limited_depth(|r| Ok(Self::ScBytes(Box::new(ScBytes::read_xdr(r)?))))
5029            }
5030            TypeVariant::ScString => {
5031                r.with_limited_depth(|r| Ok(Self::ScString(Box::new(ScString::read_xdr(r)?))))
5032            }
5033            TypeVariant::ScSymbol => {
5034                r.with_limited_depth(|r| Ok(Self::ScSymbol(Box::new(ScSymbol::read_xdr(r)?))))
5035            }
5036            TypeVariant::ScNonceKey => {
5037                r.with_limited_depth(|r| Ok(Self::ScNonceKey(Box::new(ScNonceKey::read_xdr(r)?))))
5038            }
5039            TypeVariant::ScContractInstance => r.with_limited_depth(|r| {
5040                Ok(Self::ScContractInstance(Box::new(
5041                    ScContractInstance::read_xdr(r)?,
5042                )))
5043            }),
5044            TypeVariant::ScVal => {
5045                r.with_limited_depth(|r| Ok(Self::ScVal(Box::new(ScVal::read_xdr(r)?))))
5046            }
5047            TypeVariant::ScMapEntry => {
5048                r.with_limited_depth(|r| Ok(Self::ScMapEntry(Box::new(ScMapEntry::read_xdr(r)?))))
5049            }
5050            TypeVariant::LedgerCloseMetaBatch => r.with_limited_depth(|r| {
5051                Ok(Self::LedgerCloseMetaBatch(Box::new(
5052                    LedgerCloseMetaBatch::read_xdr(r)?,
5053                )))
5054            }),
5055            TypeVariant::StoredTransactionSet => r.with_limited_depth(|r| {
5056                Ok(Self::StoredTransactionSet(Box::new(
5057                    StoredTransactionSet::read_xdr(r)?,
5058                )))
5059            }),
5060            TypeVariant::StoredDebugTransactionSet => r.with_limited_depth(|r| {
5061                Ok(Self::StoredDebugTransactionSet(Box::new(
5062                    StoredDebugTransactionSet::read_xdr(r)?,
5063                )))
5064            }),
5065            TypeVariant::PersistedScpStateV0 => r.with_limited_depth(|r| {
5066                Ok(Self::PersistedScpStateV0(Box::new(
5067                    PersistedScpStateV0::read_xdr(r)?,
5068                )))
5069            }),
5070            TypeVariant::PersistedScpStateV1 => r.with_limited_depth(|r| {
5071                Ok(Self::PersistedScpStateV1(Box::new(
5072                    PersistedScpStateV1::read_xdr(r)?,
5073                )))
5074            }),
5075            TypeVariant::PersistedScpState => r.with_limited_depth(|r| {
5076                Ok(Self::PersistedScpState(Box::new(
5077                    PersistedScpState::read_xdr(r)?,
5078                )))
5079            }),
5080            TypeVariant::Thresholds => {
5081                r.with_limited_depth(|r| Ok(Self::Thresholds(Box::new(Thresholds::read_xdr(r)?))))
5082            }
5083            TypeVariant::String32 => {
5084                r.with_limited_depth(|r| Ok(Self::String32(Box::new(String32::read_xdr(r)?))))
5085            }
5086            TypeVariant::String64 => {
5087                r.with_limited_depth(|r| Ok(Self::String64(Box::new(String64::read_xdr(r)?))))
5088            }
5089            TypeVariant::SequenceNumber => r.with_limited_depth(|r| {
5090                Ok(Self::SequenceNumber(Box::new(SequenceNumber::read_xdr(r)?)))
5091            }),
5092            TypeVariant::DataValue => {
5093                r.with_limited_depth(|r| Ok(Self::DataValue(Box::new(DataValue::read_xdr(r)?))))
5094            }
5095            TypeVariant::AssetCode4 => {
5096                r.with_limited_depth(|r| Ok(Self::AssetCode4(Box::new(AssetCode4::read_xdr(r)?))))
5097            }
5098            TypeVariant::AssetCode12 => {
5099                r.with_limited_depth(|r| Ok(Self::AssetCode12(Box::new(AssetCode12::read_xdr(r)?))))
5100            }
5101            TypeVariant::AssetType => {
5102                r.with_limited_depth(|r| Ok(Self::AssetType(Box::new(AssetType::read_xdr(r)?))))
5103            }
5104            TypeVariant::AssetCode => {
5105                r.with_limited_depth(|r| Ok(Self::AssetCode(Box::new(AssetCode::read_xdr(r)?))))
5106            }
5107            TypeVariant::AlphaNum4 => {
5108                r.with_limited_depth(|r| Ok(Self::AlphaNum4(Box::new(AlphaNum4::read_xdr(r)?))))
5109            }
5110            TypeVariant::AlphaNum12 => {
5111                r.with_limited_depth(|r| Ok(Self::AlphaNum12(Box::new(AlphaNum12::read_xdr(r)?))))
5112            }
5113            TypeVariant::Asset => {
5114                r.with_limited_depth(|r| Ok(Self::Asset(Box::new(Asset::read_xdr(r)?))))
5115            }
5116            TypeVariant::Price => {
5117                r.with_limited_depth(|r| Ok(Self::Price(Box::new(Price::read_xdr(r)?))))
5118            }
5119            TypeVariant::Liabilities => {
5120                r.with_limited_depth(|r| Ok(Self::Liabilities(Box::new(Liabilities::read_xdr(r)?))))
5121            }
5122            TypeVariant::ThresholdIndexes => r.with_limited_depth(|r| {
5123                Ok(Self::ThresholdIndexes(Box::new(
5124                    ThresholdIndexes::read_xdr(r)?,
5125                )))
5126            }),
5127            TypeVariant::LedgerEntryType => r.with_limited_depth(|r| {
5128                Ok(Self::LedgerEntryType(Box::new(LedgerEntryType::read_xdr(
5129                    r,
5130                )?)))
5131            }),
5132            TypeVariant::Signer => {
5133                r.with_limited_depth(|r| Ok(Self::Signer(Box::new(Signer::read_xdr(r)?))))
5134            }
5135            TypeVariant::AccountFlags => r.with_limited_depth(|r| {
5136                Ok(Self::AccountFlags(Box::new(AccountFlags::read_xdr(r)?)))
5137            }),
5138            TypeVariant::SponsorshipDescriptor => r.with_limited_depth(|r| {
5139                Ok(Self::SponsorshipDescriptor(Box::new(
5140                    SponsorshipDescriptor::read_xdr(r)?,
5141                )))
5142            }),
5143            TypeVariant::AccountEntryExtensionV3 => r.with_limited_depth(|r| {
5144                Ok(Self::AccountEntryExtensionV3(Box::new(
5145                    AccountEntryExtensionV3::read_xdr(r)?,
5146                )))
5147            }),
5148            TypeVariant::AccountEntryExtensionV2 => r.with_limited_depth(|r| {
5149                Ok(Self::AccountEntryExtensionV2(Box::new(
5150                    AccountEntryExtensionV2::read_xdr(r)?,
5151                )))
5152            }),
5153            TypeVariant::AccountEntryExtensionV2Ext => r.with_limited_depth(|r| {
5154                Ok(Self::AccountEntryExtensionV2Ext(Box::new(
5155                    AccountEntryExtensionV2Ext::read_xdr(r)?,
5156                )))
5157            }),
5158            TypeVariant::AccountEntryExtensionV1 => r.with_limited_depth(|r| {
5159                Ok(Self::AccountEntryExtensionV1(Box::new(
5160                    AccountEntryExtensionV1::read_xdr(r)?,
5161                )))
5162            }),
5163            TypeVariant::AccountEntryExtensionV1Ext => r.with_limited_depth(|r| {
5164                Ok(Self::AccountEntryExtensionV1Ext(Box::new(
5165                    AccountEntryExtensionV1Ext::read_xdr(r)?,
5166                )))
5167            }),
5168            TypeVariant::AccountEntry => r.with_limited_depth(|r| {
5169                Ok(Self::AccountEntry(Box::new(AccountEntry::read_xdr(r)?)))
5170            }),
5171            TypeVariant::AccountEntryExt => r.with_limited_depth(|r| {
5172                Ok(Self::AccountEntryExt(Box::new(AccountEntryExt::read_xdr(
5173                    r,
5174                )?)))
5175            }),
5176            TypeVariant::TrustLineFlags => r.with_limited_depth(|r| {
5177                Ok(Self::TrustLineFlags(Box::new(TrustLineFlags::read_xdr(r)?)))
5178            }),
5179            TypeVariant::LiquidityPoolType => r.with_limited_depth(|r| {
5180                Ok(Self::LiquidityPoolType(Box::new(
5181                    LiquidityPoolType::read_xdr(r)?,
5182                )))
5183            }),
5184            TypeVariant::TrustLineAsset => r.with_limited_depth(|r| {
5185                Ok(Self::TrustLineAsset(Box::new(TrustLineAsset::read_xdr(r)?)))
5186            }),
5187            TypeVariant::TrustLineEntryExtensionV2 => r.with_limited_depth(|r| {
5188                Ok(Self::TrustLineEntryExtensionV2(Box::new(
5189                    TrustLineEntryExtensionV2::read_xdr(r)?,
5190                )))
5191            }),
5192            TypeVariant::TrustLineEntryExtensionV2Ext => r.with_limited_depth(|r| {
5193                Ok(Self::TrustLineEntryExtensionV2Ext(Box::new(
5194                    TrustLineEntryExtensionV2Ext::read_xdr(r)?,
5195                )))
5196            }),
5197            TypeVariant::TrustLineEntry => r.with_limited_depth(|r| {
5198                Ok(Self::TrustLineEntry(Box::new(TrustLineEntry::read_xdr(r)?)))
5199            }),
5200            TypeVariant::TrustLineEntryExt => r.with_limited_depth(|r| {
5201                Ok(Self::TrustLineEntryExt(Box::new(
5202                    TrustLineEntryExt::read_xdr(r)?,
5203                )))
5204            }),
5205            TypeVariant::TrustLineEntryV1 => r.with_limited_depth(|r| {
5206                Ok(Self::TrustLineEntryV1(Box::new(
5207                    TrustLineEntryV1::read_xdr(r)?,
5208                )))
5209            }),
5210            TypeVariant::TrustLineEntryV1Ext => r.with_limited_depth(|r| {
5211                Ok(Self::TrustLineEntryV1Ext(Box::new(
5212                    TrustLineEntryV1Ext::read_xdr(r)?,
5213                )))
5214            }),
5215            TypeVariant::OfferEntryFlags => r.with_limited_depth(|r| {
5216                Ok(Self::OfferEntryFlags(Box::new(OfferEntryFlags::read_xdr(
5217                    r,
5218                )?)))
5219            }),
5220            TypeVariant::OfferEntry => {
5221                r.with_limited_depth(|r| Ok(Self::OfferEntry(Box::new(OfferEntry::read_xdr(r)?))))
5222            }
5223            TypeVariant::OfferEntryExt => r.with_limited_depth(|r| {
5224                Ok(Self::OfferEntryExt(Box::new(OfferEntryExt::read_xdr(r)?)))
5225            }),
5226            TypeVariant::DataEntry => {
5227                r.with_limited_depth(|r| Ok(Self::DataEntry(Box::new(DataEntry::read_xdr(r)?))))
5228            }
5229            TypeVariant::DataEntryExt => r.with_limited_depth(|r| {
5230                Ok(Self::DataEntryExt(Box::new(DataEntryExt::read_xdr(r)?)))
5231            }),
5232            TypeVariant::ClaimPredicateType => r.with_limited_depth(|r| {
5233                Ok(Self::ClaimPredicateType(Box::new(
5234                    ClaimPredicateType::read_xdr(r)?,
5235                )))
5236            }),
5237            TypeVariant::ClaimPredicate => r.with_limited_depth(|r| {
5238                Ok(Self::ClaimPredicate(Box::new(ClaimPredicate::read_xdr(r)?)))
5239            }),
5240            TypeVariant::ClaimantType => r.with_limited_depth(|r| {
5241                Ok(Self::ClaimantType(Box::new(ClaimantType::read_xdr(r)?)))
5242            }),
5243            TypeVariant::Claimant => {
5244                r.with_limited_depth(|r| Ok(Self::Claimant(Box::new(Claimant::read_xdr(r)?))))
5245            }
5246            TypeVariant::ClaimantV0 => {
5247                r.with_limited_depth(|r| Ok(Self::ClaimantV0(Box::new(ClaimantV0::read_xdr(r)?))))
5248            }
5249            TypeVariant::ClaimableBalanceFlags => r.with_limited_depth(|r| {
5250                Ok(Self::ClaimableBalanceFlags(Box::new(
5251                    ClaimableBalanceFlags::read_xdr(r)?,
5252                )))
5253            }),
5254            TypeVariant::ClaimableBalanceEntryExtensionV1 => r.with_limited_depth(|r| {
5255                Ok(Self::ClaimableBalanceEntryExtensionV1(Box::new(
5256                    ClaimableBalanceEntryExtensionV1::read_xdr(r)?,
5257                )))
5258            }),
5259            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => r.with_limited_depth(|r| {
5260                Ok(Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(
5261                    ClaimableBalanceEntryExtensionV1Ext::read_xdr(r)?,
5262                )))
5263            }),
5264            TypeVariant::ClaimableBalanceEntry => r.with_limited_depth(|r| {
5265                Ok(Self::ClaimableBalanceEntry(Box::new(
5266                    ClaimableBalanceEntry::read_xdr(r)?,
5267                )))
5268            }),
5269            TypeVariant::ClaimableBalanceEntryExt => r.with_limited_depth(|r| {
5270                Ok(Self::ClaimableBalanceEntryExt(Box::new(
5271                    ClaimableBalanceEntryExt::read_xdr(r)?,
5272                )))
5273            }),
5274            TypeVariant::LiquidityPoolConstantProductParameters => r.with_limited_depth(|r| {
5275                Ok(Self::LiquidityPoolConstantProductParameters(Box::new(
5276                    LiquidityPoolConstantProductParameters::read_xdr(r)?,
5277                )))
5278            }),
5279            TypeVariant::LiquidityPoolEntry => r.with_limited_depth(|r| {
5280                Ok(Self::LiquidityPoolEntry(Box::new(
5281                    LiquidityPoolEntry::read_xdr(r)?,
5282                )))
5283            }),
5284            TypeVariant::LiquidityPoolEntryBody => r.with_limited_depth(|r| {
5285                Ok(Self::LiquidityPoolEntryBody(Box::new(
5286                    LiquidityPoolEntryBody::read_xdr(r)?,
5287                )))
5288            }),
5289            TypeVariant::LiquidityPoolEntryConstantProduct => r.with_limited_depth(|r| {
5290                Ok(Self::LiquidityPoolEntryConstantProduct(Box::new(
5291                    LiquidityPoolEntryConstantProduct::read_xdr(r)?,
5292                )))
5293            }),
5294            TypeVariant::ContractDataDurability => r.with_limited_depth(|r| {
5295                Ok(Self::ContractDataDurability(Box::new(
5296                    ContractDataDurability::read_xdr(r)?,
5297                )))
5298            }),
5299            TypeVariant::ContractDataEntry => r.with_limited_depth(|r| {
5300                Ok(Self::ContractDataEntry(Box::new(
5301                    ContractDataEntry::read_xdr(r)?,
5302                )))
5303            }),
5304            TypeVariant::ContractCodeCostInputs => r.with_limited_depth(|r| {
5305                Ok(Self::ContractCodeCostInputs(Box::new(
5306                    ContractCodeCostInputs::read_xdr(r)?,
5307                )))
5308            }),
5309            TypeVariant::ContractCodeEntry => r.with_limited_depth(|r| {
5310                Ok(Self::ContractCodeEntry(Box::new(
5311                    ContractCodeEntry::read_xdr(r)?,
5312                )))
5313            }),
5314            TypeVariant::ContractCodeEntryExt => r.with_limited_depth(|r| {
5315                Ok(Self::ContractCodeEntryExt(Box::new(
5316                    ContractCodeEntryExt::read_xdr(r)?,
5317                )))
5318            }),
5319            TypeVariant::ContractCodeEntryV1 => r.with_limited_depth(|r| {
5320                Ok(Self::ContractCodeEntryV1(Box::new(
5321                    ContractCodeEntryV1::read_xdr(r)?,
5322                )))
5323            }),
5324            TypeVariant::TtlEntry => {
5325                r.with_limited_depth(|r| Ok(Self::TtlEntry(Box::new(TtlEntry::read_xdr(r)?))))
5326            }
5327            TypeVariant::LedgerEntryExtensionV1 => r.with_limited_depth(|r| {
5328                Ok(Self::LedgerEntryExtensionV1(Box::new(
5329                    LedgerEntryExtensionV1::read_xdr(r)?,
5330                )))
5331            }),
5332            TypeVariant::LedgerEntryExtensionV1Ext => r.with_limited_depth(|r| {
5333                Ok(Self::LedgerEntryExtensionV1Ext(Box::new(
5334                    LedgerEntryExtensionV1Ext::read_xdr(r)?,
5335                )))
5336            }),
5337            TypeVariant::LedgerEntry => {
5338                r.with_limited_depth(|r| Ok(Self::LedgerEntry(Box::new(LedgerEntry::read_xdr(r)?))))
5339            }
5340            TypeVariant::LedgerEntryData => r.with_limited_depth(|r| {
5341                Ok(Self::LedgerEntryData(Box::new(LedgerEntryData::read_xdr(
5342                    r,
5343                )?)))
5344            }),
5345            TypeVariant::LedgerEntryExt => r.with_limited_depth(|r| {
5346                Ok(Self::LedgerEntryExt(Box::new(LedgerEntryExt::read_xdr(r)?)))
5347            }),
5348            TypeVariant::LedgerKey => {
5349                r.with_limited_depth(|r| Ok(Self::LedgerKey(Box::new(LedgerKey::read_xdr(r)?))))
5350            }
5351            TypeVariant::LedgerKeyAccount => r.with_limited_depth(|r| {
5352                Ok(Self::LedgerKeyAccount(Box::new(
5353                    LedgerKeyAccount::read_xdr(r)?,
5354                )))
5355            }),
5356            TypeVariant::LedgerKeyTrustLine => r.with_limited_depth(|r| {
5357                Ok(Self::LedgerKeyTrustLine(Box::new(
5358                    LedgerKeyTrustLine::read_xdr(r)?,
5359                )))
5360            }),
5361            TypeVariant::LedgerKeyOffer => r.with_limited_depth(|r| {
5362                Ok(Self::LedgerKeyOffer(Box::new(LedgerKeyOffer::read_xdr(r)?)))
5363            }),
5364            TypeVariant::LedgerKeyData => r.with_limited_depth(|r| {
5365                Ok(Self::LedgerKeyData(Box::new(LedgerKeyData::read_xdr(r)?)))
5366            }),
5367            TypeVariant::LedgerKeyClaimableBalance => r.with_limited_depth(|r| {
5368                Ok(Self::LedgerKeyClaimableBalance(Box::new(
5369                    LedgerKeyClaimableBalance::read_xdr(r)?,
5370                )))
5371            }),
5372            TypeVariant::LedgerKeyLiquidityPool => r.with_limited_depth(|r| {
5373                Ok(Self::LedgerKeyLiquidityPool(Box::new(
5374                    LedgerKeyLiquidityPool::read_xdr(r)?,
5375                )))
5376            }),
5377            TypeVariant::LedgerKeyContractData => r.with_limited_depth(|r| {
5378                Ok(Self::LedgerKeyContractData(Box::new(
5379                    LedgerKeyContractData::read_xdr(r)?,
5380                )))
5381            }),
5382            TypeVariant::LedgerKeyContractCode => r.with_limited_depth(|r| {
5383                Ok(Self::LedgerKeyContractCode(Box::new(
5384                    LedgerKeyContractCode::read_xdr(r)?,
5385                )))
5386            }),
5387            TypeVariant::LedgerKeyConfigSetting => r.with_limited_depth(|r| {
5388                Ok(Self::LedgerKeyConfigSetting(Box::new(
5389                    LedgerKeyConfigSetting::read_xdr(r)?,
5390                )))
5391            }),
5392            TypeVariant::LedgerKeyTtl => r.with_limited_depth(|r| {
5393                Ok(Self::LedgerKeyTtl(Box::new(LedgerKeyTtl::read_xdr(r)?)))
5394            }),
5395            TypeVariant::EnvelopeType => r.with_limited_depth(|r| {
5396                Ok(Self::EnvelopeType(Box::new(EnvelopeType::read_xdr(r)?)))
5397            }),
5398            TypeVariant::BucketListType => r.with_limited_depth(|r| {
5399                Ok(Self::BucketListType(Box::new(BucketListType::read_xdr(r)?)))
5400            }),
5401            TypeVariant::BucketEntryType => r.with_limited_depth(|r| {
5402                Ok(Self::BucketEntryType(Box::new(BucketEntryType::read_xdr(
5403                    r,
5404                )?)))
5405            }),
5406            TypeVariant::HotArchiveBucketEntryType => r.with_limited_depth(|r| {
5407                Ok(Self::HotArchiveBucketEntryType(Box::new(
5408                    HotArchiveBucketEntryType::read_xdr(r)?,
5409                )))
5410            }),
5411            TypeVariant::BucketMetadata => r.with_limited_depth(|r| {
5412                Ok(Self::BucketMetadata(Box::new(BucketMetadata::read_xdr(r)?)))
5413            }),
5414            TypeVariant::BucketMetadataExt => r.with_limited_depth(|r| {
5415                Ok(Self::BucketMetadataExt(Box::new(
5416                    BucketMetadataExt::read_xdr(r)?,
5417                )))
5418            }),
5419            TypeVariant::BucketEntry => {
5420                r.with_limited_depth(|r| Ok(Self::BucketEntry(Box::new(BucketEntry::read_xdr(r)?))))
5421            }
5422            TypeVariant::HotArchiveBucketEntry => r.with_limited_depth(|r| {
5423                Ok(Self::HotArchiveBucketEntry(Box::new(
5424                    HotArchiveBucketEntry::read_xdr(r)?,
5425                )))
5426            }),
5427            TypeVariant::UpgradeType => {
5428                r.with_limited_depth(|r| Ok(Self::UpgradeType(Box::new(UpgradeType::read_xdr(r)?))))
5429            }
5430            TypeVariant::StellarValueType => r.with_limited_depth(|r| {
5431                Ok(Self::StellarValueType(Box::new(
5432                    StellarValueType::read_xdr(r)?,
5433                )))
5434            }),
5435            TypeVariant::LedgerCloseValueSignature => r.with_limited_depth(|r| {
5436                Ok(Self::LedgerCloseValueSignature(Box::new(
5437                    LedgerCloseValueSignature::read_xdr(r)?,
5438                )))
5439            }),
5440            TypeVariant::StellarValue => r.with_limited_depth(|r| {
5441                Ok(Self::StellarValue(Box::new(StellarValue::read_xdr(r)?)))
5442            }),
5443            TypeVariant::StellarValueExt => r.with_limited_depth(|r| {
5444                Ok(Self::StellarValueExt(Box::new(StellarValueExt::read_xdr(
5445                    r,
5446                )?)))
5447            }),
5448            #[cfg(feature = "cap_0083")]
5449            TypeVariant::StellarValueProposedValue => r.with_limited_depth(|r| {
5450                Ok(Self::StellarValueProposedValue(Box::new(
5451                    StellarValueProposedValue::read_xdr(r)?,
5452                )))
5453            }),
5454            TypeVariant::LedgerHeaderFlags => r.with_limited_depth(|r| {
5455                Ok(Self::LedgerHeaderFlags(Box::new(
5456                    LedgerHeaderFlags::read_xdr(r)?,
5457                )))
5458            }),
5459            TypeVariant::LedgerHeaderExtensionV1 => r.with_limited_depth(|r| {
5460                Ok(Self::LedgerHeaderExtensionV1(Box::new(
5461                    LedgerHeaderExtensionV1::read_xdr(r)?,
5462                )))
5463            }),
5464            TypeVariant::LedgerHeaderExtensionV1Ext => r.with_limited_depth(|r| {
5465                Ok(Self::LedgerHeaderExtensionV1Ext(Box::new(
5466                    LedgerHeaderExtensionV1Ext::read_xdr(r)?,
5467                )))
5468            }),
5469            TypeVariant::LedgerHeader => r.with_limited_depth(|r| {
5470                Ok(Self::LedgerHeader(Box::new(LedgerHeader::read_xdr(r)?)))
5471            }),
5472            TypeVariant::LedgerHeaderExt => r.with_limited_depth(|r| {
5473                Ok(Self::LedgerHeaderExt(Box::new(LedgerHeaderExt::read_xdr(
5474                    r,
5475                )?)))
5476            }),
5477            TypeVariant::LedgerUpgradeType => r.with_limited_depth(|r| {
5478                Ok(Self::LedgerUpgradeType(Box::new(
5479                    LedgerUpgradeType::read_xdr(r)?,
5480                )))
5481            }),
5482            TypeVariant::ConfigUpgradeSetKey => r.with_limited_depth(|r| {
5483                Ok(Self::ConfigUpgradeSetKey(Box::new(
5484                    ConfigUpgradeSetKey::read_xdr(r)?,
5485                )))
5486            }),
5487            TypeVariant::LedgerUpgrade => r.with_limited_depth(|r| {
5488                Ok(Self::LedgerUpgrade(Box::new(LedgerUpgrade::read_xdr(r)?)))
5489            }),
5490            TypeVariant::ConfigUpgradeSet => r.with_limited_depth(|r| {
5491                Ok(Self::ConfigUpgradeSet(Box::new(
5492                    ConfigUpgradeSet::read_xdr(r)?,
5493                )))
5494            }),
5495            TypeVariant::TxSetComponentType => r.with_limited_depth(|r| {
5496                Ok(Self::TxSetComponentType(Box::new(
5497                    TxSetComponentType::read_xdr(r)?,
5498                )))
5499            }),
5500            TypeVariant::DependentTxCluster => r.with_limited_depth(|r| {
5501                Ok(Self::DependentTxCluster(Box::new(
5502                    DependentTxCluster::read_xdr(r)?,
5503                )))
5504            }),
5505            TypeVariant::ParallelTxExecutionStage => r.with_limited_depth(|r| {
5506                Ok(Self::ParallelTxExecutionStage(Box::new(
5507                    ParallelTxExecutionStage::read_xdr(r)?,
5508                )))
5509            }),
5510            TypeVariant::ParallelTxsComponent => r.with_limited_depth(|r| {
5511                Ok(Self::ParallelTxsComponent(Box::new(
5512                    ParallelTxsComponent::read_xdr(r)?,
5513                )))
5514            }),
5515            TypeVariant::TxSetComponent => r.with_limited_depth(|r| {
5516                Ok(Self::TxSetComponent(Box::new(TxSetComponent::read_xdr(r)?)))
5517            }),
5518            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => r.with_limited_depth(|r| {
5519                Ok(Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(
5520                    TxSetComponentTxsMaybeDiscountedFee::read_xdr(r)?,
5521                )))
5522            }),
5523            TypeVariant::TransactionPhase => r.with_limited_depth(|r| {
5524                Ok(Self::TransactionPhase(Box::new(
5525                    TransactionPhase::read_xdr(r)?,
5526                )))
5527            }),
5528            TypeVariant::TransactionSet => r.with_limited_depth(|r| {
5529                Ok(Self::TransactionSet(Box::new(TransactionSet::read_xdr(r)?)))
5530            }),
5531            TypeVariant::TransactionSetV1 => r.with_limited_depth(|r| {
5532                Ok(Self::TransactionSetV1(Box::new(
5533                    TransactionSetV1::read_xdr(r)?,
5534                )))
5535            }),
5536            TypeVariant::GeneralizedTransactionSet => r.with_limited_depth(|r| {
5537                Ok(Self::GeneralizedTransactionSet(Box::new(
5538                    GeneralizedTransactionSet::read_xdr(r)?,
5539                )))
5540            }),
5541            TypeVariant::TransactionResultPair => r.with_limited_depth(|r| {
5542                Ok(Self::TransactionResultPair(Box::new(
5543                    TransactionResultPair::read_xdr(r)?,
5544                )))
5545            }),
5546            TypeVariant::TransactionResultSet => r.with_limited_depth(|r| {
5547                Ok(Self::TransactionResultSet(Box::new(
5548                    TransactionResultSet::read_xdr(r)?,
5549                )))
5550            }),
5551            TypeVariant::TransactionHistoryEntry => r.with_limited_depth(|r| {
5552                Ok(Self::TransactionHistoryEntry(Box::new(
5553                    TransactionHistoryEntry::read_xdr(r)?,
5554                )))
5555            }),
5556            TypeVariant::TransactionHistoryEntryExt => r.with_limited_depth(|r| {
5557                Ok(Self::TransactionHistoryEntryExt(Box::new(
5558                    TransactionHistoryEntryExt::read_xdr(r)?,
5559                )))
5560            }),
5561            TypeVariant::TransactionHistoryResultEntry => r.with_limited_depth(|r| {
5562                Ok(Self::TransactionHistoryResultEntry(Box::new(
5563                    TransactionHistoryResultEntry::read_xdr(r)?,
5564                )))
5565            }),
5566            TypeVariant::TransactionHistoryResultEntryExt => r.with_limited_depth(|r| {
5567                Ok(Self::TransactionHistoryResultEntryExt(Box::new(
5568                    TransactionHistoryResultEntryExt::read_xdr(r)?,
5569                )))
5570            }),
5571            TypeVariant::LedgerHeaderHistoryEntry => r.with_limited_depth(|r| {
5572                Ok(Self::LedgerHeaderHistoryEntry(Box::new(
5573                    LedgerHeaderHistoryEntry::read_xdr(r)?,
5574                )))
5575            }),
5576            TypeVariant::LedgerHeaderHistoryEntryExt => r.with_limited_depth(|r| {
5577                Ok(Self::LedgerHeaderHistoryEntryExt(Box::new(
5578                    LedgerHeaderHistoryEntryExt::read_xdr(r)?,
5579                )))
5580            }),
5581            TypeVariant::LedgerScpMessages => r.with_limited_depth(|r| {
5582                Ok(Self::LedgerScpMessages(Box::new(
5583                    LedgerScpMessages::read_xdr(r)?,
5584                )))
5585            }),
5586            TypeVariant::ScpHistoryEntryV0 => r.with_limited_depth(|r| {
5587                Ok(Self::ScpHistoryEntryV0(Box::new(
5588                    ScpHistoryEntryV0::read_xdr(r)?,
5589                )))
5590            }),
5591            TypeVariant::ScpHistoryEntry => r.with_limited_depth(|r| {
5592                Ok(Self::ScpHistoryEntry(Box::new(ScpHistoryEntry::read_xdr(
5593                    r,
5594                )?)))
5595            }),
5596            TypeVariant::LedgerEntryChangeType => r.with_limited_depth(|r| {
5597                Ok(Self::LedgerEntryChangeType(Box::new(
5598                    LedgerEntryChangeType::read_xdr(r)?,
5599                )))
5600            }),
5601            TypeVariant::LedgerEntryChange => r.with_limited_depth(|r| {
5602                Ok(Self::LedgerEntryChange(Box::new(
5603                    LedgerEntryChange::read_xdr(r)?,
5604                )))
5605            }),
5606            TypeVariant::LedgerEntryChanges => r.with_limited_depth(|r| {
5607                Ok(Self::LedgerEntryChanges(Box::new(
5608                    LedgerEntryChanges::read_xdr(r)?,
5609                )))
5610            }),
5611            TypeVariant::OperationMeta => r.with_limited_depth(|r| {
5612                Ok(Self::OperationMeta(Box::new(OperationMeta::read_xdr(r)?)))
5613            }),
5614            TypeVariant::TransactionMetaV1 => r.with_limited_depth(|r| {
5615                Ok(Self::TransactionMetaV1(Box::new(
5616                    TransactionMetaV1::read_xdr(r)?,
5617                )))
5618            }),
5619            TypeVariant::TransactionMetaV2 => r.with_limited_depth(|r| {
5620                Ok(Self::TransactionMetaV2(Box::new(
5621                    TransactionMetaV2::read_xdr(r)?,
5622                )))
5623            }),
5624            TypeVariant::ContractEventType => r.with_limited_depth(|r| {
5625                Ok(Self::ContractEventType(Box::new(
5626                    ContractEventType::read_xdr(r)?,
5627                )))
5628            }),
5629            TypeVariant::ContractEvent => r.with_limited_depth(|r| {
5630                Ok(Self::ContractEvent(Box::new(ContractEvent::read_xdr(r)?)))
5631            }),
5632            TypeVariant::ContractEventBody => r.with_limited_depth(|r| {
5633                Ok(Self::ContractEventBody(Box::new(
5634                    ContractEventBody::read_xdr(r)?,
5635                )))
5636            }),
5637            TypeVariant::ContractEventV0 => r.with_limited_depth(|r| {
5638                Ok(Self::ContractEventV0(Box::new(ContractEventV0::read_xdr(
5639                    r,
5640                )?)))
5641            }),
5642            TypeVariant::DiagnosticEvent => r.with_limited_depth(|r| {
5643                Ok(Self::DiagnosticEvent(Box::new(DiagnosticEvent::read_xdr(
5644                    r,
5645                )?)))
5646            }),
5647            TypeVariant::SorobanTransactionMetaExtV1 => r.with_limited_depth(|r| {
5648                Ok(Self::SorobanTransactionMetaExtV1(Box::new(
5649                    SorobanTransactionMetaExtV1::read_xdr(r)?,
5650                )))
5651            }),
5652            TypeVariant::SorobanTransactionMetaExt => r.with_limited_depth(|r| {
5653                Ok(Self::SorobanTransactionMetaExt(Box::new(
5654                    SorobanTransactionMetaExt::read_xdr(r)?,
5655                )))
5656            }),
5657            TypeVariant::SorobanTransactionMeta => r.with_limited_depth(|r| {
5658                Ok(Self::SorobanTransactionMeta(Box::new(
5659                    SorobanTransactionMeta::read_xdr(r)?,
5660                )))
5661            }),
5662            TypeVariant::TransactionMetaV3 => r.with_limited_depth(|r| {
5663                Ok(Self::TransactionMetaV3(Box::new(
5664                    TransactionMetaV3::read_xdr(r)?,
5665                )))
5666            }),
5667            TypeVariant::OperationMetaV2 => r.with_limited_depth(|r| {
5668                Ok(Self::OperationMetaV2(Box::new(OperationMetaV2::read_xdr(
5669                    r,
5670                )?)))
5671            }),
5672            TypeVariant::SorobanTransactionMetaV2 => r.with_limited_depth(|r| {
5673                Ok(Self::SorobanTransactionMetaV2(Box::new(
5674                    SorobanTransactionMetaV2::read_xdr(r)?,
5675                )))
5676            }),
5677            TypeVariant::TransactionEventStage => r.with_limited_depth(|r| {
5678                Ok(Self::TransactionEventStage(Box::new(
5679                    TransactionEventStage::read_xdr(r)?,
5680                )))
5681            }),
5682            TypeVariant::TransactionEvent => r.with_limited_depth(|r| {
5683                Ok(Self::TransactionEvent(Box::new(
5684                    TransactionEvent::read_xdr(r)?,
5685                )))
5686            }),
5687            TypeVariant::TransactionMetaV4 => r.with_limited_depth(|r| {
5688                Ok(Self::TransactionMetaV4(Box::new(
5689                    TransactionMetaV4::read_xdr(r)?,
5690                )))
5691            }),
5692            TypeVariant::InvokeHostFunctionSuccessPreImage => r.with_limited_depth(|r| {
5693                Ok(Self::InvokeHostFunctionSuccessPreImage(Box::new(
5694                    InvokeHostFunctionSuccessPreImage::read_xdr(r)?,
5695                )))
5696            }),
5697            TypeVariant::TransactionMeta => r.with_limited_depth(|r| {
5698                Ok(Self::TransactionMeta(Box::new(TransactionMeta::read_xdr(
5699                    r,
5700                )?)))
5701            }),
5702            TypeVariant::TransactionResultMeta => r.with_limited_depth(|r| {
5703                Ok(Self::TransactionResultMeta(Box::new(
5704                    TransactionResultMeta::read_xdr(r)?,
5705                )))
5706            }),
5707            TypeVariant::TransactionResultMetaV1 => r.with_limited_depth(|r| {
5708                Ok(Self::TransactionResultMetaV1(Box::new(
5709                    TransactionResultMetaV1::read_xdr(r)?,
5710                )))
5711            }),
5712            TypeVariant::UpgradeEntryMeta => r.with_limited_depth(|r| {
5713                Ok(Self::UpgradeEntryMeta(Box::new(
5714                    UpgradeEntryMeta::read_xdr(r)?,
5715                )))
5716            }),
5717            TypeVariant::LedgerCloseMetaV0 => r.with_limited_depth(|r| {
5718                Ok(Self::LedgerCloseMetaV0(Box::new(
5719                    LedgerCloseMetaV0::read_xdr(r)?,
5720                )))
5721            }),
5722            TypeVariant::LedgerCloseMetaExtV1 => r.with_limited_depth(|r| {
5723                Ok(Self::LedgerCloseMetaExtV1(Box::new(
5724                    LedgerCloseMetaExtV1::read_xdr(r)?,
5725                )))
5726            }),
5727            TypeVariant::LedgerCloseMetaExt => r.with_limited_depth(|r| {
5728                Ok(Self::LedgerCloseMetaExt(Box::new(
5729                    LedgerCloseMetaExt::read_xdr(r)?,
5730                )))
5731            }),
5732            TypeVariant::LedgerCloseMetaV1 => r.with_limited_depth(|r| {
5733                Ok(Self::LedgerCloseMetaV1(Box::new(
5734                    LedgerCloseMetaV1::read_xdr(r)?,
5735                )))
5736            }),
5737            TypeVariant::LedgerCloseMetaV2 => r.with_limited_depth(|r| {
5738                Ok(Self::LedgerCloseMetaV2(Box::new(
5739                    LedgerCloseMetaV2::read_xdr(r)?,
5740                )))
5741            }),
5742            TypeVariant::LedgerCloseMeta => r.with_limited_depth(|r| {
5743                Ok(Self::LedgerCloseMeta(Box::new(LedgerCloseMeta::read_xdr(
5744                    r,
5745                )?)))
5746            }),
5747            TypeVariant::ErrorCode => {
5748                r.with_limited_depth(|r| Ok(Self::ErrorCode(Box::new(ErrorCode::read_xdr(r)?))))
5749            }
5750            TypeVariant::SError => {
5751                r.with_limited_depth(|r| Ok(Self::SError(Box::new(SError::read_xdr(r)?))))
5752            }
5753            TypeVariant::SendMore => {
5754                r.with_limited_depth(|r| Ok(Self::SendMore(Box::new(SendMore::read_xdr(r)?))))
5755            }
5756            TypeVariant::SendMoreExtended => r.with_limited_depth(|r| {
5757                Ok(Self::SendMoreExtended(Box::new(
5758                    SendMoreExtended::read_xdr(r)?,
5759                )))
5760            }),
5761            TypeVariant::AuthCert => {
5762                r.with_limited_depth(|r| Ok(Self::AuthCert(Box::new(AuthCert::read_xdr(r)?))))
5763            }
5764            TypeVariant::Hello => {
5765                r.with_limited_depth(|r| Ok(Self::Hello(Box::new(Hello::read_xdr(r)?))))
5766            }
5767            TypeVariant::Auth => {
5768                r.with_limited_depth(|r| Ok(Self::Auth(Box::new(Auth::read_xdr(r)?))))
5769            }
5770            TypeVariant::IpAddrType => {
5771                r.with_limited_depth(|r| Ok(Self::IpAddrType(Box::new(IpAddrType::read_xdr(r)?))))
5772            }
5773            TypeVariant::PeerAddress => {
5774                r.with_limited_depth(|r| Ok(Self::PeerAddress(Box::new(PeerAddress::read_xdr(r)?))))
5775            }
5776            TypeVariant::PeerAddressIp => r.with_limited_depth(|r| {
5777                Ok(Self::PeerAddressIp(Box::new(PeerAddressIp::read_xdr(r)?)))
5778            }),
5779            TypeVariant::MessageType => {
5780                r.with_limited_depth(|r| Ok(Self::MessageType(Box::new(MessageType::read_xdr(r)?))))
5781            }
5782            TypeVariant::DontHave => {
5783                r.with_limited_depth(|r| Ok(Self::DontHave(Box::new(DontHave::read_xdr(r)?))))
5784            }
5785            TypeVariant::SurveyMessageCommandType => r.with_limited_depth(|r| {
5786                Ok(Self::SurveyMessageCommandType(Box::new(
5787                    SurveyMessageCommandType::read_xdr(r)?,
5788                )))
5789            }),
5790            TypeVariant::SurveyMessageResponseType => r.with_limited_depth(|r| {
5791                Ok(Self::SurveyMessageResponseType(Box::new(
5792                    SurveyMessageResponseType::read_xdr(r)?,
5793                )))
5794            }),
5795            TypeVariant::TimeSlicedSurveyStartCollectingMessage => r.with_limited_depth(|r| {
5796                Ok(Self::TimeSlicedSurveyStartCollectingMessage(Box::new(
5797                    TimeSlicedSurveyStartCollectingMessage::read_xdr(r)?,
5798                )))
5799            }),
5800            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
5801                r.with_limited_depth(|r| {
5802                    Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
5803                        Box::new(SignedTimeSlicedSurveyStartCollectingMessage::read_xdr(r)?),
5804                    ))
5805                })
5806            }
5807            TypeVariant::TimeSlicedSurveyStopCollectingMessage => r.with_limited_depth(|r| {
5808                Ok(Self::TimeSlicedSurveyStopCollectingMessage(Box::new(
5809                    TimeSlicedSurveyStopCollectingMessage::read_xdr(r)?,
5810                )))
5811            }),
5812            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => r.with_limited_depth(|r| {
5813                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
5814                    SignedTimeSlicedSurveyStopCollectingMessage::read_xdr(r)?,
5815                )))
5816            }),
5817            TypeVariant::SurveyRequestMessage => r.with_limited_depth(|r| {
5818                Ok(Self::SurveyRequestMessage(Box::new(
5819                    SurveyRequestMessage::read_xdr(r)?,
5820                )))
5821            }),
5822            TypeVariant::TimeSlicedSurveyRequestMessage => r.with_limited_depth(|r| {
5823                Ok(Self::TimeSlicedSurveyRequestMessage(Box::new(
5824                    TimeSlicedSurveyRequestMessage::read_xdr(r)?,
5825                )))
5826            }),
5827            TypeVariant::SignedTimeSlicedSurveyRequestMessage => r.with_limited_depth(|r| {
5828                Ok(Self::SignedTimeSlicedSurveyRequestMessage(Box::new(
5829                    SignedTimeSlicedSurveyRequestMessage::read_xdr(r)?,
5830                )))
5831            }),
5832            TypeVariant::EncryptedBody => r.with_limited_depth(|r| {
5833                Ok(Self::EncryptedBody(Box::new(EncryptedBody::read_xdr(r)?)))
5834            }),
5835            TypeVariant::SurveyResponseMessage => r.with_limited_depth(|r| {
5836                Ok(Self::SurveyResponseMessage(Box::new(
5837                    SurveyResponseMessage::read_xdr(r)?,
5838                )))
5839            }),
5840            TypeVariant::TimeSlicedSurveyResponseMessage => r.with_limited_depth(|r| {
5841                Ok(Self::TimeSlicedSurveyResponseMessage(Box::new(
5842                    TimeSlicedSurveyResponseMessage::read_xdr(r)?,
5843                )))
5844            }),
5845            TypeVariant::SignedTimeSlicedSurveyResponseMessage => r.with_limited_depth(|r| {
5846                Ok(Self::SignedTimeSlicedSurveyResponseMessage(Box::new(
5847                    SignedTimeSlicedSurveyResponseMessage::read_xdr(r)?,
5848                )))
5849            }),
5850            TypeVariant::PeerStats => {
5851                r.with_limited_depth(|r| Ok(Self::PeerStats(Box::new(PeerStats::read_xdr(r)?))))
5852            }
5853            TypeVariant::TimeSlicedNodeData => r.with_limited_depth(|r| {
5854                Ok(Self::TimeSlicedNodeData(Box::new(
5855                    TimeSlicedNodeData::read_xdr(r)?,
5856                )))
5857            }),
5858            TypeVariant::TimeSlicedPeerData => r.with_limited_depth(|r| {
5859                Ok(Self::TimeSlicedPeerData(Box::new(
5860                    TimeSlicedPeerData::read_xdr(r)?,
5861                )))
5862            }),
5863            TypeVariant::TimeSlicedPeerDataList => r.with_limited_depth(|r| {
5864                Ok(Self::TimeSlicedPeerDataList(Box::new(
5865                    TimeSlicedPeerDataList::read_xdr(r)?,
5866                )))
5867            }),
5868            TypeVariant::TopologyResponseBodyV2 => r.with_limited_depth(|r| {
5869                Ok(Self::TopologyResponseBodyV2(Box::new(
5870                    TopologyResponseBodyV2::read_xdr(r)?,
5871                )))
5872            }),
5873            TypeVariant::SurveyResponseBody => r.with_limited_depth(|r| {
5874                Ok(Self::SurveyResponseBody(Box::new(
5875                    SurveyResponseBody::read_xdr(r)?,
5876                )))
5877            }),
5878            TypeVariant::TxAdvertVector => r.with_limited_depth(|r| {
5879                Ok(Self::TxAdvertVector(Box::new(TxAdvertVector::read_xdr(r)?)))
5880            }),
5881            TypeVariant::FloodAdvert => {
5882                r.with_limited_depth(|r| Ok(Self::FloodAdvert(Box::new(FloodAdvert::read_xdr(r)?))))
5883            }
5884            TypeVariant::TxDemandVector => r.with_limited_depth(|r| {
5885                Ok(Self::TxDemandVector(Box::new(TxDemandVector::read_xdr(r)?)))
5886            }),
5887            TypeVariant::FloodDemand => {
5888                r.with_limited_depth(|r| Ok(Self::FloodDemand(Box::new(FloodDemand::read_xdr(r)?))))
5889            }
5890            TypeVariant::StellarMessage => r.with_limited_depth(|r| {
5891                Ok(Self::StellarMessage(Box::new(StellarMessage::read_xdr(r)?)))
5892            }),
5893            TypeVariant::AuthenticatedMessage => r.with_limited_depth(|r| {
5894                Ok(Self::AuthenticatedMessage(Box::new(
5895                    AuthenticatedMessage::read_xdr(r)?,
5896                )))
5897            }),
5898            TypeVariant::AuthenticatedMessageV0 => r.with_limited_depth(|r| {
5899                Ok(Self::AuthenticatedMessageV0(Box::new(
5900                    AuthenticatedMessageV0::read_xdr(r)?,
5901                )))
5902            }),
5903            TypeVariant::LiquidityPoolParameters => r.with_limited_depth(|r| {
5904                Ok(Self::LiquidityPoolParameters(Box::new(
5905                    LiquidityPoolParameters::read_xdr(r)?,
5906                )))
5907            }),
5908            TypeVariant::MuxedAccount => r.with_limited_depth(|r| {
5909                Ok(Self::MuxedAccount(Box::new(MuxedAccount::read_xdr(r)?)))
5910            }),
5911            TypeVariant::MuxedAccountMed25519 => r.with_limited_depth(|r| {
5912                Ok(Self::MuxedAccountMed25519(Box::new(
5913                    MuxedAccountMed25519::read_xdr(r)?,
5914                )))
5915            }),
5916            TypeVariant::DecoratedSignature => r.with_limited_depth(|r| {
5917                Ok(Self::DecoratedSignature(Box::new(
5918                    DecoratedSignature::read_xdr(r)?,
5919                )))
5920            }),
5921            TypeVariant::OperationType => r.with_limited_depth(|r| {
5922                Ok(Self::OperationType(Box::new(OperationType::read_xdr(r)?)))
5923            }),
5924            TypeVariant::CreateAccountOp => r.with_limited_depth(|r| {
5925                Ok(Self::CreateAccountOp(Box::new(CreateAccountOp::read_xdr(
5926                    r,
5927                )?)))
5928            }),
5929            TypeVariant::PaymentOp => {
5930                r.with_limited_depth(|r| Ok(Self::PaymentOp(Box::new(PaymentOp::read_xdr(r)?))))
5931            }
5932            TypeVariant::PathPaymentStrictReceiveOp => r.with_limited_depth(|r| {
5933                Ok(Self::PathPaymentStrictReceiveOp(Box::new(
5934                    PathPaymentStrictReceiveOp::read_xdr(r)?,
5935                )))
5936            }),
5937            TypeVariant::PathPaymentStrictSendOp => r.with_limited_depth(|r| {
5938                Ok(Self::PathPaymentStrictSendOp(Box::new(
5939                    PathPaymentStrictSendOp::read_xdr(r)?,
5940                )))
5941            }),
5942            TypeVariant::ManageSellOfferOp => r.with_limited_depth(|r| {
5943                Ok(Self::ManageSellOfferOp(Box::new(
5944                    ManageSellOfferOp::read_xdr(r)?,
5945                )))
5946            }),
5947            TypeVariant::ManageBuyOfferOp => r.with_limited_depth(|r| {
5948                Ok(Self::ManageBuyOfferOp(Box::new(
5949                    ManageBuyOfferOp::read_xdr(r)?,
5950                )))
5951            }),
5952            TypeVariant::CreatePassiveSellOfferOp => r.with_limited_depth(|r| {
5953                Ok(Self::CreatePassiveSellOfferOp(Box::new(
5954                    CreatePassiveSellOfferOp::read_xdr(r)?,
5955                )))
5956            }),
5957            TypeVariant::SetOptionsOp => r.with_limited_depth(|r| {
5958                Ok(Self::SetOptionsOp(Box::new(SetOptionsOp::read_xdr(r)?)))
5959            }),
5960            TypeVariant::ChangeTrustAsset => r.with_limited_depth(|r| {
5961                Ok(Self::ChangeTrustAsset(Box::new(
5962                    ChangeTrustAsset::read_xdr(r)?,
5963                )))
5964            }),
5965            TypeVariant::ChangeTrustOp => r.with_limited_depth(|r| {
5966                Ok(Self::ChangeTrustOp(Box::new(ChangeTrustOp::read_xdr(r)?)))
5967            }),
5968            TypeVariant::AllowTrustOp => r.with_limited_depth(|r| {
5969                Ok(Self::AllowTrustOp(Box::new(AllowTrustOp::read_xdr(r)?)))
5970            }),
5971            TypeVariant::ManageDataOp => r.with_limited_depth(|r| {
5972                Ok(Self::ManageDataOp(Box::new(ManageDataOp::read_xdr(r)?)))
5973            }),
5974            TypeVariant::BumpSequenceOp => r.with_limited_depth(|r| {
5975                Ok(Self::BumpSequenceOp(Box::new(BumpSequenceOp::read_xdr(r)?)))
5976            }),
5977            TypeVariant::CreateClaimableBalanceOp => r.with_limited_depth(|r| {
5978                Ok(Self::CreateClaimableBalanceOp(Box::new(
5979                    CreateClaimableBalanceOp::read_xdr(r)?,
5980                )))
5981            }),
5982            TypeVariant::ClaimClaimableBalanceOp => r.with_limited_depth(|r| {
5983                Ok(Self::ClaimClaimableBalanceOp(Box::new(
5984                    ClaimClaimableBalanceOp::read_xdr(r)?,
5985                )))
5986            }),
5987            TypeVariant::BeginSponsoringFutureReservesOp => r.with_limited_depth(|r| {
5988                Ok(Self::BeginSponsoringFutureReservesOp(Box::new(
5989                    BeginSponsoringFutureReservesOp::read_xdr(r)?,
5990                )))
5991            }),
5992            TypeVariant::RevokeSponsorshipType => r.with_limited_depth(|r| {
5993                Ok(Self::RevokeSponsorshipType(Box::new(
5994                    RevokeSponsorshipType::read_xdr(r)?,
5995                )))
5996            }),
5997            TypeVariant::RevokeSponsorshipOp => r.with_limited_depth(|r| {
5998                Ok(Self::RevokeSponsorshipOp(Box::new(
5999                    RevokeSponsorshipOp::read_xdr(r)?,
6000                )))
6001            }),
6002            TypeVariant::RevokeSponsorshipOpSigner => r.with_limited_depth(|r| {
6003                Ok(Self::RevokeSponsorshipOpSigner(Box::new(
6004                    RevokeSponsorshipOpSigner::read_xdr(r)?,
6005                )))
6006            }),
6007            TypeVariant::ClawbackOp => {
6008                r.with_limited_depth(|r| Ok(Self::ClawbackOp(Box::new(ClawbackOp::read_xdr(r)?))))
6009            }
6010            TypeVariant::ClawbackClaimableBalanceOp => r.with_limited_depth(|r| {
6011                Ok(Self::ClawbackClaimableBalanceOp(Box::new(
6012                    ClawbackClaimableBalanceOp::read_xdr(r)?,
6013                )))
6014            }),
6015            TypeVariant::SetTrustLineFlagsOp => r.with_limited_depth(|r| {
6016                Ok(Self::SetTrustLineFlagsOp(Box::new(
6017                    SetTrustLineFlagsOp::read_xdr(r)?,
6018                )))
6019            }),
6020            TypeVariant::LiquidityPoolDepositOp => r.with_limited_depth(|r| {
6021                Ok(Self::LiquidityPoolDepositOp(Box::new(
6022                    LiquidityPoolDepositOp::read_xdr(r)?,
6023                )))
6024            }),
6025            TypeVariant::LiquidityPoolWithdrawOp => r.with_limited_depth(|r| {
6026                Ok(Self::LiquidityPoolWithdrawOp(Box::new(
6027                    LiquidityPoolWithdrawOp::read_xdr(r)?,
6028                )))
6029            }),
6030            TypeVariant::HostFunctionType => r.with_limited_depth(|r| {
6031                Ok(Self::HostFunctionType(Box::new(
6032                    HostFunctionType::read_xdr(r)?,
6033                )))
6034            }),
6035            TypeVariant::ContractIdPreimageType => r.with_limited_depth(|r| {
6036                Ok(Self::ContractIdPreimageType(Box::new(
6037                    ContractIdPreimageType::read_xdr(r)?,
6038                )))
6039            }),
6040            TypeVariant::ContractIdPreimage => r.with_limited_depth(|r| {
6041                Ok(Self::ContractIdPreimage(Box::new(
6042                    ContractIdPreimage::read_xdr(r)?,
6043                )))
6044            }),
6045            TypeVariant::ContractIdPreimageFromAddress => r.with_limited_depth(|r| {
6046                Ok(Self::ContractIdPreimageFromAddress(Box::new(
6047                    ContractIdPreimageFromAddress::read_xdr(r)?,
6048                )))
6049            }),
6050            TypeVariant::CreateContractArgs => r.with_limited_depth(|r| {
6051                Ok(Self::CreateContractArgs(Box::new(
6052                    CreateContractArgs::read_xdr(r)?,
6053                )))
6054            }),
6055            TypeVariant::CreateContractArgsV2 => r.with_limited_depth(|r| {
6056                Ok(Self::CreateContractArgsV2(Box::new(
6057                    CreateContractArgsV2::read_xdr(r)?,
6058                )))
6059            }),
6060            TypeVariant::InvokeContractArgs => r.with_limited_depth(|r| {
6061                Ok(Self::InvokeContractArgs(Box::new(
6062                    InvokeContractArgs::read_xdr(r)?,
6063                )))
6064            }),
6065            TypeVariant::HostFunction => r.with_limited_depth(|r| {
6066                Ok(Self::HostFunction(Box::new(HostFunction::read_xdr(r)?)))
6067            }),
6068            TypeVariant::SorobanAuthorizedFunctionType => r.with_limited_depth(|r| {
6069                Ok(Self::SorobanAuthorizedFunctionType(Box::new(
6070                    SorobanAuthorizedFunctionType::read_xdr(r)?,
6071                )))
6072            }),
6073            TypeVariant::SorobanAuthorizedFunction => r.with_limited_depth(|r| {
6074                Ok(Self::SorobanAuthorizedFunction(Box::new(
6075                    SorobanAuthorizedFunction::read_xdr(r)?,
6076                )))
6077            }),
6078            TypeVariant::SorobanAuthorizedInvocation => r.with_limited_depth(|r| {
6079                Ok(Self::SorobanAuthorizedInvocation(Box::new(
6080                    SorobanAuthorizedInvocation::read_xdr(r)?,
6081                )))
6082            }),
6083            TypeVariant::SorobanAddressCredentials => r.with_limited_depth(|r| {
6084                Ok(Self::SorobanAddressCredentials(Box::new(
6085                    SorobanAddressCredentials::read_xdr(r)?,
6086                )))
6087            }),
6088            TypeVariant::SorobanDelegateSignature => r.with_limited_depth(|r| {
6089                Ok(Self::SorobanDelegateSignature(Box::new(
6090                    SorobanDelegateSignature::read_xdr(r)?,
6091                )))
6092            }),
6093            TypeVariant::SorobanAddressCredentialsWithDelegates => r.with_limited_depth(|r| {
6094                Ok(Self::SorobanAddressCredentialsWithDelegates(Box::new(
6095                    SorobanAddressCredentialsWithDelegates::read_xdr(r)?,
6096                )))
6097            }),
6098            TypeVariant::SorobanCredentialsType => r.with_limited_depth(|r| {
6099                Ok(Self::SorobanCredentialsType(Box::new(
6100                    SorobanCredentialsType::read_xdr(r)?,
6101                )))
6102            }),
6103            TypeVariant::SorobanCredentials => r.with_limited_depth(|r| {
6104                Ok(Self::SorobanCredentials(Box::new(
6105                    SorobanCredentials::read_xdr(r)?,
6106                )))
6107            }),
6108            TypeVariant::SorobanAuthorizationEntry => r.with_limited_depth(|r| {
6109                Ok(Self::SorobanAuthorizationEntry(Box::new(
6110                    SorobanAuthorizationEntry::read_xdr(r)?,
6111                )))
6112            }),
6113            TypeVariant::SorobanAuthorizationEntries => r.with_limited_depth(|r| {
6114                Ok(Self::SorobanAuthorizationEntries(Box::new(
6115                    SorobanAuthorizationEntries::read_xdr(r)?,
6116                )))
6117            }),
6118            TypeVariant::InvokeHostFunctionOp => r.with_limited_depth(|r| {
6119                Ok(Self::InvokeHostFunctionOp(Box::new(
6120                    InvokeHostFunctionOp::read_xdr(r)?,
6121                )))
6122            }),
6123            TypeVariant::ExtendFootprintTtlOp => r.with_limited_depth(|r| {
6124                Ok(Self::ExtendFootprintTtlOp(Box::new(
6125                    ExtendFootprintTtlOp::read_xdr(r)?,
6126                )))
6127            }),
6128            TypeVariant::RestoreFootprintOp => r.with_limited_depth(|r| {
6129                Ok(Self::RestoreFootprintOp(Box::new(
6130                    RestoreFootprintOp::read_xdr(r)?,
6131                )))
6132            }),
6133            TypeVariant::Operation => {
6134                r.with_limited_depth(|r| Ok(Self::Operation(Box::new(Operation::read_xdr(r)?))))
6135            }
6136            TypeVariant::OperationBody => r.with_limited_depth(|r| {
6137                Ok(Self::OperationBody(Box::new(OperationBody::read_xdr(r)?)))
6138            }),
6139            TypeVariant::HashIdPreimage => r.with_limited_depth(|r| {
6140                Ok(Self::HashIdPreimage(Box::new(HashIdPreimage::read_xdr(r)?)))
6141            }),
6142            TypeVariant::HashIdPreimageOperationId => r.with_limited_depth(|r| {
6143                Ok(Self::HashIdPreimageOperationId(Box::new(
6144                    HashIdPreimageOperationId::read_xdr(r)?,
6145                )))
6146            }),
6147            TypeVariant::HashIdPreimageRevokeId => r.with_limited_depth(|r| {
6148                Ok(Self::HashIdPreimageRevokeId(Box::new(
6149                    HashIdPreimageRevokeId::read_xdr(r)?,
6150                )))
6151            }),
6152            TypeVariant::HashIdPreimageContractId => r.with_limited_depth(|r| {
6153                Ok(Self::HashIdPreimageContractId(Box::new(
6154                    HashIdPreimageContractId::read_xdr(r)?,
6155                )))
6156            }),
6157            TypeVariant::HashIdPreimageSorobanAuthorization => r.with_limited_depth(|r| {
6158                Ok(Self::HashIdPreimageSorobanAuthorization(Box::new(
6159                    HashIdPreimageSorobanAuthorization::read_xdr(r)?,
6160                )))
6161            }),
6162            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
6163                r.with_limited_depth(|r| {
6164                    Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
6165                        Box::new(HashIdPreimageSorobanAuthorizationWithAddress::read_xdr(r)?),
6166                    ))
6167                })
6168            }
6169            TypeVariant::MemoType => {
6170                r.with_limited_depth(|r| Ok(Self::MemoType(Box::new(MemoType::read_xdr(r)?))))
6171            }
6172            TypeVariant::Memo => {
6173                r.with_limited_depth(|r| Ok(Self::Memo(Box::new(Memo::read_xdr(r)?))))
6174            }
6175            TypeVariant::TimeBounds => {
6176                r.with_limited_depth(|r| Ok(Self::TimeBounds(Box::new(TimeBounds::read_xdr(r)?))))
6177            }
6178            TypeVariant::LedgerBounds => r.with_limited_depth(|r| {
6179                Ok(Self::LedgerBounds(Box::new(LedgerBounds::read_xdr(r)?)))
6180            }),
6181            TypeVariant::PreconditionsV2 => r.with_limited_depth(|r| {
6182                Ok(Self::PreconditionsV2(Box::new(PreconditionsV2::read_xdr(
6183                    r,
6184                )?)))
6185            }),
6186            TypeVariant::PreconditionType => r.with_limited_depth(|r| {
6187                Ok(Self::PreconditionType(Box::new(
6188                    PreconditionType::read_xdr(r)?,
6189                )))
6190            }),
6191            TypeVariant::Preconditions => r.with_limited_depth(|r| {
6192                Ok(Self::Preconditions(Box::new(Preconditions::read_xdr(r)?)))
6193            }),
6194            TypeVariant::LedgerFootprint => r.with_limited_depth(|r| {
6195                Ok(Self::LedgerFootprint(Box::new(LedgerFootprint::read_xdr(
6196                    r,
6197                )?)))
6198            }),
6199            TypeVariant::SorobanResources => r.with_limited_depth(|r| {
6200                Ok(Self::SorobanResources(Box::new(
6201                    SorobanResources::read_xdr(r)?,
6202                )))
6203            }),
6204            TypeVariant::SorobanResourcesExtV0 => r.with_limited_depth(|r| {
6205                Ok(Self::SorobanResourcesExtV0(Box::new(
6206                    SorobanResourcesExtV0::read_xdr(r)?,
6207                )))
6208            }),
6209            TypeVariant::SorobanTransactionData => r.with_limited_depth(|r| {
6210                Ok(Self::SorobanTransactionData(Box::new(
6211                    SorobanTransactionData::read_xdr(r)?,
6212                )))
6213            }),
6214            TypeVariant::SorobanTransactionDataExt => r.with_limited_depth(|r| {
6215                Ok(Self::SorobanTransactionDataExt(Box::new(
6216                    SorobanTransactionDataExt::read_xdr(r)?,
6217                )))
6218            }),
6219            TypeVariant::TransactionV0 => r.with_limited_depth(|r| {
6220                Ok(Self::TransactionV0(Box::new(TransactionV0::read_xdr(r)?)))
6221            }),
6222            TypeVariant::TransactionV0Ext => r.with_limited_depth(|r| {
6223                Ok(Self::TransactionV0Ext(Box::new(
6224                    TransactionV0Ext::read_xdr(r)?,
6225                )))
6226            }),
6227            TypeVariant::TransactionV0Envelope => r.with_limited_depth(|r| {
6228                Ok(Self::TransactionV0Envelope(Box::new(
6229                    TransactionV0Envelope::read_xdr(r)?,
6230                )))
6231            }),
6232            TypeVariant::Transaction => {
6233                r.with_limited_depth(|r| Ok(Self::Transaction(Box::new(Transaction::read_xdr(r)?))))
6234            }
6235            TypeVariant::TransactionExt => r.with_limited_depth(|r| {
6236                Ok(Self::TransactionExt(Box::new(TransactionExt::read_xdr(r)?)))
6237            }),
6238            TypeVariant::TransactionV1Envelope => r.with_limited_depth(|r| {
6239                Ok(Self::TransactionV1Envelope(Box::new(
6240                    TransactionV1Envelope::read_xdr(r)?,
6241                )))
6242            }),
6243            TypeVariant::FeeBumpTransaction => r.with_limited_depth(|r| {
6244                Ok(Self::FeeBumpTransaction(Box::new(
6245                    FeeBumpTransaction::read_xdr(r)?,
6246                )))
6247            }),
6248            TypeVariant::FeeBumpTransactionInnerTx => r.with_limited_depth(|r| {
6249                Ok(Self::FeeBumpTransactionInnerTx(Box::new(
6250                    FeeBumpTransactionInnerTx::read_xdr(r)?,
6251                )))
6252            }),
6253            TypeVariant::FeeBumpTransactionExt => r.with_limited_depth(|r| {
6254                Ok(Self::FeeBumpTransactionExt(Box::new(
6255                    FeeBumpTransactionExt::read_xdr(r)?,
6256                )))
6257            }),
6258            TypeVariant::FeeBumpTransactionEnvelope => r.with_limited_depth(|r| {
6259                Ok(Self::FeeBumpTransactionEnvelope(Box::new(
6260                    FeeBumpTransactionEnvelope::read_xdr(r)?,
6261                )))
6262            }),
6263            TypeVariant::TransactionEnvelope => r.with_limited_depth(|r| {
6264                Ok(Self::TransactionEnvelope(Box::new(
6265                    TransactionEnvelope::read_xdr(r)?,
6266                )))
6267            }),
6268            TypeVariant::TransactionSignaturePayload => r.with_limited_depth(|r| {
6269                Ok(Self::TransactionSignaturePayload(Box::new(
6270                    TransactionSignaturePayload::read_xdr(r)?,
6271                )))
6272            }),
6273            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
6274                r.with_limited_depth(|r| {
6275                    Ok(Self::TransactionSignaturePayloadTaggedTransaction(
6276                        Box::new(TransactionSignaturePayloadTaggedTransaction::read_xdr(r)?),
6277                    ))
6278                })
6279            }
6280            TypeVariant::ClaimAtomType => r.with_limited_depth(|r| {
6281                Ok(Self::ClaimAtomType(Box::new(ClaimAtomType::read_xdr(r)?)))
6282            }),
6283            TypeVariant::ClaimOfferAtomV0 => r.with_limited_depth(|r| {
6284                Ok(Self::ClaimOfferAtomV0(Box::new(
6285                    ClaimOfferAtomV0::read_xdr(r)?,
6286                )))
6287            }),
6288            TypeVariant::ClaimOfferAtom => r.with_limited_depth(|r| {
6289                Ok(Self::ClaimOfferAtom(Box::new(ClaimOfferAtom::read_xdr(r)?)))
6290            }),
6291            TypeVariant::ClaimLiquidityAtom => r.with_limited_depth(|r| {
6292                Ok(Self::ClaimLiquidityAtom(Box::new(
6293                    ClaimLiquidityAtom::read_xdr(r)?,
6294                )))
6295            }),
6296            TypeVariant::ClaimAtom => {
6297                r.with_limited_depth(|r| Ok(Self::ClaimAtom(Box::new(ClaimAtom::read_xdr(r)?))))
6298            }
6299            TypeVariant::CreateAccountResultCode => r.with_limited_depth(|r| {
6300                Ok(Self::CreateAccountResultCode(Box::new(
6301                    CreateAccountResultCode::read_xdr(r)?,
6302                )))
6303            }),
6304            TypeVariant::CreateAccountResult => r.with_limited_depth(|r| {
6305                Ok(Self::CreateAccountResult(Box::new(
6306                    CreateAccountResult::read_xdr(r)?,
6307                )))
6308            }),
6309            TypeVariant::PaymentResultCode => r.with_limited_depth(|r| {
6310                Ok(Self::PaymentResultCode(Box::new(
6311                    PaymentResultCode::read_xdr(r)?,
6312                )))
6313            }),
6314            TypeVariant::PaymentResult => r.with_limited_depth(|r| {
6315                Ok(Self::PaymentResult(Box::new(PaymentResult::read_xdr(r)?)))
6316            }),
6317            TypeVariant::PathPaymentStrictReceiveResultCode => r.with_limited_depth(|r| {
6318                Ok(Self::PathPaymentStrictReceiveResultCode(Box::new(
6319                    PathPaymentStrictReceiveResultCode::read_xdr(r)?,
6320                )))
6321            }),
6322            TypeVariant::SimplePaymentResult => r.with_limited_depth(|r| {
6323                Ok(Self::SimplePaymentResult(Box::new(
6324                    SimplePaymentResult::read_xdr(r)?,
6325                )))
6326            }),
6327            TypeVariant::PathPaymentStrictReceiveResult => r.with_limited_depth(|r| {
6328                Ok(Self::PathPaymentStrictReceiveResult(Box::new(
6329                    PathPaymentStrictReceiveResult::read_xdr(r)?,
6330                )))
6331            }),
6332            TypeVariant::PathPaymentStrictReceiveResultSuccess => r.with_limited_depth(|r| {
6333                Ok(Self::PathPaymentStrictReceiveResultSuccess(Box::new(
6334                    PathPaymentStrictReceiveResultSuccess::read_xdr(r)?,
6335                )))
6336            }),
6337            TypeVariant::PathPaymentStrictSendResultCode => r.with_limited_depth(|r| {
6338                Ok(Self::PathPaymentStrictSendResultCode(Box::new(
6339                    PathPaymentStrictSendResultCode::read_xdr(r)?,
6340                )))
6341            }),
6342            TypeVariant::PathPaymentStrictSendResult => r.with_limited_depth(|r| {
6343                Ok(Self::PathPaymentStrictSendResult(Box::new(
6344                    PathPaymentStrictSendResult::read_xdr(r)?,
6345                )))
6346            }),
6347            TypeVariant::PathPaymentStrictSendResultSuccess => r.with_limited_depth(|r| {
6348                Ok(Self::PathPaymentStrictSendResultSuccess(Box::new(
6349                    PathPaymentStrictSendResultSuccess::read_xdr(r)?,
6350                )))
6351            }),
6352            TypeVariant::ManageSellOfferResultCode => r.with_limited_depth(|r| {
6353                Ok(Self::ManageSellOfferResultCode(Box::new(
6354                    ManageSellOfferResultCode::read_xdr(r)?,
6355                )))
6356            }),
6357            TypeVariant::ManageOfferEffect => r.with_limited_depth(|r| {
6358                Ok(Self::ManageOfferEffect(Box::new(
6359                    ManageOfferEffect::read_xdr(r)?,
6360                )))
6361            }),
6362            TypeVariant::ManageOfferSuccessResult => r.with_limited_depth(|r| {
6363                Ok(Self::ManageOfferSuccessResult(Box::new(
6364                    ManageOfferSuccessResult::read_xdr(r)?,
6365                )))
6366            }),
6367            TypeVariant::ManageOfferSuccessResultOffer => r.with_limited_depth(|r| {
6368                Ok(Self::ManageOfferSuccessResultOffer(Box::new(
6369                    ManageOfferSuccessResultOffer::read_xdr(r)?,
6370                )))
6371            }),
6372            TypeVariant::ManageSellOfferResult => r.with_limited_depth(|r| {
6373                Ok(Self::ManageSellOfferResult(Box::new(
6374                    ManageSellOfferResult::read_xdr(r)?,
6375                )))
6376            }),
6377            TypeVariant::ManageBuyOfferResultCode => r.with_limited_depth(|r| {
6378                Ok(Self::ManageBuyOfferResultCode(Box::new(
6379                    ManageBuyOfferResultCode::read_xdr(r)?,
6380                )))
6381            }),
6382            TypeVariant::ManageBuyOfferResult => r.with_limited_depth(|r| {
6383                Ok(Self::ManageBuyOfferResult(Box::new(
6384                    ManageBuyOfferResult::read_xdr(r)?,
6385                )))
6386            }),
6387            TypeVariant::SetOptionsResultCode => r.with_limited_depth(|r| {
6388                Ok(Self::SetOptionsResultCode(Box::new(
6389                    SetOptionsResultCode::read_xdr(r)?,
6390                )))
6391            }),
6392            TypeVariant::SetOptionsResult => r.with_limited_depth(|r| {
6393                Ok(Self::SetOptionsResult(Box::new(
6394                    SetOptionsResult::read_xdr(r)?,
6395                )))
6396            }),
6397            TypeVariant::ChangeTrustResultCode => r.with_limited_depth(|r| {
6398                Ok(Self::ChangeTrustResultCode(Box::new(
6399                    ChangeTrustResultCode::read_xdr(r)?,
6400                )))
6401            }),
6402            TypeVariant::ChangeTrustResult => r.with_limited_depth(|r| {
6403                Ok(Self::ChangeTrustResult(Box::new(
6404                    ChangeTrustResult::read_xdr(r)?,
6405                )))
6406            }),
6407            TypeVariant::AllowTrustResultCode => r.with_limited_depth(|r| {
6408                Ok(Self::AllowTrustResultCode(Box::new(
6409                    AllowTrustResultCode::read_xdr(r)?,
6410                )))
6411            }),
6412            TypeVariant::AllowTrustResult => r.with_limited_depth(|r| {
6413                Ok(Self::AllowTrustResult(Box::new(
6414                    AllowTrustResult::read_xdr(r)?,
6415                )))
6416            }),
6417            TypeVariant::AccountMergeResultCode => r.with_limited_depth(|r| {
6418                Ok(Self::AccountMergeResultCode(Box::new(
6419                    AccountMergeResultCode::read_xdr(r)?,
6420                )))
6421            }),
6422            TypeVariant::AccountMergeResult => r.with_limited_depth(|r| {
6423                Ok(Self::AccountMergeResult(Box::new(
6424                    AccountMergeResult::read_xdr(r)?,
6425                )))
6426            }),
6427            TypeVariant::InflationResultCode => r.with_limited_depth(|r| {
6428                Ok(Self::InflationResultCode(Box::new(
6429                    InflationResultCode::read_xdr(r)?,
6430                )))
6431            }),
6432            TypeVariant::InflationPayout => r.with_limited_depth(|r| {
6433                Ok(Self::InflationPayout(Box::new(InflationPayout::read_xdr(
6434                    r,
6435                )?)))
6436            }),
6437            TypeVariant::InflationResult => r.with_limited_depth(|r| {
6438                Ok(Self::InflationResult(Box::new(InflationResult::read_xdr(
6439                    r,
6440                )?)))
6441            }),
6442            TypeVariant::ManageDataResultCode => r.with_limited_depth(|r| {
6443                Ok(Self::ManageDataResultCode(Box::new(
6444                    ManageDataResultCode::read_xdr(r)?,
6445                )))
6446            }),
6447            TypeVariant::ManageDataResult => r.with_limited_depth(|r| {
6448                Ok(Self::ManageDataResult(Box::new(
6449                    ManageDataResult::read_xdr(r)?,
6450                )))
6451            }),
6452            TypeVariant::BumpSequenceResultCode => r.with_limited_depth(|r| {
6453                Ok(Self::BumpSequenceResultCode(Box::new(
6454                    BumpSequenceResultCode::read_xdr(r)?,
6455                )))
6456            }),
6457            TypeVariant::BumpSequenceResult => r.with_limited_depth(|r| {
6458                Ok(Self::BumpSequenceResult(Box::new(
6459                    BumpSequenceResult::read_xdr(r)?,
6460                )))
6461            }),
6462            TypeVariant::CreateClaimableBalanceResultCode => r.with_limited_depth(|r| {
6463                Ok(Self::CreateClaimableBalanceResultCode(Box::new(
6464                    CreateClaimableBalanceResultCode::read_xdr(r)?,
6465                )))
6466            }),
6467            TypeVariant::CreateClaimableBalanceResult => r.with_limited_depth(|r| {
6468                Ok(Self::CreateClaimableBalanceResult(Box::new(
6469                    CreateClaimableBalanceResult::read_xdr(r)?,
6470                )))
6471            }),
6472            TypeVariant::ClaimClaimableBalanceResultCode => r.with_limited_depth(|r| {
6473                Ok(Self::ClaimClaimableBalanceResultCode(Box::new(
6474                    ClaimClaimableBalanceResultCode::read_xdr(r)?,
6475                )))
6476            }),
6477            TypeVariant::ClaimClaimableBalanceResult => r.with_limited_depth(|r| {
6478                Ok(Self::ClaimClaimableBalanceResult(Box::new(
6479                    ClaimClaimableBalanceResult::read_xdr(r)?,
6480                )))
6481            }),
6482            TypeVariant::BeginSponsoringFutureReservesResultCode => r.with_limited_depth(|r| {
6483                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
6484                    BeginSponsoringFutureReservesResultCode::read_xdr(r)?,
6485                )))
6486            }),
6487            TypeVariant::BeginSponsoringFutureReservesResult => r.with_limited_depth(|r| {
6488                Ok(Self::BeginSponsoringFutureReservesResult(Box::new(
6489                    BeginSponsoringFutureReservesResult::read_xdr(r)?,
6490                )))
6491            }),
6492            TypeVariant::EndSponsoringFutureReservesResultCode => r.with_limited_depth(|r| {
6493                Ok(Self::EndSponsoringFutureReservesResultCode(Box::new(
6494                    EndSponsoringFutureReservesResultCode::read_xdr(r)?,
6495                )))
6496            }),
6497            TypeVariant::EndSponsoringFutureReservesResult => r.with_limited_depth(|r| {
6498                Ok(Self::EndSponsoringFutureReservesResult(Box::new(
6499                    EndSponsoringFutureReservesResult::read_xdr(r)?,
6500                )))
6501            }),
6502            TypeVariant::RevokeSponsorshipResultCode => r.with_limited_depth(|r| {
6503                Ok(Self::RevokeSponsorshipResultCode(Box::new(
6504                    RevokeSponsorshipResultCode::read_xdr(r)?,
6505                )))
6506            }),
6507            TypeVariant::RevokeSponsorshipResult => r.with_limited_depth(|r| {
6508                Ok(Self::RevokeSponsorshipResult(Box::new(
6509                    RevokeSponsorshipResult::read_xdr(r)?,
6510                )))
6511            }),
6512            TypeVariant::ClawbackResultCode => r.with_limited_depth(|r| {
6513                Ok(Self::ClawbackResultCode(Box::new(
6514                    ClawbackResultCode::read_xdr(r)?,
6515                )))
6516            }),
6517            TypeVariant::ClawbackResult => r.with_limited_depth(|r| {
6518                Ok(Self::ClawbackResult(Box::new(ClawbackResult::read_xdr(r)?)))
6519            }),
6520            TypeVariant::ClawbackClaimableBalanceResultCode => r.with_limited_depth(|r| {
6521                Ok(Self::ClawbackClaimableBalanceResultCode(Box::new(
6522                    ClawbackClaimableBalanceResultCode::read_xdr(r)?,
6523                )))
6524            }),
6525            TypeVariant::ClawbackClaimableBalanceResult => r.with_limited_depth(|r| {
6526                Ok(Self::ClawbackClaimableBalanceResult(Box::new(
6527                    ClawbackClaimableBalanceResult::read_xdr(r)?,
6528                )))
6529            }),
6530            TypeVariant::SetTrustLineFlagsResultCode => r.with_limited_depth(|r| {
6531                Ok(Self::SetTrustLineFlagsResultCode(Box::new(
6532                    SetTrustLineFlagsResultCode::read_xdr(r)?,
6533                )))
6534            }),
6535            TypeVariant::SetTrustLineFlagsResult => r.with_limited_depth(|r| {
6536                Ok(Self::SetTrustLineFlagsResult(Box::new(
6537                    SetTrustLineFlagsResult::read_xdr(r)?,
6538                )))
6539            }),
6540            TypeVariant::LiquidityPoolDepositResultCode => r.with_limited_depth(|r| {
6541                Ok(Self::LiquidityPoolDepositResultCode(Box::new(
6542                    LiquidityPoolDepositResultCode::read_xdr(r)?,
6543                )))
6544            }),
6545            TypeVariant::LiquidityPoolDepositResult => r.with_limited_depth(|r| {
6546                Ok(Self::LiquidityPoolDepositResult(Box::new(
6547                    LiquidityPoolDepositResult::read_xdr(r)?,
6548                )))
6549            }),
6550            TypeVariant::LiquidityPoolWithdrawResultCode => r.with_limited_depth(|r| {
6551                Ok(Self::LiquidityPoolWithdrawResultCode(Box::new(
6552                    LiquidityPoolWithdrawResultCode::read_xdr(r)?,
6553                )))
6554            }),
6555            TypeVariant::LiquidityPoolWithdrawResult => r.with_limited_depth(|r| {
6556                Ok(Self::LiquidityPoolWithdrawResult(Box::new(
6557                    LiquidityPoolWithdrawResult::read_xdr(r)?,
6558                )))
6559            }),
6560            TypeVariant::InvokeHostFunctionResultCode => r.with_limited_depth(|r| {
6561                Ok(Self::InvokeHostFunctionResultCode(Box::new(
6562                    InvokeHostFunctionResultCode::read_xdr(r)?,
6563                )))
6564            }),
6565            TypeVariant::InvokeHostFunctionResult => r.with_limited_depth(|r| {
6566                Ok(Self::InvokeHostFunctionResult(Box::new(
6567                    InvokeHostFunctionResult::read_xdr(r)?,
6568                )))
6569            }),
6570            TypeVariant::ExtendFootprintTtlResultCode => r.with_limited_depth(|r| {
6571                Ok(Self::ExtendFootprintTtlResultCode(Box::new(
6572                    ExtendFootprintTtlResultCode::read_xdr(r)?,
6573                )))
6574            }),
6575            TypeVariant::ExtendFootprintTtlResult => r.with_limited_depth(|r| {
6576                Ok(Self::ExtendFootprintTtlResult(Box::new(
6577                    ExtendFootprintTtlResult::read_xdr(r)?,
6578                )))
6579            }),
6580            TypeVariant::RestoreFootprintResultCode => r.with_limited_depth(|r| {
6581                Ok(Self::RestoreFootprintResultCode(Box::new(
6582                    RestoreFootprintResultCode::read_xdr(r)?,
6583                )))
6584            }),
6585            TypeVariant::RestoreFootprintResult => r.with_limited_depth(|r| {
6586                Ok(Self::RestoreFootprintResult(Box::new(
6587                    RestoreFootprintResult::read_xdr(r)?,
6588                )))
6589            }),
6590            TypeVariant::OperationResultCode => r.with_limited_depth(|r| {
6591                Ok(Self::OperationResultCode(Box::new(
6592                    OperationResultCode::read_xdr(r)?,
6593                )))
6594            }),
6595            TypeVariant::OperationResult => r.with_limited_depth(|r| {
6596                Ok(Self::OperationResult(Box::new(OperationResult::read_xdr(
6597                    r,
6598                )?)))
6599            }),
6600            TypeVariant::OperationResultTr => r.with_limited_depth(|r| {
6601                Ok(Self::OperationResultTr(Box::new(
6602                    OperationResultTr::read_xdr(r)?,
6603                )))
6604            }),
6605            TypeVariant::TransactionResultCode => r.with_limited_depth(|r| {
6606                Ok(Self::TransactionResultCode(Box::new(
6607                    TransactionResultCode::read_xdr(r)?,
6608                )))
6609            }),
6610            TypeVariant::InnerTransactionResult => r.with_limited_depth(|r| {
6611                Ok(Self::InnerTransactionResult(Box::new(
6612                    InnerTransactionResult::read_xdr(r)?,
6613                )))
6614            }),
6615            TypeVariant::InnerTransactionResultResult => r.with_limited_depth(|r| {
6616                Ok(Self::InnerTransactionResultResult(Box::new(
6617                    InnerTransactionResultResult::read_xdr(r)?,
6618                )))
6619            }),
6620            TypeVariant::InnerTransactionResultExt => r.with_limited_depth(|r| {
6621                Ok(Self::InnerTransactionResultExt(Box::new(
6622                    InnerTransactionResultExt::read_xdr(r)?,
6623                )))
6624            }),
6625            TypeVariant::InnerTransactionResultPair => r.with_limited_depth(|r| {
6626                Ok(Self::InnerTransactionResultPair(Box::new(
6627                    InnerTransactionResultPair::read_xdr(r)?,
6628                )))
6629            }),
6630            TypeVariant::TransactionResult => r.with_limited_depth(|r| {
6631                Ok(Self::TransactionResult(Box::new(
6632                    TransactionResult::read_xdr(r)?,
6633                )))
6634            }),
6635            TypeVariant::TransactionResultResult => r.with_limited_depth(|r| {
6636                Ok(Self::TransactionResultResult(Box::new(
6637                    TransactionResultResult::read_xdr(r)?,
6638                )))
6639            }),
6640            TypeVariant::TransactionResultExt => r.with_limited_depth(|r| {
6641                Ok(Self::TransactionResultExt(Box::new(
6642                    TransactionResultExt::read_xdr(r)?,
6643                )))
6644            }),
6645            TypeVariant::Hash => {
6646                r.with_limited_depth(|r| Ok(Self::Hash(Box::new(Hash::read_xdr(r)?))))
6647            }
6648            TypeVariant::Uint256 => {
6649                r.with_limited_depth(|r| Ok(Self::Uint256(Box::new(Uint256::read_xdr(r)?))))
6650            }
6651            TypeVariant::Uint32 => {
6652                r.with_limited_depth(|r| Ok(Self::Uint32(Box::new(Uint32::read_xdr(r)?))))
6653            }
6654            TypeVariant::Int32 => {
6655                r.with_limited_depth(|r| Ok(Self::Int32(Box::new(Int32::read_xdr(r)?))))
6656            }
6657            TypeVariant::Uint64 => {
6658                r.with_limited_depth(|r| Ok(Self::Uint64(Box::new(Uint64::read_xdr(r)?))))
6659            }
6660            TypeVariant::Int64 => {
6661                r.with_limited_depth(|r| Ok(Self::Int64(Box::new(Int64::read_xdr(r)?))))
6662            }
6663            TypeVariant::TimePoint => {
6664                r.with_limited_depth(|r| Ok(Self::TimePoint(Box::new(TimePoint::read_xdr(r)?))))
6665            }
6666            TypeVariant::Duration => {
6667                r.with_limited_depth(|r| Ok(Self::Duration(Box::new(Duration::read_xdr(r)?))))
6668            }
6669            TypeVariant::ExtensionPoint => r.with_limited_depth(|r| {
6670                Ok(Self::ExtensionPoint(Box::new(ExtensionPoint::read_xdr(r)?)))
6671            }),
6672            TypeVariant::CryptoKeyType => r.with_limited_depth(|r| {
6673                Ok(Self::CryptoKeyType(Box::new(CryptoKeyType::read_xdr(r)?)))
6674            }),
6675            TypeVariant::PublicKeyType => r.with_limited_depth(|r| {
6676                Ok(Self::PublicKeyType(Box::new(PublicKeyType::read_xdr(r)?)))
6677            }),
6678            TypeVariant::SignerKeyType => r.with_limited_depth(|r| {
6679                Ok(Self::SignerKeyType(Box::new(SignerKeyType::read_xdr(r)?)))
6680            }),
6681            TypeVariant::PublicKey => {
6682                r.with_limited_depth(|r| Ok(Self::PublicKey(Box::new(PublicKey::read_xdr(r)?))))
6683            }
6684            TypeVariant::SignerKey => {
6685                r.with_limited_depth(|r| Ok(Self::SignerKey(Box::new(SignerKey::read_xdr(r)?))))
6686            }
6687            TypeVariant::SignerKeyEd25519SignedPayload => r.with_limited_depth(|r| {
6688                Ok(Self::SignerKeyEd25519SignedPayload(Box::new(
6689                    SignerKeyEd25519SignedPayload::read_xdr(r)?,
6690                )))
6691            }),
6692            TypeVariant::Signature => {
6693                r.with_limited_depth(|r| Ok(Self::Signature(Box::new(Signature::read_xdr(r)?))))
6694            }
6695            TypeVariant::SignatureHint => r.with_limited_depth(|r| {
6696                Ok(Self::SignatureHint(Box::new(SignatureHint::read_xdr(r)?)))
6697            }),
6698            TypeVariant::NodeId => {
6699                r.with_limited_depth(|r| Ok(Self::NodeId(Box::new(NodeId::read_xdr(r)?))))
6700            }
6701            TypeVariant::AccountId => {
6702                r.with_limited_depth(|r| Ok(Self::AccountId(Box::new(AccountId::read_xdr(r)?))))
6703            }
6704            TypeVariant::ContractId => {
6705                r.with_limited_depth(|r| Ok(Self::ContractId(Box::new(ContractId::read_xdr(r)?))))
6706            }
6707            TypeVariant::Curve25519Secret => r.with_limited_depth(|r| {
6708                Ok(Self::Curve25519Secret(Box::new(
6709                    Curve25519Secret::read_xdr(r)?,
6710                )))
6711            }),
6712            TypeVariant::Curve25519Public => r.with_limited_depth(|r| {
6713                Ok(Self::Curve25519Public(Box::new(
6714                    Curve25519Public::read_xdr(r)?,
6715                )))
6716            }),
6717            TypeVariant::HmacSha256Key => r.with_limited_depth(|r| {
6718                Ok(Self::HmacSha256Key(Box::new(HmacSha256Key::read_xdr(r)?)))
6719            }),
6720            TypeVariant::HmacSha256Mac => r.with_limited_depth(|r| {
6721                Ok(Self::HmacSha256Mac(Box::new(HmacSha256Mac::read_xdr(r)?)))
6722            }),
6723            TypeVariant::ShortHashSeed => r.with_limited_depth(|r| {
6724                Ok(Self::ShortHashSeed(Box::new(ShortHashSeed::read_xdr(r)?)))
6725            }),
6726            TypeVariant::BinaryFuseFilterType => r.with_limited_depth(|r| {
6727                Ok(Self::BinaryFuseFilterType(Box::new(
6728                    BinaryFuseFilterType::read_xdr(r)?,
6729                )))
6730            }),
6731            TypeVariant::SerializedBinaryFuseFilter => r.with_limited_depth(|r| {
6732                Ok(Self::SerializedBinaryFuseFilter(Box::new(
6733                    SerializedBinaryFuseFilter::read_xdr(r)?,
6734                )))
6735            }),
6736            TypeVariant::PoolId => {
6737                r.with_limited_depth(|r| Ok(Self::PoolId(Box::new(PoolId::read_xdr(r)?))))
6738            }
6739            TypeVariant::ClaimableBalanceIdType => r.with_limited_depth(|r| {
6740                Ok(Self::ClaimableBalanceIdType(Box::new(
6741                    ClaimableBalanceIdType::read_xdr(r)?,
6742                )))
6743            }),
6744            TypeVariant::ClaimableBalanceId => r.with_limited_depth(|r| {
6745                Ok(Self::ClaimableBalanceId(Box::new(
6746                    ClaimableBalanceId::read_xdr(r)?,
6747                )))
6748            }),
6749            #[cfg(feature = "test_feature")]
6750            TypeVariant::TestNextType => r.with_limited_depth(|r| {
6751                Ok(Self::TestNextType(Box::new(TestNextType::read_xdr(r)?)))
6752            }),
6753        }
6754    }
6755
6756    #[cfg(feature = "base64")]
6757    pub fn read_xdr_base64<R: Read>(v: TypeVariant, r: &mut Limited<R>) -> Result<Self, Error> {
6758        let mut dec = Limited::new(
6759            base64::read::DecoderReader::new(
6760                SkipWhitespace::new(&mut r.inner),
6761                &base64::engine::general_purpose::STANDARD,
6762            ),
6763            r.limits.clone(),
6764        );
6765        let t = Self::read_xdr(v, &mut dec)?;
6766        Ok(t)
6767    }
6768
6769    #[cfg(feature = "std")]
6770    pub fn read_xdr_to_end<R: Read>(v: TypeVariant, r: &mut Limited<R>) -> Result<Self, Error> {
6771        let s = Self::read_xdr(v, r)?;
6772        // Check that any further reads, such as this read of one byte, read no
6773        // data, indicating EOF. If a byte is read the data is invalid.
6774        if r.read(&mut [0u8; 1])? == 0 {
6775            Ok(s)
6776        } else {
6777            Err(Error::Invalid)
6778        }
6779    }
6780
6781    #[cfg(feature = "base64")]
6782    pub fn read_xdr_base64_to_end<R: Read>(
6783        v: TypeVariant,
6784        r: &mut Limited<R>,
6785    ) -> Result<Self, Error> {
6786        let mut dec = Limited::new(
6787            base64::read::DecoderReader::new(
6788                SkipWhitespace::new(&mut r.inner),
6789                &base64::engine::general_purpose::STANDARD,
6790            ),
6791            r.limits.clone(),
6792        );
6793        let t = Self::read_xdr_to_end(v, &mut dec)?;
6794        Ok(t)
6795    }
6796
6797    #[cfg(feature = "std")]
6798    #[allow(clippy::too_many_lines)]
6799    pub fn read_xdr_iter<R: Read>(
6800        v: TypeVariant,
6801        r: &mut Limited<R>,
6802    ) -> Box<dyn Iterator<Item = Result<Self, Error>> + '_> {
6803        match v {
6804            TypeVariant::Value => Box::new(
6805                ReadXdrIter::<_, Value>::new(&mut r.inner, r.limits.clone())
6806                    .map(|r| r.map(|t| Self::Value(Box::new(t)))),
6807            ),
6808            TypeVariant::ScpBallot => Box::new(
6809                ReadXdrIter::<_, ScpBallot>::new(&mut r.inner, r.limits.clone())
6810                    .map(|r| r.map(|t| Self::ScpBallot(Box::new(t)))),
6811            ),
6812            TypeVariant::ScpStatementType => Box::new(
6813                ReadXdrIter::<_, ScpStatementType>::new(&mut r.inner, r.limits.clone())
6814                    .map(|r| r.map(|t| Self::ScpStatementType(Box::new(t)))),
6815            ),
6816            TypeVariant::ScpNomination => Box::new(
6817                ReadXdrIter::<_, ScpNomination>::new(&mut r.inner, r.limits.clone())
6818                    .map(|r| r.map(|t| Self::ScpNomination(Box::new(t)))),
6819            ),
6820            TypeVariant::ScpStatement => Box::new(
6821                ReadXdrIter::<_, ScpStatement>::new(&mut r.inner, r.limits.clone())
6822                    .map(|r| r.map(|t| Self::ScpStatement(Box::new(t)))),
6823            ),
6824            TypeVariant::ScpStatementPledges => Box::new(
6825                ReadXdrIter::<_, ScpStatementPledges>::new(&mut r.inner, r.limits.clone())
6826                    .map(|r| r.map(|t| Self::ScpStatementPledges(Box::new(t)))),
6827            ),
6828            TypeVariant::ScpStatementPrepare => Box::new(
6829                ReadXdrIter::<_, ScpStatementPrepare>::new(&mut r.inner, r.limits.clone())
6830                    .map(|r| r.map(|t| Self::ScpStatementPrepare(Box::new(t)))),
6831            ),
6832            TypeVariant::ScpStatementConfirm => Box::new(
6833                ReadXdrIter::<_, ScpStatementConfirm>::new(&mut r.inner, r.limits.clone())
6834                    .map(|r| r.map(|t| Self::ScpStatementConfirm(Box::new(t)))),
6835            ),
6836            TypeVariant::ScpStatementExternalize => Box::new(
6837                ReadXdrIter::<_, ScpStatementExternalize>::new(&mut r.inner, r.limits.clone())
6838                    .map(|r| r.map(|t| Self::ScpStatementExternalize(Box::new(t)))),
6839            ),
6840            TypeVariant::ScpEnvelope => Box::new(
6841                ReadXdrIter::<_, ScpEnvelope>::new(&mut r.inner, r.limits.clone())
6842                    .map(|r| r.map(|t| Self::ScpEnvelope(Box::new(t)))),
6843            ),
6844            TypeVariant::ScpQuorumSet => Box::new(
6845                ReadXdrIter::<_, ScpQuorumSet>::new(&mut r.inner, r.limits.clone())
6846                    .map(|r| r.map(|t| Self::ScpQuorumSet(Box::new(t)))),
6847            ),
6848            TypeVariant::EncodedLedgerKey => Box::new(
6849                ReadXdrIter::<_, EncodedLedgerKey>::new(&mut r.inner, r.limits.clone())
6850                    .map(|r| r.map(|t| Self::EncodedLedgerKey(Box::new(t)))),
6851            ),
6852            TypeVariant::ConfigSettingContractExecutionLanesV0 => Box::new(
6853                ReadXdrIter::<_, ConfigSettingContractExecutionLanesV0>::new(
6854                    &mut r.inner,
6855                    r.limits.clone(),
6856                )
6857                .map(|r| r.map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t)))),
6858            ),
6859            TypeVariant::ConfigSettingContractComputeV0 => Box::new(
6860                ReadXdrIter::<_, ConfigSettingContractComputeV0>::new(
6861                    &mut r.inner,
6862                    r.limits.clone(),
6863                )
6864                .map(|r| r.map(|t| Self::ConfigSettingContractComputeV0(Box::new(t)))),
6865            ),
6866            TypeVariant::ConfigSettingContractParallelComputeV0 => Box::new(
6867                ReadXdrIter::<_, ConfigSettingContractParallelComputeV0>::new(
6868                    &mut r.inner,
6869                    r.limits.clone(),
6870                )
6871                .map(|r| r.map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t)))),
6872            ),
6873            TypeVariant::ConfigSettingContractLedgerCostV0 => Box::new(
6874                ReadXdrIter::<_, ConfigSettingContractLedgerCostV0>::new(
6875                    &mut r.inner,
6876                    r.limits.clone(),
6877                )
6878                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t)))),
6879            ),
6880            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Box::new(
6881                ReadXdrIter::<_, ConfigSettingContractLedgerCostExtV0>::new(
6882                    &mut r.inner,
6883                    r.limits.clone(),
6884                )
6885                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t)))),
6886            ),
6887            TypeVariant::ConfigSettingContractHistoricalDataV0 => Box::new(
6888                ReadXdrIter::<_, ConfigSettingContractHistoricalDataV0>::new(
6889                    &mut r.inner,
6890                    r.limits.clone(),
6891                )
6892                .map(|r| r.map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t)))),
6893            ),
6894            TypeVariant::ConfigSettingContractEventsV0 => Box::new(
6895                ReadXdrIter::<_, ConfigSettingContractEventsV0>::new(
6896                    &mut r.inner,
6897                    r.limits.clone(),
6898                )
6899                .map(|r| r.map(|t| Self::ConfigSettingContractEventsV0(Box::new(t)))),
6900            ),
6901            TypeVariant::ConfigSettingContractBandwidthV0 => Box::new(
6902                ReadXdrIter::<_, ConfigSettingContractBandwidthV0>::new(
6903                    &mut r.inner,
6904                    r.limits.clone(),
6905                )
6906                .map(|r| r.map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t)))),
6907            ),
6908            TypeVariant::ContractCostType => Box::new(
6909                ReadXdrIter::<_, ContractCostType>::new(&mut r.inner, r.limits.clone())
6910                    .map(|r| r.map(|t| Self::ContractCostType(Box::new(t)))),
6911            ),
6912            TypeVariant::ContractCostParamEntry => Box::new(
6913                ReadXdrIter::<_, ContractCostParamEntry>::new(&mut r.inner, r.limits.clone())
6914                    .map(|r| r.map(|t| Self::ContractCostParamEntry(Box::new(t)))),
6915            ),
6916            TypeVariant::StateArchivalSettings => Box::new(
6917                ReadXdrIter::<_, StateArchivalSettings>::new(&mut r.inner, r.limits.clone())
6918                    .map(|r| r.map(|t| Self::StateArchivalSettings(Box::new(t)))),
6919            ),
6920            TypeVariant::EvictionIterator => Box::new(
6921                ReadXdrIter::<_, EvictionIterator>::new(&mut r.inner, r.limits.clone())
6922                    .map(|r| r.map(|t| Self::EvictionIterator(Box::new(t)))),
6923            ),
6924            TypeVariant::ConfigSettingScpTiming => Box::new(
6925                ReadXdrIter::<_, ConfigSettingScpTiming>::new(&mut r.inner, r.limits.clone())
6926                    .map(|r| r.map(|t| Self::ConfigSettingScpTiming(Box::new(t)))),
6927            ),
6928            TypeVariant::FrozenLedgerKeys => Box::new(
6929                ReadXdrIter::<_, FrozenLedgerKeys>::new(&mut r.inner, r.limits.clone())
6930                    .map(|r| r.map(|t| Self::FrozenLedgerKeys(Box::new(t)))),
6931            ),
6932            TypeVariant::FrozenLedgerKeysDelta => Box::new(
6933                ReadXdrIter::<_, FrozenLedgerKeysDelta>::new(&mut r.inner, r.limits.clone())
6934                    .map(|r| r.map(|t| Self::FrozenLedgerKeysDelta(Box::new(t)))),
6935            ),
6936            TypeVariant::FreezeBypassTxs => Box::new(
6937                ReadXdrIter::<_, FreezeBypassTxs>::new(&mut r.inner, r.limits.clone())
6938                    .map(|r| r.map(|t| Self::FreezeBypassTxs(Box::new(t)))),
6939            ),
6940            TypeVariant::FreezeBypassTxsDelta => Box::new(
6941                ReadXdrIter::<_, FreezeBypassTxsDelta>::new(&mut r.inner, r.limits.clone())
6942                    .map(|r| r.map(|t| Self::FreezeBypassTxsDelta(Box::new(t)))),
6943            ),
6944            TypeVariant::ContractCostParams => Box::new(
6945                ReadXdrIter::<_, ContractCostParams>::new(&mut r.inner, r.limits.clone())
6946                    .map(|r| r.map(|t| Self::ContractCostParams(Box::new(t)))),
6947            ),
6948            TypeVariant::ConfigSettingId => Box::new(
6949                ReadXdrIter::<_, ConfigSettingId>::new(&mut r.inner, r.limits.clone())
6950                    .map(|r| r.map(|t| Self::ConfigSettingId(Box::new(t)))),
6951            ),
6952            TypeVariant::ConfigSettingEntry => Box::new(
6953                ReadXdrIter::<_, ConfigSettingEntry>::new(&mut r.inner, r.limits.clone())
6954                    .map(|r| r.map(|t| Self::ConfigSettingEntry(Box::new(t)))),
6955            ),
6956            TypeVariant::ScEnvMetaKind => Box::new(
6957                ReadXdrIter::<_, ScEnvMetaKind>::new(&mut r.inner, r.limits.clone())
6958                    .map(|r| r.map(|t| Self::ScEnvMetaKind(Box::new(t)))),
6959            ),
6960            TypeVariant::ScEnvMetaEntry => Box::new(
6961                ReadXdrIter::<_, ScEnvMetaEntry>::new(&mut r.inner, r.limits.clone())
6962                    .map(|r| r.map(|t| Self::ScEnvMetaEntry(Box::new(t)))),
6963            ),
6964            TypeVariant::ScEnvMetaEntryInterfaceVersion => Box::new(
6965                ReadXdrIter::<_, ScEnvMetaEntryInterfaceVersion>::new(
6966                    &mut r.inner,
6967                    r.limits.clone(),
6968                )
6969                .map(|r| r.map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t)))),
6970            ),
6971            TypeVariant::ScMetaV0 => Box::new(
6972                ReadXdrIter::<_, ScMetaV0>::new(&mut r.inner, r.limits.clone())
6973                    .map(|r| r.map(|t| Self::ScMetaV0(Box::new(t)))),
6974            ),
6975            TypeVariant::ScMetaKind => Box::new(
6976                ReadXdrIter::<_, ScMetaKind>::new(&mut r.inner, r.limits.clone())
6977                    .map(|r| r.map(|t| Self::ScMetaKind(Box::new(t)))),
6978            ),
6979            TypeVariant::ScMetaEntry => Box::new(
6980                ReadXdrIter::<_, ScMetaEntry>::new(&mut r.inner, r.limits.clone())
6981                    .map(|r| r.map(|t| Self::ScMetaEntry(Box::new(t)))),
6982            ),
6983            TypeVariant::ScSpecType => Box::new(
6984                ReadXdrIter::<_, ScSpecType>::new(&mut r.inner, r.limits.clone())
6985                    .map(|r| r.map(|t| Self::ScSpecType(Box::new(t)))),
6986            ),
6987            TypeVariant::ScSpecTypeOption => Box::new(
6988                ReadXdrIter::<_, ScSpecTypeOption>::new(&mut r.inner, r.limits.clone())
6989                    .map(|r| r.map(|t| Self::ScSpecTypeOption(Box::new(t)))),
6990            ),
6991            TypeVariant::ScSpecTypeResult => Box::new(
6992                ReadXdrIter::<_, ScSpecTypeResult>::new(&mut r.inner, r.limits.clone())
6993                    .map(|r| r.map(|t| Self::ScSpecTypeResult(Box::new(t)))),
6994            ),
6995            TypeVariant::ScSpecTypeVec => Box::new(
6996                ReadXdrIter::<_, ScSpecTypeVec>::new(&mut r.inner, r.limits.clone())
6997                    .map(|r| r.map(|t| Self::ScSpecTypeVec(Box::new(t)))),
6998            ),
6999            TypeVariant::ScSpecTypeMap => Box::new(
7000                ReadXdrIter::<_, ScSpecTypeMap>::new(&mut r.inner, r.limits.clone())
7001                    .map(|r| r.map(|t| Self::ScSpecTypeMap(Box::new(t)))),
7002            ),
7003            TypeVariant::ScSpecTypeTuple => Box::new(
7004                ReadXdrIter::<_, ScSpecTypeTuple>::new(&mut r.inner, r.limits.clone())
7005                    .map(|r| r.map(|t| Self::ScSpecTypeTuple(Box::new(t)))),
7006            ),
7007            TypeVariant::ScSpecTypeBytesN => Box::new(
7008                ReadXdrIter::<_, ScSpecTypeBytesN>::new(&mut r.inner, r.limits.clone())
7009                    .map(|r| r.map(|t| Self::ScSpecTypeBytesN(Box::new(t)))),
7010            ),
7011            TypeVariant::ScSpecTypeUdt => Box::new(
7012                ReadXdrIter::<_, ScSpecTypeUdt>::new(&mut r.inner, r.limits.clone())
7013                    .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t)))),
7014            ),
7015            TypeVariant::ScSpecTypeDef => Box::new(
7016                ReadXdrIter::<_, ScSpecTypeDef>::new(&mut r.inner, r.limits.clone())
7017                    .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t)))),
7018            ),
7019            TypeVariant::ScSpecUdtStructFieldV0 => Box::new(
7020                ReadXdrIter::<_, ScSpecUdtStructFieldV0>::new(&mut r.inner, r.limits.clone())
7021                    .map(|r| r.map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t)))),
7022            ),
7023            TypeVariant::ScSpecUdtStructV0 => Box::new(
7024                ReadXdrIter::<_, ScSpecUdtStructV0>::new(&mut r.inner, r.limits.clone())
7025                    .map(|r| r.map(|t| Self::ScSpecUdtStructV0(Box::new(t)))),
7026            ),
7027            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Box::new(
7028                ReadXdrIter::<_, ScSpecUdtUnionCaseVoidV0>::new(&mut r.inner, r.limits.clone())
7029                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t)))),
7030            ),
7031            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Box::new(
7032                ReadXdrIter::<_, ScSpecUdtUnionCaseTupleV0>::new(&mut r.inner, r.limits.clone())
7033                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t)))),
7034            ),
7035            TypeVariant::ScSpecUdtUnionCaseV0Kind => Box::new(
7036                ReadXdrIter::<_, ScSpecUdtUnionCaseV0Kind>::new(&mut r.inner, r.limits.clone())
7037                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t)))),
7038            ),
7039            TypeVariant::ScSpecUdtUnionCaseV0 => Box::new(
7040                ReadXdrIter::<_, ScSpecUdtUnionCaseV0>::new(&mut r.inner, r.limits.clone())
7041                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t)))),
7042            ),
7043            TypeVariant::ScSpecUdtUnionV0 => Box::new(
7044                ReadXdrIter::<_, ScSpecUdtUnionV0>::new(&mut r.inner, r.limits.clone())
7045                    .map(|r| r.map(|t| Self::ScSpecUdtUnionV0(Box::new(t)))),
7046            ),
7047            TypeVariant::ScSpecUdtEnumCaseV0 => Box::new(
7048                ReadXdrIter::<_, ScSpecUdtEnumCaseV0>::new(&mut r.inner, r.limits.clone())
7049                    .map(|r| r.map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t)))),
7050            ),
7051            TypeVariant::ScSpecUdtEnumV0 => Box::new(
7052                ReadXdrIter::<_, ScSpecUdtEnumV0>::new(&mut r.inner, r.limits.clone())
7053                    .map(|r| r.map(|t| Self::ScSpecUdtEnumV0(Box::new(t)))),
7054            ),
7055            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Box::new(
7056                ReadXdrIter::<_, ScSpecUdtErrorEnumCaseV0>::new(&mut r.inner, r.limits.clone())
7057                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t)))),
7058            ),
7059            TypeVariant::ScSpecUdtErrorEnumV0 => Box::new(
7060                ReadXdrIter::<_, ScSpecUdtErrorEnumV0>::new(&mut r.inner, r.limits.clone())
7061                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t)))),
7062            ),
7063            TypeVariant::ScSpecFunctionInputV0 => Box::new(
7064                ReadXdrIter::<_, ScSpecFunctionInputV0>::new(&mut r.inner, r.limits.clone())
7065                    .map(|r| r.map(|t| Self::ScSpecFunctionInputV0(Box::new(t)))),
7066            ),
7067            TypeVariant::ScSpecFunctionV0 => Box::new(
7068                ReadXdrIter::<_, ScSpecFunctionV0>::new(&mut r.inner, r.limits.clone())
7069                    .map(|r| r.map(|t| Self::ScSpecFunctionV0(Box::new(t)))),
7070            ),
7071            TypeVariant::ScSpecEventParamLocationV0 => Box::new(
7072                ReadXdrIter::<_, ScSpecEventParamLocationV0>::new(&mut r.inner, r.limits.clone())
7073                    .map(|r| r.map(|t| Self::ScSpecEventParamLocationV0(Box::new(t)))),
7074            ),
7075            TypeVariant::ScSpecEventParamV0 => Box::new(
7076                ReadXdrIter::<_, ScSpecEventParamV0>::new(&mut r.inner, r.limits.clone())
7077                    .map(|r| r.map(|t| Self::ScSpecEventParamV0(Box::new(t)))),
7078            ),
7079            TypeVariant::ScSpecEventDataFormat => Box::new(
7080                ReadXdrIter::<_, ScSpecEventDataFormat>::new(&mut r.inner, r.limits.clone())
7081                    .map(|r| r.map(|t| Self::ScSpecEventDataFormat(Box::new(t)))),
7082            ),
7083            TypeVariant::ScSpecEventV0 => Box::new(
7084                ReadXdrIter::<_, ScSpecEventV0>::new(&mut r.inner, r.limits.clone())
7085                    .map(|r| r.map(|t| Self::ScSpecEventV0(Box::new(t)))),
7086            ),
7087            TypeVariant::ScSpecEntryKind => Box::new(
7088                ReadXdrIter::<_, ScSpecEntryKind>::new(&mut r.inner, r.limits.clone())
7089                    .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t)))),
7090            ),
7091            TypeVariant::ScSpecEntry => Box::new(
7092                ReadXdrIter::<_, ScSpecEntry>::new(&mut r.inner, r.limits.clone())
7093                    .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t)))),
7094            ),
7095            TypeVariant::ScValType => Box::new(
7096                ReadXdrIter::<_, ScValType>::new(&mut r.inner, r.limits.clone())
7097                    .map(|r| r.map(|t| Self::ScValType(Box::new(t)))),
7098            ),
7099            TypeVariant::ScErrorType => Box::new(
7100                ReadXdrIter::<_, ScErrorType>::new(&mut r.inner, r.limits.clone())
7101                    .map(|r| r.map(|t| Self::ScErrorType(Box::new(t)))),
7102            ),
7103            TypeVariant::ScErrorCode => Box::new(
7104                ReadXdrIter::<_, ScErrorCode>::new(&mut r.inner, r.limits.clone())
7105                    .map(|r| r.map(|t| Self::ScErrorCode(Box::new(t)))),
7106            ),
7107            TypeVariant::ScError => Box::new(
7108                ReadXdrIter::<_, ScError>::new(&mut r.inner, r.limits.clone())
7109                    .map(|r| r.map(|t| Self::ScError(Box::new(t)))),
7110            ),
7111            TypeVariant::UInt128Parts => Box::new(
7112                ReadXdrIter::<_, UInt128Parts>::new(&mut r.inner, r.limits.clone())
7113                    .map(|r| r.map(|t| Self::UInt128Parts(Box::new(t)))),
7114            ),
7115            TypeVariant::Int128Parts => Box::new(
7116                ReadXdrIter::<_, Int128Parts>::new(&mut r.inner, r.limits.clone())
7117                    .map(|r| r.map(|t| Self::Int128Parts(Box::new(t)))),
7118            ),
7119            TypeVariant::UInt256Parts => Box::new(
7120                ReadXdrIter::<_, UInt256Parts>::new(&mut r.inner, r.limits.clone())
7121                    .map(|r| r.map(|t| Self::UInt256Parts(Box::new(t)))),
7122            ),
7123            TypeVariant::Int256Parts => Box::new(
7124                ReadXdrIter::<_, Int256Parts>::new(&mut r.inner, r.limits.clone())
7125                    .map(|r| r.map(|t| Self::Int256Parts(Box::new(t)))),
7126            ),
7127            TypeVariant::ContractExecutableType => Box::new(
7128                ReadXdrIter::<_, ContractExecutableType>::new(&mut r.inner, r.limits.clone())
7129                    .map(|r| r.map(|t| Self::ContractExecutableType(Box::new(t)))),
7130            ),
7131            TypeVariant::ContractExecutable => Box::new(
7132                ReadXdrIter::<_, ContractExecutable>::new(&mut r.inner, r.limits.clone())
7133                    .map(|r| r.map(|t| Self::ContractExecutable(Box::new(t)))),
7134            ),
7135            TypeVariant::ScAddressType => Box::new(
7136                ReadXdrIter::<_, ScAddressType>::new(&mut r.inner, r.limits.clone())
7137                    .map(|r| r.map(|t| Self::ScAddressType(Box::new(t)))),
7138            ),
7139            TypeVariant::MuxedEd25519Account => Box::new(
7140                ReadXdrIter::<_, MuxedEd25519Account>::new(&mut r.inner, r.limits.clone())
7141                    .map(|r| r.map(|t| Self::MuxedEd25519Account(Box::new(t)))),
7142            ),
7143            TypeVariant::ScAddress => Box::new(
7144                ReadXdrIter::<_, ScAddress>::new(&mut r.inner, r.limits.clone())
7145                    .map(|r| r.map(|t| Self::ScAddress(Box::new(t)))),
7146            ),
7147            TypeVariant::ScVec => Box::new(
7148                ReadXdrIter::<_, ScVec>::new(&mut r.inner, r.limits.clone())
7149                    .map(|r| r.map(|t| Self::ScVec(Box::new(t)))),
7150            ),
7151            TypeVariant::ScMap => Box::new(
7152                ReadXdrIter::<_, ScMap>::new(&mut r.inner, r.limits.clone())
7153                    .map(|r| r.map(|t| Self::ScMap(Box::new(t)))),
7154            ),
7155            TypeVariant::ScBytes => Box::new(
7156                ReadXdrIter::<_, ScBytes>::new(&mut r.inner, r.limits.clone())
7157                    .map(|r| r.map(|t| Self::ScBytes(Box::new(t)))),
7158            ),
7159            TypeVariant::ScString => Box::new(
7160                ReadXdrIter::<_, ScString>::new(&mut r.inner, r.limits.clone())
7161                    .map(|r| r.map(|t| Self::ScString(Box::new(t)))),
7162            ),
7163            TypeVariant::ScSymbol => Box::new(
7164                ReadXdrIter::<_, ScSymbol>::new(&mut r.inner, r.limits.clone())
7165                    .map(|r| r.map(|t| Self::ScSymbol(Box::new(t)))),
7166            ),
7167            TypeVariant::ScNonceKey => Box::new(
7168                ReadXdrIter::<_, ScNonceKey>::new(&mut r.inner, r.limits.clone())
7169                    .map(|r| r.map(|t| Self::ScNonceKey(Box::new(t)))),
7170            ),
7171            TypeVariant::ScContractInstance => Box::new(
7172                ReadXdrIter::<_, ScContractInstance>::new(&mut r.inner, r.limits.clone())
7173                    .map(|r| r.map(|t| Self::ScContractInstance(Box::new(t)))),
7174            ),
7175            TypeVariant::ScVal => Box::new(
7176                ReadXdrIter::<_, ScVal>::new(&mut r.inner, r.limits.clone())
7177                    .map(|r| r.map(|t| Self::ScVal(Box::new(t)))),
7178            ),
7179            TypeVariant::ScMapEntry => Box::new(
7180                ReadXdrIter::<_, ScMapEntry>::new(&mut r.inner, r.limits.clone())
7181                    .map(|r| r.map(|t| Self::ScMapEntry(Box::new(t)))),
7182            ),
7183            TypeVariant::LedgerCloseMetaBatch => Box::new(
7184                ReadXdrIter::<_, LedgerCloseMetaBatch>::new(&mut r.inner, r.limits.clone())
7185                    .map(|r| r.map(|t| Self::LedgerCloseMetaBatch(Box::new(t)))),
7186            ),
7187            TypeVariant::StoredTransactionSet => Box::new(
7188                ReadXdrIter::<_, StoredTransactionSet>::new(&mut r.inner, r.limits.clone())
7189                    .map(|r| r.map(|t| Self::StoredTransactionSet(Box::new(t)))),
7190            ),
7191            TypeVariant::StoredDebugTransactionSet => Box::new(
7192                ReadXdrIter::<_, StoredDebugTransactionSet>::new(&mut r.inner, r.limits.clone())
7193                    .map(|r| r.map(|t| Self::StoredDebugTransactionSet(Box::new(t)))),
7194            ),
7195            TypeVariant::PersistedScpStateV0 => Box::new(
7196                ReadXdrIter::<_, PersistedScpStateV0>::new(&mut r.inner, r.limits.clone())
7197                    .map(|r| r.map(|t| Self::PersistedScpStateV0(Box::new(t)))),
7198            ),
7199            TypeVariant::PersistedScpStateV1 => Box::new(
7200                ReadXdrIter::<_, PersistedScpStateV1>::new(&mut r.inner, r.limits.clone())
7201                    .map(|r| r.map(|t| Self::PersistedScpStateV1(Box::new(t)))),
7202            ),
7203            TypeVariant::PersistedScpState => Box::new(
7204                ReadXdrIter::<_, PersistedScpState>::new(&mut r.inner, r.limits.clone())
7205                    .map(|r| r.map(|t| Self::PersistedScpState(Box::new(t)))),
7206            ),
7207            TypeVariant::Thresholds => Box::new(
7208                ReadXdrIter::<_, Thresholds>::new(&mut r.inner, r.limits.clone())
7209                    .map(|r| r.map(|t| Self::Thresholds(Box::new(t)))),
7210            ),
7211            TypeVariant::String32 => Box::new(
7212                ReadXdrIter::<_, String32>::new(&mut r.inner, r.limits.clone())
7213                    .map(|r| r.map(|t| Self::String32(Box::new(t)))),
7214            ),
7215            TypeVariant::String64 => Box::new(
7216                ReadXdrIter::<_, String64>::new(&mut r.inner, r.limits.clone())
7217                    .map(|r| r.map(|t| Self::String64(Box::new(t)))),
7218            ),
7219            TypeVariant::SequenceNumber => Box::new(
7220                ReadXdrIter::<_, SequenceNumber>::new(&mut r.inner, r.limits.clone())
7221                    .map(|r| r.map(|t| Self::SequenceNumber(Box::new(t)))),
7222            ),
7223            TypeVariant::DataValue => Box::new(
7224                ReadXdrIter::<_, DataValue>::new(&mut r.inner, r.limits.clone())
7225                    .map(|r| r.map(|t| Self::DataValue(Box::new(t)))),
7226            ),
7227            TypeVariant::AssetCode4 => Box::new(
7228                ReadXdrIter::<_, AssetCode4>::new(&mut r.inner, r.limits.clone())
7229                    .map(|r| r.map(|t| Self::AssetCode4(Box::new(t)))),
7230            ),
7231            TypeVariant::AssetCode12 => Box::new(
7232                ReadXdrIter::<_, AssetCode12>::new(&mut r.inner, r.limits.clone())
7233                    .map(|r| r.map(|t| Self::AssetCode12(Box::new(t)))),
7234            ),
7235            TypeVariant::AssetType => Box::new(
7236                ReadXdrIter::<_, AssetType>::new(&mut r.inner, r.limits.clone())
7237                    .map(|r| r.map(|t| Self::AssetType(Box::new(t)))),
7238            ),
7239            TypeVariant::AssetCode => Box::new(
7240                ReadXdrIter::<_, AssetCode>::new(&mut r.inner, r.limits.clone())
7241                    .map(|r| r.map(|t| Self::AssetCode(Box::new(t)))),
7242            ),
7243            TypeVariant::AlphaNum4 => Box::new(
7244                ReadXdrIter::<_, AlphaNum4>::new(&mut r.inner, r.limits.clone())
7245                    .map(|r| r.map(|t| Self::AlphaNum4(Box::new(t)))),
7246            ),
7247            TypeVariant::AlphaNum12 => Box::new(
7248                ReadXdrIter::<_, AlphaNum12>::new(&mut r.inner, r.limits.clone())
7249                    .map(|r| r.map(|t| Self::AlphaNum12(Box::new(t)))),
7250            ),
7251            TypeVariant::Asset => Box::new(
7252                ReadXdrIter::<_, Asset>::new(&mut r.inner, r.limits.clone())
7253                    .map(|r| r.map(|t| Self::Asset(Box::new(t)))),
7254            ),
7255            TypeVariant::Price => Box::new(
7256                ReadXdrIter::<_, Price>::new(&mut r.inner, r.limits.clone())
7257                    .map(|r| r.map(|t| Self::Price(Box::new(t)))),
7258            ),
7259            TypeVariant::Liabilities => Box::new(
7260                ReadXdrIter::<_, Liabilities>::new(&mut r.inner, r.limits.clone())
7261                    .map(|r| r.map(|t| Self::Liabilities(Box::new(t)))),
7262            ),
7263            TypeVariant::ThresholdIndexes => Box::new(
7264                ReadXdrIter::<_, ThresholdIndexes>::new(&mut r.inner, r.limits.clone())
7265                    .map(|r| r.map(|t| Self::ThresholdIndexes(Box::new(t)))),
7266            ),
7267            TypeVariant::LedgerEntryType => Box::new(
7268                ReadXdrIter::<_, LedgerEntryType>::new(&mut r.inner, r.limits.clone())
7269                    .map(|r| r.map(|t| Self::LedgerEntryType(Box::new(t)))),
7270            ),
7271            TypeVariant::Signer => Box::new(
7272                ReadXdrIter::<_, Signer>::new(&mut r.inner, r.limits.clone())
7273                    .map(|r| r.map(|t| Self::Signer(Box::new(t)))),
7274            ),
7275            TypeVariant::AccountFlags => Box::new(
7276                ReadXdrIter::<_, AccountFlags>::new(&mut r.inner, r.limits.clone())
7277                    .map(|r| r.map(|t| Self::AccountFlags(Box::new(t)))),
7278            ),
7279            TypeVariant::SponsorshipDescriptor => Box::new(
7280                ReadXdrIter::<_, SponsorshipDescriptor>::new(&mut r.inner, r.limits.clone())
7281                    .map(|r| r.map(|t| Self::SponsorshipDescriptor(Box::new(t)))),
7282            ),
7283            TypeVariant::AccountEntryExtensionV3 => Box::new(
7284                ReadXdrIter::<_, AccountEntryExtensionV3>::new(&mut r.inner, r.limits.clone())
7285                    .map(|r| r.map(|t| Self::AccountEntryExtensionV3(Box::new(t)))),
7286            ),
7287            TypeVariant::AccountEntryExtensionV2 => Box::new(
7288                ReadXdrIter::<_, AccountEntryExtensionV2>::new(&mut r.inner, r.limits.clone())
7289                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2(Box::new(t)))),
7290            ),
7291            TypeVariant::AccountEntryExtensionV2Ext => Box::new(
7292                ReadXdrIter::<_, AccountEntryExtensionV2Ext>::new(&mut r.inner, r.limits.clone())
7293                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t)))),
7294            ),
7295            TypeVariant::AccountEntryExtensionV1 => Box::new(
7296                ReadXdrIter::<_, AccountEntryExtensionV1>::new(&mut r.inner, r.limits.clone())
7297                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1(Box::new(t)))),
7298            ),
7299            TypeVariant::AccountEntryExtensionV1Ext => Box::new(
7300                ReadXdrIter::<_, AccountEntryExtensionV1Ext>::new(&mut r.inner, r.limits.clone())
7301                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t)))),
7302            ),
7303            TypeVariant::AccountEntry => Box::new(
7304                ReadXdrIter::<_, AccountEntry>::new(&mut r.inner, r.limits.clone())
7305                    .map(|r| r.map(|t| Self::AccountEntry(Box::new(t)))),
7306            ),
7307            TypeVariant::AccountEntryExt => Box::new(
7308                ReadXdrIter::<_, AccountEntryExt>::new(&mut r.inner, r.limits.clone())
7309                    .map(|r| r.map(|t| Self::AccountEntryExt(Box::new(t)))),
7310            ),
7311            TypeVariant::TrustLineFlags => Box::new(
7312                ReadXdrIter::<_, TrustLineFlags>::new(&mut r.inner, r.limits.clone())
7313                    .map(|r| r.map(|t| Self::TrustLineFlags(Box::new(t)))),
7314            ),
7315            TypeVariant::LiquidityPoolType => Box::new(
7316                ReadXdrIter::<_, LiquidityPoolType>::new(&mut r.inner, r.limits.clone())
7317                    .map(|r| r.map(|t| Self::LiquidityPoolType(Box::new(t)))),
7318            ),
7319            TypeVariant::TrustLineAsset => Box::new(
7320                ReadXdrIter::<_, TrustLineAsset>::new(&mut r.inner, r.limits.clone())
7321                    .map(|r| r.map(|t| Self::TrustLineAsset(Box::new(t)))),
7322            ),
7323            TypeVariant::TrustLineEntryExtensionV2 => Box::new(
7324                ReadXdrIter::<_, TrustLineEntryExtensionV2>::new(&mut r.inner, r.limits.clone())
7325                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2(Box::new(t)))),
7326            ),
7327            TypeVariant::TrustLineEntryExtensionV2Ext => Box::new(
7328                ReadXdrIter::<_, TrustLineEntryExtensionV2Ext>::new(&mut r.inner, r.limits.clone())
7329                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t)))),
7330            ),
7331            TypeVariant::TrustLineEntry => Box::new(
7332                ReadXdrIter::<_, TrustLineEntry>::new(&mut r.inner, r.limits.clone())
7333                    .map(|r| r.map(|t| Self::TrustLineEntry(Box::new(t)))),
7334            ),
7335            TypeVariant::TrustLineEntryExt => Box::new(
7336                ReadXdrIter::<_, TrustLineEntryExt>::new(&mut r.inner, r.limits.clone())
7337                    .map(|r| r.map(|t| Self::TrustLineEntryExt(Box::new(t)))),
7338            ),
7339            TypeVariant::TrustLineEntryV1 => Box::new(
7340                ReadXdrIter::<_, TrustLineEntryV1>::new(&mut r.inner, r.limits.clone())
7341                    .map(|r| r.map(|t| Self::TrustLineEntryV1(Box::new(t)))),
7342            ),
7343            TypeVariant::TrustLineEntryV1Ext => Box::new(
7344                ReadXdrIter::<_, TrustLineEntryV1Ext>::new(&mut r.inner, r.limits.clone())
7345                    .map(|r| r.map(|t| Self::TrustLineEntryV1Ext(Box::new(t)))),
7346            ),
7347            TypeVariant::OfferEntryFlags => Box::new(
7348                ReadXdrIter::<_, OfferEntryFlags>::new(&mut r.inner, r.limits.clone())
7349                    .map(|r| r.map(|t| Self::OfferEntryFlags(Box::new(t)))),
7350            ),
7351            TypeVariant::OfferEntry => Box::new(
7352                ReadXdrIter::<_, OfferEntry>::new(&mut r.inner, r.limits.clone())
7353                    .map(|r| r.map(|t| Self::OfferEntry(Box::new(t)))),
7354            ),
7355            TypeVariant::OfferEntryExt => Box::new(
7356                ReadXdrIter::<_, OfferEntryExt>::new(&mut r.inner, r.limits.clone())
7357                    .map(|r| r.map(|t| Self::OfferEntryExt(Box::new(t)))),
7358            ),
7359            TypeVariant::DataEntry => Box::new(
7360                ReadXdrIter::<_, DataEntry>::new(&mut r.inner, r.limits.clone())
7361                    .map(|r| r.map(|t| Self::DataEntry(Box::new(t)))),
7362            ),
7363            TypeVariant::DataEntryExt => Box::new(
7364                ReadXdrIter::<_, DataEntryExt>::new(&mut r.inner, r.limits.clone())
7365                    .map(|r| r.map(|t| Self::DataEntryExt(Box::new(t)))),
7366            ),
7367            TypeVariant::ClaimPredicateType => Box::new(
7368                ReadXdrIter::<_, ClaimPredicateType>::new(&mut r.inner, r.limits.clone())
7369                    .map(|r| r.map(|t| Self::ClaimPredicateType(Box::new(t)))),
7370            ),
7371            TypeVariant::ClaimPredicate => Box::new(
7372                ReadXdrIter::<_, ClaimPredicate>::new(&mut r.inner, r.limits.clone())
7373                    .map(|r| r.map(|t| Self::ClaimPredicate(Box::new(t)))),
7374            ),
7375            TypeVariant::ClaimantType => Box::new(
7376                ReadXdrIter::<_, ClaimantType>::new(&mut r.inner, r.limits.clone())
7377                    .map(|r| r.map(|t| Self::ClaimantType(Box::new(t)))),
7378            ),
7379            TypeVariant::Claimant => Box::new(
7380                ReadXdrIter::<_, Claimant>::new(&mut r.inner, r.limits.clone())
7381                    .map(|r| r.map(|t| Self::Claimant(Box::new(t)))),
7382            ),
7383            TypeVariant::ClaimantV0 => Box::new(
7384                ReadXdrIter::<_, ClaimantV0>::new(&mut r.inner, r.limits.clone())
7385                    .map(|r| r.map(|t| Self::ClaimantV0(Box::new(t)))),
7386            ),
7387            TypeVariant::ClaimableBalanceFlags => Box::new(
7388                ReadXdrIter::<_, ClaimableBalanceFlags>::new(&mut r.inner, r.limits.clone())
7389                    .map(|r| r.map(|t| Self::ClaimableBalanceFlags(Box::new(t)))),
7390            ),
7391            TypeVariant::ClaimableBalanceEntryExtensionV1 => Box::new(
7392                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1>::new(
7393                    &mut r.inner,
7394                    r.limits.clone(),
7395                )
7396                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t)))),
7397            ),
7398            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Box::new(
7399                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1Ext>::new(
7400                    &mut r.inner,
7401                    r.limits.clone(),
7402                )
7403                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t)))),
7404            ),
7405            TypeVariant::ClaimableBalanceEntry => Box::new(
7406                ReadXdrIter::<_, ClaimableBalanceEntry>::new(&mut r.inner, r.limits.clone())
7407                    .map(|r| r.map(|t| Self::ClaimableBalanceEntry(Box::new(t)))),
7408            ),
7409            TypeVariant::ClaimableBalanceEntryExt => Box::new(
7410                ReadXdrIter::<_, ClaimableBalanceEntryExt>::new(&mut r.inner, r.limits.clone())
7411                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExt(Box::new(t)))),
7412            ),
7413            TypeVariant::LiquidityPoolConstantProductParameters => Box::new(
7414                ReadXdrIter::<_, LiquidityPoolConstantProductParameters>::new(
7415                    &mut r.inner,
7416                    r.limits.clone(),
7417                )
7418                .map(|r| r.map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t)))),
7419            ),
7420            TypeVariant::LiquidityPoolEntry => Box::new(
7421                ReadXdrIter::<_, LiquidityPoolEntry>::new(&mut r.inner, r.limits.clone())
7422                    .map(|r| r.map(|t| Self::LiquidityPoolEntry(Box::new(t)))),
7423            ),
7424            TypeVariant::LiquidityPoolEntryBody => Box::new(
7425                ReadXdrIter::<_, LiquidityPoolEntryBody>::new(&mut r.inner, r.limits.clone())
7426                    .map(|r| r.map(|t| Self::LiquidityPoolEntryBody(Box::new(t)))),
7427            ),
7428            TypeVariant::LiquidityPoolEntryConstantProduct => Box::new(
7429                ReadXdrIter::<_, LiquidityPoolEntryConstantProduct>::new(
7430                    &mut r.inner,
7431                    r.limits.clone(),
7432                )
7433                .map(|r| r.map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t)))),
7434            ),
7435            TypeVariant::ContractDataDurability => Box::new(
7436                ReadXdrIter::<_, ContractDataDurability>::new(&mut r.inner, r.limits.clone())
7437                    .map(|r| r.map(|t| Self::ContractDataDurability(Box::new(t)))),
7438            ),
7439            TypeVariant::ContractDataEntry => Box::new(
7440                ReadXdrIter::<_, ContractDataEntry>::new(&mut r.inner, r.limits.clone())
7441                    .map(|r| r.map(|t| Self::ContractDataEntry(Box::new(t)))),
7442            ),
7443            TypeVariant::ContractCodeCostInputs => Box::new(
7444                ReadXdrIter::<_, ContractCodeCostInputs>::new(&mut r.inner, r.limits.clone())
7445                    .map(|r| r.map(|t| Self::ContractCodeCostInputs(Box::new(t)))),
7446            ),
7447            TypeVariant::ContractCodeEntry => Box::new(
7448                ReadXdrIter::<_, ContractCodeEntry>::new(&mut r.inner, r.limits.clone())
7449                    .map(|r| r.map(|t| Self::ContractCodeEntry(Box::new(t)))),
7450            ),
7451            TypeVariant::ContractCodeEntryExt => Box::new(
7452                ReadXdrIter::<_, ContractCodeEntryExt>::new(&mut r.inner, r.limits.clone())
7453                    .map(|r| r.map(|t| Self::ContractCodeEntryExt(Box::new(t)))),
7454            ),
7455            TypeVariant::ContractCodeEntryV1 => Box::new(
7456                ReadXdrIter::<_, ContractCodeEntryV1>::new(&mut r.inner, r.limits.clone())
7457                    .map(|r| r.map(|t| Self::ContractCodeEntryV1(Box::new(t)))),
7458            ),
7459            TypeVariant::TtlEntry => Box::new(
7460                ReadXdrIter::<_, TtlEntry>::new(&mut r.inner, r.limits.clone())
7461                    .map(|r| r.map(|t| Self::TtlEntry(Box::new(t)))),
7462            ),
7463            TypeVariant::LedgerEntryExtensionV1 => Box::new(
7464                ReadXdrIter::<_, LedgerEntryExtensionV1>::new(&mut r.inner, r.limits.clone())
7465                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1(Box::new(t)))),
7466            ),
7467            TypeVariant::LedgerEntryExtensionV1Ext => Box::new(
7468                ReadXdrIter::<_, LedgerEntryExtensionV1Ext>::new(&mut r.inner, r.limits.clone())
7469                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t)))),
7470            ),
7471            TypeVariant::LedgerEntry => Box::new(
7472                ReadXdrIter::<_, LedgerEntry>::new(&mut r.inner, r.limits.clone())
7473                    .map(|r| r.map(|t| Self::LedgerEntry(Box::new(t)))),
7474            ),
7475            TypeVariant::LedgerEntryData => Box::new(
7476                ReadXdrIter::<_, LedgerEntryData>::new(&mut r.inner, r.limits.clone())
7477                    .map(|r| r.map(|t| Self::LedgerEntryData(Box::new(t)))),
7478            ),
7479            TypeVariant::LedgerEntryExt => Box::new(
7480                ReadXdrIter::<_, LedgerEntryExt>::new(&mut r.inner, r.limits.clone())
7481                    .map(|r| r.map(|t| Self::LedgerEntryExt(Box::new(t)))),
7482            ),
7483            TypeVariant::LedgerKey => Box::new(
7484                ReadXdrIter::<_, LedgerKey>::new(&mut r.inner, r.limits.clone())
7485                    .map(|r| r.map(|t| Self::LedgerKey(Box::new(t)))),
7486            ),
7487            TypeVariant::LedgerKeyAccount => Box::new(
7488                ReadXdrIter::<_, LedgerKeyAccount>::new(&mut r.inner, r.limits.clone())
7489                    .map(|r| r.map(|t| Self::LedgerKeyAccount(Box::new(t)))),
7490            ),
7491            TypeVariant::LedgerKeyTrustLine => Box::new(
7492                ReadXdrIter::<_, LedgerKeyTrustLine>::new(&mut r.inner, r.limits.clone())
7493                    .map(|r| r.map(|t| Self::LedgerKeyTrustLine(Box::new(t)))),
7494            ),
7495            TypeVariant::LedgerKeyOffer => Box::new(
7496                ReadXdrIter::<_, LedgerKeyOffer>::new(&mut r.inner, r.limits.clone())
7497                    .map(|r| r.map(|t| Self::LedgerKeyOffer(Box::new(t)))),
7498            ),
7499            TypeVariant::LedgerKeyData => Box::new(
7500                ReadXdrIter::<_, LedgerKeyData>::new(&mut r.inner, r.limits.clone())
7501                    .map(|r| r.map(|t| Self::LedgerKeyData(Box::new(t)))),
7502            ),
7503            TypeVariant::LedgerKeyClaimableBalance => Box::new(
7504                ReadXdrIter::<_, LedgerKeyClaimableBalance>::new(&mut r.inner, r.limits.clone())
7505                    .map(|r| r.map(|t| Self::LedgerKeyClaimableBalance(Box::new(t)))),
7506            ),
7507            TypeVariant::LedgerKeyLiquidityPool => Box::new(
7508                ReadXdrIter::<_, LedgerKeyLiquidityPool>::new(&mut r.inner, r.limits.clone())
7509                    .map(|r| r.map(|t| Self::LedgerKeyLiquidityPool(Box::new(t)))),
7510            ),
7511            TypeVariant::LedgerKeyContractData => Box::new(
7512                ReadXdrIter::<_, LedgerKeyContractData>::new(&mut r.inner, r.limits.clone())
7513                    .map(|r| r.map(|t| Self::LedgerKeyContractData(Box::new(t)))),
7514            ),
7515            TypeVariant::LedgerKeyContractCode => Box::new(
7516                ReadXdrIter::<_, LedgerKeyContractCode>::new(&mut r.inner, r.limits.clone())
7517                    .map(|r| r.map(|t| Self::LedgerKeyContractCode(Box::new(t)))),
7518            ),
7519            TypeVariant::LedgerKeyConfigSetting => Box::new(
7520                ReadXdrIter::<_, LedgerKeyConfigSetting>::new(&mut r.inner, r.limits.clone())
7521                    .map(|r| r.map(|t| Self::LedgerKeyConfigSetting(Box::new(t)))),
7522            ),
7523            TypeVariant::LedgerKeyTtl => Box::new(
7524                ReadXdrIter::<_, LedgerKeyTtl>::new(&mut r.inner, r.limits.clone())
7525                    .map(|r| r.map(|t| Self::LedgerKeyTtl(Box::new(t)))),
7526            ),
7527            TypeVariant::EnvelopeType => Box::new(
7528                ReadXdrIter::<_, EnvelopeType>::new(&mut r.inner, r.limits.clone())
7529                    .map(|r| r.map(|t| Self::EnvelopeType(Box::new(t)))),
7530            ),
7531            TypeVariant::BucketListType => Box::new(
7532                ReadXdrIter::<_, BucketListType>::new(&mut r.inner, r.limits.clone())
7533                    .map(|r| r.map(|t| Self::BucketListType(Box::new(t)))),
7534            ),
7535            TypeVariant::BucketEntryType => Box::new(
7536                ReadXdrIter::<_, BucketEntryType>::new(&mut r.inner, r.limits.clone())
7537                    .map(|r| r.map(|t| Self::BucketEntryType(Box::new(t)))),
7538            ),
7539            TypeVariant::HotArchiveBucketEntryType => Box::new(
7540                ReadXdrIter::<_, HotArchiveBucketEntryType>::new(&mut r.inner, r.limits.clone())
7541                    .map(|r| r.map(|t| Self::HotArchiveBucketEntryType(Box::new(t)))),
7542            ),
7543            TypeVariant::BucketMetadata => Box::new(
7544                ReadXdrIter::<_, BucketMetadata>::new(&mut r.inner, r.limits.clone())
7545                    .map(|r| r.map(|t| Self::BucketMetadata(Box::new(t)))),
7546            ),
7547            TypeVariant::BucketMetadataExt => Box::new(
7548                ReadXdrIter::<_, BucketMetadataExt>::new(&mut r.inner, r.limits.clone())
7549                    .map(|r| r.map(|t| Self::BucketMetadataExt(Box::new(t)))),
7550            ),
7551            TypeVariant::BucketEntry => Box::new(
7552                ReadXdrIter::<_, BucketEntry>::new(&mut r.inner, r.limits.clone())
7553                    .map(|r| r.map(|t| Self::BucketEntry(Box::new(t)))),
7554            ),
7555            TypeVariant::HotArchiveBucketEntry => Box::new(
7556                ReadXdrIter::<_, HotArchiveBucketEntry>::new(&mut r.inner, r.limits.clone())
7557                    .map(|r| r.map(|t| Self::HotArchiveBucketEntry(Box::new(t)))),
7558            ),
7559            TypeVariant::UpgradeType => Box::new(
7560                ReadXdrIter::<_, UpgradeType>::new(&mut r.inner, r.limits.clone())
7561                    .map(|r| r.map(|t| Self::UpgradeType(Box::new(t)))),
7562            ),
7563            TypeVariant::StellarValueType => Box::new(
7564                ReadXdrIter::<_, StellarValueType>::new(&mut r.inner, r.limits.clone())
7565                    .map(|r| r.map(|t| Self::StellarValueType(Box::new(t)))),
7566            ),
7567            TypeVariant::LedgerCloseValueSignature => Box::new(
7568                ReadXdrIter::<_, LedgerCloseValueSignature>::new(&mut r.inner, r.limits.clone())
7569                    .map(|r| r.map(|t| Self::LedgerCloseValueSignature(Box::new(t)))),
7570            ),
7571            TypeVariant::StellarValue => Box::new(
7572                ReadXdrIter::<_, StellarValue>::new(&mut r.inner, r.limits.clone())
7573                    .map(|r| r.map(|t| Self::StellarValue(Box::new(t)))),
7574            ),
7575            TypeVariant::StellarValueExt => Box::new(
7576                ReadXdrIter::<_, StellarValueExt>::new(&mut r.inner, r.limits.clone())
7577                    .map(|r| r.map(|t| Self::StellarValueExt(Box::new(t)))),
7578            ),
7579            #[cfg(feature = "cap_0083")]
7580            TypeVariant::StellarValueProposedValue => Box::new(
7581                ReadXdrIter::<_, StellarValueProposedValue>::new(&mut r.inner, r.limits.clone())
7582                    .map(|r| r.map(|t| Self::StellarValueProposedValue(Box::new(t)))),
7583            ),
7584            TypeVariant::LedgerHeaderFlags => Box::new(
7585                ReadXdrIter::<_, LedgerHeaderFlags>::new(&mut r.inner, r.limits.clone())
7586                    .map(|r| r.map(|t| Self::LedgerHeaderFlags(Box::new(t)))),
7587            ),
7588            TypeVariant::LedgerHeaderExtensionV1 => Box::new(
7589                ReadXdrIter::<_, LedgerHeaderExtensionV1>::new(&mut r.inner, r.limits.clone())
7590                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1(Box::new(t)))),
7591            ),
7592            TypeVariant::LedgerHeaderExtensionV1Ext => Box::new(
7593                ReadXdrIter::<_, LedgerHeaderExtensionV1Ext>::new(&mut r.inner, r.limits.clone())
7594                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t)))),
7595            ),
7596            TypeVariant::LedgerHeader => Box::new(
7597                ReadXdrIter::<_, LedgerHeader>::new(&mut r.inner, r.limits.clone())
7598                    .map(|r| r.map(|t| Self::LedgerHeader(Box::new(t)))),
7599            ),
7600            TypeVariant::LedgerHeaderExt => Box::new(
7601                ReadXdrIter::<_, LedgerHeaderExt>::new(&mut r.inner, r.limits.clone())
7602                    .map(|r| r.map(|t| Self::LedgerHeaderExt(Box::new(t)))),
7603            ),
7604            TypeVariant::LedgerUpgradeType => Box::new(
7605                ReadXdrIter::<_, LedgerUpgradeType>::new(&mut r.inner, r.limits.clone())
7606                    .map(|r| r.map(|t| Self::LedgerUpgradeType(Box::new(t)))),
7607            ),
7608            TypeVariant::ConfigUpgradeSetKey => Box::new(
7609                ReadXdrIter::<_, ConfigUpgradeSetKey>::new(&mut r.inner, r.limits.clone())
7610                    .map(|r| r.map(|t| Self::ConfigUpgradeSetKey(Box::new(t)))),
7611            ),
7612            TypeVariant::LedgerUpgrade => Box::new(
7613                ReadXdrIter::<_, LedgerUpgrade>::new(&mut r.inner, r.limits.clone())
7614                    .map(|r| r.map(|t| Self::LedgerUpgrade(Box::new(t)))),
7615            ),
7616            TypeVariant::ConfigUpgradeSet => Box::new(
7617                ReadXdrIter::<_, ConfigUpgradeSet>::new(&mut r.inner, r.limits.clone())
7618                    .map(|r| r.map(|t| Self::ConfigUpgradeSet(Box::new(t)))),
7619            ),
7620            TypeVariant::TxSetComponentType => Box::new(
7621                ReadXdrIter::<_, TxSetComponentType>::new(&mut r.inner, r.limits.clone())
7622                    .map(|r| r.map(|t| Self::TxSetComponentType(Box::new(t)))),
7623            ),
7624            TypeVariant::DependentTxCluster => Box::new(
7625                ReadXdrIter::<_, DependentTxCluster>::new(&mut r.inner, r.limits.clone())
7626                    .map(|r| r.map(|t| Self::DependentTxCluster(Box::new(t)))),
7627            ),
7628            TypeVariant::ParallelTxExecutionStage => Box::new(
7629                ReadXdrIter::<_, ParallelTxExecutionStage>::new(&mut r.inner, r.limits.clone())
7630                    .map(|r| r.map(|t| Self::ParallelTxExecutionStage(Box::new(t)))),
7631            ),
7632            TypeVariant::ParallelTxsComponent => Box::new(
7633                ReadXdrIter::<_, ParallelTxsComponent>::new(&mut r.inner, r.limits.clone())
7634                    .map(|r| r.map(|t| Self::ParallelTxsComponent(Box::new(t)))),
7635            ),
7636            TypeVariant::TxSetComponent => Box::new(
7637                ReadXdrIter::<_, TxSetComponent>::new(&mut r.inner, r.limits.clone())
7638                    .map(|r| r.map(|t| Self::TxSetComponent(Box::new(t)))),
7639            ),
7640            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Box::new(
7641                ReadXdrIter::<_, TxSetComponentTxsMaybeDiscountedFee>::new(
7642                    &mut r.inner,
7643                    r.limits.clone(),
7644                )
7645                .map(|r| r.map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t)))),
7646            ),
7647            TypeVariant::TransactionPhase => Box::new(
7648                ReadXdrIter::<_, TransactionPhase>::new(&mut r.inner, r.limits.clone())
7649                    .map(|r| r.map(|t| Self::TransactionPhase(Box::new(t)))),
7650            ),
7651            TypeVariant::TransactionSet => Box::new(
7652                ReadXdrIter::<_, TransactionSet>::new(&mut r.inner, r.limits.clone())
7653                    .map(|r| r.map(|t| Self::TransactionSet(Box::new(t)))),
7654            ),
7655            TypeVariant::TransactionSetV1 => Box::new(
7656                ReadXdrIter::<_, TransactionSetV1>::new(&mut r.inner, r.limits.clone())
7657                    .map(|r| r.map(|t| Self::TransactionSetV1(Box::new(t)))),
7658            ),
7659            TypeVariant::GeneralizedTransactionSet => Box::new(
7660                ReadXdrIter::<_, GeneralizedTransactionSet>::new(&mut r.inner, r.limits.clone())
7661                    .map(|r| r.map(|t| Self::GeneralizedTransactionSet(Box::new(t)))),
7662            ),
7663            TypeVariant::TransactionResultPair => Box::new(
7664                ReadXdrIter::<_, TransactionResultPair>::new(&mut r.inner, r.limits.clone())
7665                    .map(|r| r.map(|t| Self::TransactionResultPair(Box::new(t)))),
7666            ),
7667            TypeVariant::TransactionResultSet => Box::new(
7668                ReadXdrIter::<_, TransactionResultSet>::new(&mut r.inner, r.limits.clone())
7669                    .map(|r| r.map(|t| Self::TransactionResultSet(Box::new(t)))),
7670            ),
7671            TypeVariant::TransactionHistoryEntry => Box::new(
7672                ReadXdrIter::<_, TransactionHistoryEntry>::new(&mut r.inner, r.limits.clone())
7673                    .map(|r| r.map(|t| Self::TransactionHistoryEntry(Box::new(t)))),
7674            ),
7675            TypeVariant::TransactionHistoryEntryExt => Box::new(
7676                ReadXdrIter::<_, TransactionHistoryEntryExt>::new(&mut r.inner, r.limits.clone())
7677                    .map(|r| r.map(|t| Self::TransactionHistoryEntryExt(Box::new(t)))),
7678            ),
7679            TypeVariant::TransactionHistoryResultEntry => Box::new(
7680                ReadXdrIter::<_, TransactionHistoryResultEntry>::new(
7681                    &mut r.inner,
7682                    r.limits.clone(),
7683                )
7684                .map(|r| r.map(|t| Self::TransactionHistoryResultEntry(Box::new(t)))),
7685            ),
7686            TypeVariant::TransactionHistoryResultEntryExt => Box::new(
7687                ReadXdrIter::<_, TransactionHistoryResultEntryExt>::new(
7688                    &mut r.inner,
7689                    r.limits.clone(),
7690                )
7691                .map(|r| r.map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t)))),
7692            ),
7693            TypeVariant::LedgerHeaderHistoryEntry => Box::new(
7694                ReadXdrIter::<_, LedgerHeaderHistoryEntry>::new(&mut r.inner, r.limits.clone())
7695                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t)))),
7696            ),
7697            TypeVariant::LedgerHeaderHistoryEntryExt => Box::new(
7698                ReadXdrIter::<_, LedgerHeaderHistoryEntryExt>::new(&mut r.inner, r.limits.clone())
7699                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t)))),
7700            ),
7701            TypeVariant::LedgerScpMessages => Box::new(
7702                ReadXdrIter::<_, LedgerScpMessages>::new(&mut r.inner, r.limits.clone())
7703                    .map(|r| r.map(|t| Self::LedgerScpMessages(Box::new(t)))),
7704            ),
7705            TypeVariant::ScpHistoryEntryV0 => Box::new(
7706                ReadXdrIter::<_, ScpHistoryEntryV0>::new(&mut r.inner, r.limits.clone())
7707                    .map(|r| r.map(|t| Self::ScpHistoryEntryV0(Box::new(t)))),
7708            ),
7709            TypeVariant::ScpHistoryEntry => Box::new(
7710                ReadXdrIter::<_, ScpHistoryEntry>::new(&mut r.inner, r.limits.clone())
7711                    .map(|r| r.map(|t| Self::ScpHistoryEntry(Box::new(t)))),
7712            ),
7713            TypeVariant::LedgerEntryChangeType => Box::new(
7714                ReadXdrIter::<_, LedgerEntryChangeType>::new(&mut r.inner, r.limits.clone())
7715                    .map(|r| r.map(|t| Self::LedgerEntryChangeType(Box::new(t)))),
7716            ),
7717            TypeVariant::LedgerEntryChange => Box::new(
7718                ReadXdrIter::<_, LedgerEntryChange>::new(&mut r.inner, r.limits.clone())
7719                    .map(|r| r.map(|t| Self::LedgerEntryChange(Box::new(t)))),
7720            ),
7721            TypeVariant::LedgerEntryChanges => Box::new(
7722                ReadXdrIter::<_, LedgerEntryChanges>::new(&mut r.inner, r.limits.clone())
7723                    .map(|r| r.map(|t| Self::LedgerEntryChanges(Box::new(t)))),
7724            ),
7725            TypeVariant::OperationMeta => Box::new(
7726                ReadXdrIter::<_, OperationMeta>::new(&mut r.inner, r.limits.clone())
7727                    .map(|r| r.map(|t| Self::OperationMeta(Box::new(t)))),
7728            ),
7729            TypeVariant::TransactionMetaV1 => Box::new(
7730                ReadXdrIter::<_, TransactionMetaV1>::new(&mut r.inner, r.limits.clone())
7731                    .map(|r| r.map(|t| Self::TransactionMetaV1(Box::new(t)))),
7732            ),
7733            TypeVariant::TransactionMetaV2 => Box::new(
7734                ReadXdrIter::<_, TransactionMetaV2>::new(&mut r.inner, r.limits.clone())
7735                    .map(|r| r.map(|t| Self::TransactionMetaV2(Box::new(t)))),
7736            ),
7737            TypeVariant::ContractEventType => Box::new(
7738                ReadXdrIter::<_, ContractEventType>::new(&mut r.inner, r.limits.clone())
7739                    .map(|r| r.map(|t| Self::ContractEventType(Box::new(t)))),
7740            ),
7741            TypeVariant::ContractEvent => Box::new(
7742                ReadXdrIter::<_, ContractEvent>::new(&mut r.inner, r.limits.clone())
7743                    .map(|r| r.map(|t| Self::ContractEvent(Box::new(t)))),
7744            ),
7745            TypeVariant::ContractEventBody => Box::new(
7746                ReadXdrIter::<_, ContractEventBody>::new(&mut r.inner, r.limits.clone())
7747                    .map(|r| r.map(|t| Self::ContractEventBody(Box::new(t)))),
7748            ),
7749            TypeVariant::ContractEventV0 => Box::new(
7750                ReadXdrIter::<_, ContractEventV0>::new(&mut r.inner, r.limits.clone())
7751                    .map(|r| r.map(|t| Self::ContractEventV0(Box::new(t)))),
7752            ),
7753            TypeVariant::DiagnosticEvent => Box::new(
7754                ReadXdrIter::<_, DiagnosticEvent>::new(&mut r.inner, r.limits.clone())
7755                    .map(|r| r.map(|t| Self::DiagnosticEvent(Box::new(t)))),
7756            ),
7757            TypeVariant::SorobanTransactionMetaExtV1 => Box::new(
7758                ReadXdrIter::<_, SorobanTransactionMetaExtV1>::new(&mut r.inner, r.limits.clone())
7759                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t)))),
7760            ),
7761            TypeVariant::SorobanTransactionMetaExt => Box::new(
7762                ReadXdrIter::<_, SorobanTransactionMetaExt>::new(&mut r.inner, r.limits.clone())
7763                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExt(Box::new(t)))),
7764            ),
7765            TypeVariant::SorobanTransactionMeta => Box::new(
7766                ReadXdrIter::<_, SorobanTransactionMeta>::new(&mut r.inner, r.limits.clone())
7767                    .map(|r| r.map(|t| Self::SorobanTransactionMeta(Box::new(t)))),
7768            ),
7769            TypeVariant::TransactionMetaV3 => Box::new(
7770                ReadXdrIter::<_, TransactionMetaV3>::new(&mut r.inner, r.limits.clone())
7771                    .map(|r| r.map(|t| Self::TransactionMetaV3(Box::new(t)))),
7772            ),
7773            TypeVariant::OperationMetaV2 => Box::new(
7774                ReadXdrIter::<_, OperationMetaV2>::new(&mut r.inner, r.limits.clone())
7775                    .map(|r| r.map(|t| Self::OperationMetaV2(Box::new(t)))),
7776            ),
7777            TypeVariant::SorobanTransactionMetaV2 => Box::new(
7778                ReadXdrIter::<_, SorobanTransactionMetaV2>::new(&mut r.inner, r.limits.clone())
7779                    .map(|r| r.map(|t| Self::SorobanTransactionMetaV2(Box::new(t)))),
7780            ),
7781            TypeVariant::TransactionEventStage => Box::new(
7782                ReadXdrIter::<_, TransactionEventStage>::new(&mut r.inner, r.limits.clone())
7783                    .map(|r| r.map(|t| Self::TransactionEventStage(Box::new(t)))),
7784            ),
7785            TypeVariant::TransactionEvent => Box::new(
7786                ReadXdrIter::<_, TransactionEvent>::new(&mut r.inner, r.limits.clone())
7787                    .map(|r| r.map(|t| Self::TransactionEvent(Box::new(t)))),
7788            ),
7789            TypeVariant::TransactionMetaV4 => Box::new(
7790                ReadXdrIter::<_, TransactionMetaV4>::new(&mut r.inner, r.limits.clone())
7791                    .map(|r| r.map(|t| Self::TransactionMetaV4(Box::new(t)))),
7792            ),
7793            TypeVariant::InvokeHostFunctionSuccessPreImage => Box::new(
7794                ReadXdrIter::<_, InvokeHostFunctionSuccessPreImage>::new(
7795                    &mut r.inner,
7796                    r.limits.clone(),
7797                )
7798                .map(|r| r.map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t)))),
7799            ),
7800            TypeVariant::TransactionMeta => Box::new(
7801                ReadXdrIter::<_, TransactionMeta>::new(&mut r.inner, r.limits.clone())
7802                    .map(|r| r.map(|t| Self::TransactionMeta(Box::new(t)))),
7803            ),
7804            TypeVariant::TransactionResultMeta => Box::new(
7805                ReadXdrIter::<_, TransactionResultMeta>::new(&mut r.inner, r.limits.clone())
7806                    .map(|r| r.map(|t| Self::TransactionResultMeta(Box::new(t)))),
7807            ),
7808            TypeVariant::TransactionResultMetaV1 => Box::new(
7809                ReadXdrIter::<_, TransactionResultMetaV1>::new(&mut r.inner, r.limits.clone())
7810                    .map(|r| r.map(|t| Self::TransactionResultMetaV1(Box::new(t)))),
7811            ),
7812            TypeVariant::UpgradeEntryMeta => Box::new(
7813                ReadXdrIter::<_, UpgradeEntryMeta>::new(&mut r.inner, r.limits.clone())
7814                    .map(|r| r.map(|t| Self::UpgradeEntryMeta(Box::new(t)))),
7815            ),
7816            TypeVariant::LedgerCloseMetaV0 => Box::new(
7817                ReadXdrIter::<_, LedgerCloseMetaV0>::new(&mut r.inner, r.limits.clone())
7818                    .map(|r| r.map(|t| Self::LedgerCloseMetaV0(Box::new(t)))),
7819            ),
7820            TypeVariant::LedgerCloseMetaExtV1 => Box::new(
7821                ReadXdrIter::<_, LedgerCloseMetaExtV1>::new(&mut r.inner, r.limits.clone())
7822                    .map(|r| r.map(|t| Self::LedgerCloseMetaExtV1(Box::new(t)))),
7823            ),
7824            TypeVariant::LedgerCloseMetaExt => Box::new(
7825                ReadXdrIter::<_, LedgerCloseMetaExt>::new(&mut r.inner, r.limits.clone())
7826                    .map(|r| r.map(|t| Self::LedgerCloseMetaExt(Box::new(t)))),
7827            ),
7828            TypeVariant::LedgerCloseMetaV1 => Box::new(
7829                ReadXdrIter::<_, LedgerCloseMetaV1>::new(&mut r.inner, r.limits.clone())
7830                    .map(|r| r.map(|t| Self::LedgerCloseMetaV1(Box::new(t)))),
7831            ),
7832            TypeVariant::LedgerCloseMetaV2 => Box::new(
7833                ReadXdrIter::<_, LedgerCloseMetaV2>::new(&mut r.inner, r.limits.clone())
7834                    .map(|r| r.map(|t| Self::LedgerCloseMetaV2(Box::new(t)))),
7835            ),
7836            TypeVariant::LedgerCloseMeta => Box::new(
7837                ReadXdrIter::<_, LedgerCloseMeta>::new(&mut r.inner, r.limits.clone())
7838                    .map(|r| r.map(|t| Self::LedgerCloseMeta(Box::new(t)))),
7839            ),
7840            TypeVariant::ErrorCode => Box::new(
7841                ReadXdrIter::<_, ErrorCode>::new(&mut r.inner, r.limits.clone())
7842                    .map(|r| r.map(|t| Self::ErrorCode(Box::new(t)))),
7843            ),
7844            TypeVariant::SError => Box::new(
7845                ReadXdrIter::<_, SError>::new(&mut r.inner, r.limits.clone())
7846                    .map(|r| r.map(|t| Self::SError(Box::new(t)))),
7847            ),
7848            TypeVariant::SendMore => Box::new(
7849                ReadXdrIter::<_, SendMore>::new(&mut r.inner, r.limits.clone())
7850                    .map(|r| r.map(|t| Self::SendMore(Box::new(t)))),
7851            ),
7852            TypeVariant::SendMoreExtended => Box::new(
7853                ReadXdrIter::<_, SendMoreExtended>::new(&mut r.inner, r.limits.clone())
7854                    .map(|r| r.map(|t| Self::SendMoreExtended(Box::new(t)))),
7855            ),
7856            TypeVariant::AuthCert => Box::new(
7857                ReadXdrIter::<_, AuthCert>::new(&mut r.inner, r.limits.clone())
7858                    .map(|r| r.map(|t| Self::AuthCert(Box::new(t)))),
7859            ),
7860            TypeVariant::Hello => Box::new(
7861                ReadXdrIter::<_, Hello>::new(&mut r.inner, r.limits.clone())
7862                    .map(|r| r.map(|t| Self::Hello(Box::new(t)))),
7863            ),
7864            TypeVariant::Auth => Box::new(
7865                ReadXdrIter::<_, Auth>::new(&mut r.inner, r.limits.clone())
7866                    .map(|r| r.map(|t| Self::Auth(Box::new(t)))),
7867            ),
7868            TypeVariant::IpAddrType => Box::new(
7869                ReadXdrIter::<_, IpAddrType>::new(&mut r.inner, r.limits.clone())
7870                    .map(|r| r.map(|t| Self::IpAddrType(Box::new(t)))),
7871            ),
7872            TypeVariant::PeerAddress => Box::new(
7873                ReadXdrIter::<_, PeerAddress>::new(&mut r.inner, r.limits.clone())
7874                    .map(|r| r.map(|t| Self::PeerAddress(Box::new(t)))),
7875            ),
7876            TypeVariant::PeerAddressIp => Box::new(
7877                ReadXdrIter::<_, PeerAddressIp>::new(&mut r.inner, r.limits.clone())
7878                    .map(|r| r.map(|t| Self::PeerAddressIp(Box::new(t)))),
7879            ),
7880            TypeVariant::MessageType => Box::new(
7881                ReadXdrIter::<_, MessageType>::new(&mut r.inner, r.limits.clone())
7882                    .map(|r| r.map(|t| Self::MessageType(Box::new(t)))),
7883            ),
7884            TypeVariant::DontHave => Box::new(
7885                ReadXdrIter::<_, DontHave>::new(&mut r.inner, r.limits.clone())
7886                    .map(|r| r.map(|t| Self::DontHave(Box::new(t)))),
7887            ),
7888            TypeVariant::SurveyMessageCommandType => Box::new(
7889                ReadXdrIter::<_, SurveyMessageCommandType>::new(&mut r.inner, r.limits.clone())
7890                    .map(|r| r.map(|t| Self::SurveyMessageCommandType(Box::new(t)))),
7891            ),
7892            TypeVariant::SurveyMessageResponseType => Box::new(
7893                ReadXdrIter::<_, SurveyMessageResponseType>::new(&mut r.inner, r.limits.clone())
7894                    .map(|r| r.map(|t| Self::SurveyMessageResponseType(Box::new(t)))),
7895            ),
7896            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Box::new(
7897                ReadXdrIter::<_, TimeSlicedSurveyStartCollectingMessage>::new(
7898                    &mut r.inner,
7899                    r.limits.clone(),
7900                )
7901                .map(|r| r.map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t)))),
7902            ),
7903            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => Box::new(
7904                ReadXdrIter::<_, SignedTimeSlicedSurveyStartCollectingMessage>::new(
7905                    &mut r.inner,
7906                    r.limits.clone(),
7907                )
7908                .map(|r| {
7909                    r.map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t)))
7910                }),
7911            ),
7912            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Box::new(
7913                ReadXdrIter::<_, TimeSlicedSurveyStopCollectingMessage>::new(
7914                    &mut r.inner,
7915                    r.limits.clone(),
7916                )
7917                .map(|r| r.map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
7918            ),
7919            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => Box::new(
7920                ReadXdrIter::<_, SignedTimeSlicedSurveyStopCollectingMessage>::new(
7921                    &mut r.inner,
7922                    r.limits.clone(),
7923                )
7924                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
7925            ),
7926            TypeVariant::SurveyRequestMessage => Box::new(
7927                ReadXdrIter::<_, SurveyRequestMessage>::new(&mut r.inner, r.limits.clone())
7928                    .map(|r| r.map(|t| Self::SurveyRequestMessage(Box::new(t)))),
7929            ),
7930            TypeVariant::TimeSlicedSurveyRequestMessage => Box::new(
7931                ReadXdrIter::<_, TimeSlicedSurveyRequestMessage>::new(
7932                    &mut r.inner,
7933                    r.limits.clone(),
7934                )
7935                .map(|r| r.map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t)))),
7936            ),
7937            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Box::new(
7938                ReadXdrIter::<_, SignedTimeSlicedSurveyRequestMessage>::new(
7939                    &mut r.inner,
7940                    r.limits.clone(),
7941                )
7942                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t)))),
7943            ),
7944            TypeVariant::EncryptedBody => Box::new(
7945                ReadXdrIter::<_, EncryptedBody>::new(&mut r.inner, r.limits.clone())
7946                    .map(|r| r.map(|t| Self::EncryptedBody(Box::new(t)))),
7947            ),
7948            TypeVariant::SurveyResponseMessage => Box::new(
7949                ReadXdrIter::<_, SurveyResponseMessage>::new(&mut r.inner, r.limits.clone())
7950                    .map(|r| r.map(|t| Self::SurveyResponseMessage(Box::new(t)))),
7951            ),
7952            TypeVariant::TimeSlicedSurveyResponseMessage => Box::new(
7953                ReadXdrIter::<_, TimeSlicedSurveyResponseMessage>::new(
7954                    &mut r.inner,
7955                    r.limits.clone(),
7956                )
7957                .map(|r| r.map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t)))),
7958            ),
7959            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Box::new(
7960                ReadXdrIter::<_, SignedTimeSlicedSurveyResponseMessage>::new(
7961                    &mut r.inner,
7962                    r.limits.clone(),
7963                )
7964                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t)))),
7965            ),
7966            TypeVariant::PeerStats => Box::new(
7967                ReadXdrIter::<_, PeerStats>::new(&mut r.inner, r.limits.clone())
7968                    .map(|r| r.map(|t| Self::PeerStats(Box::new(t)))),
7969            ),
7970            TypeVariant::TimeSlicedNodeData => Box::new(
7971                ReadXdrIter::<_, TimeSlicedNodeData>::new(&mut r.inner, r.limits.clone())
7972                    .map(|r| r.map(|t| Self::TimeSlicedNodeData(Box::new(t)))),
7973            ),
7974            TypeVariant::TimeSlicedPeerData => Box::new(
7975                ReadXdrIter::<_, TimeSlicedPeerData>::new(&mut r.inner, r.limits.clone())
7976                    .map(|r| r.map(|t| Self::TimeSlicedPeerData(Box::new(t)))),
7977            ),
7978            TypeVariant::TimeSlicedPeerDataList => Box::new(
7979                ReadXdrIter::<_, TimeSlicedPeerDataList>::new(&mut r.inner, r.limits.clone())
7980                    .map(|r| r.map(|t| Self::TimeSlicedPeerDataList(Box::new(t)))),
7981            ),
7982            TypeVariant::TopologyResponseBodyV2 => Box::new(
7983                ReadXdrIter::<_, TopologyResponseBodyV2>::new(&mut r.inner, r.limits.clone())
7984                    .map(|r| r.map(|t| Self::TopologyResponseBodyV2(Box::new(t)))),
7985            ),
7986            TypeVariant::SurveyResponseBody => Box::new(
7987                ReadXdrIter::<_, SurveyResponseBody>::new(&mut r.inner, r.limits.clone())
7988                    .map(|r| r.map(|t| Self::SurveyResponseBody(Box::new(t)))),
7989            ),
7990            TypeVariant::TxAdvertVector => Box::new(
7991                ReadXdrIter::<_, TxAdvertVector>::new(&mut r.inner, r.limits.clone())
7992                    .map(|r| r.map(|t| Self::TxAdvertVector(Box::new(t)))),
7993            ),
7994            TypeVariant::FloodAdvert => Box::new(
7995                ReadXdrIter::<_, FloodAdvert>::new(&mut r.inner, r.limits.clone())
7996                    .map(|r| r.map(|t| Self::FloodAdvert(Box::new(t)))),
7997            ),
7998            TypeVariant::TxDemandVector => Box::new(
7999                ReadXdrIter::<_, TxDemandVector>::new(&mut r.inner, r.limits.clone())
8000                    .map(|r| r.map(|t| Self::TxDemandVector(Box::new(t)))),
8001            ),
8002            TypeVariant::FloodDemand => Box::new(
8003                ReadXdrIter::<_, FloodDemand>::new(&mut r.inner, r.limits.clone())
8004                    .map(|r| r.map(|t| Self::FloodDemand(Box::new(t)))),
8005            ),
8006            TypeVariant::StellarMessage => Box::new(
8007                ReadXdrIter::<_, StellarMessage>::new(&mut r.inner, r.limits.clone())
8008                    .map(|r| r.map(|t| Self::StellarMessage(Box::new(t)))),
8009            ),
8010            TypeVariant::AuthenticatedMessage => Box::new(
8011                ReadXdrIter::<_, AuthenticatedMessage>::new(&mut r.inner, r.limits.clone())
8012                    .map(|r| r.map(|t| Self::AuthenticatedMessage(Box::new(t)))),
8013            ),
8014            TypeVariant::AuthenticatedMessageV0 => Box::new(
8015                ReadXdrIter::<_, AuthenticatedMessageV0>::new(&mut r.inner, r.limits.clone())
8016                    .map(|r| r.map(|t| Self::AuthenticatedMessageV0(Box::new(t)))),
8017            ),
8018            TypeVariant::LiquidityPoolParameters => Box::new(
8019                ReadXdrIter::<_, LiquidityPoolParameters>::new(&mut r.inner, r.limits.clone())
8020                    .map(|r| r.map(|t| Self::LiquidityPoolParameters(Box::new(t)))),
8021            ),
8022            TypeVariant::MuxedAccount => Box::new(
8023                ReadXdrIter::<_, MuxedAccount>::new(&mut r.inner, r.limits.clone())
8024                    .map(|r| r.map(|t| Self::MuxedAccount(Box::new(t)))),
8025            ),
8026            TypeVariant::MuxedAccountMed25519 => Box::new(
8027                ReadXdrIter::<_, MuxedAccountMed25519>::new(&mut r.inner, r.limits.clone())
8028                    .map(|r| r.map(|t| Self::MuxedAccountMed25519(Box::new(t)))),
8029            ),
8030            TypeVariant::DecoratedSignature => Box::new(
8031                ReadXdrIter::<_, DecoratedSignature>::new(&mut r.inner, r.limits.clone())
8032                    .map(|r| r.map(|t| Self::DecoratedSignature(Box::new(t)))),
8033            ),
8034            TypeVariant::OperationType => Box::new(
8035                ReadXdrIter::<_, OperationType>::new(&mut r.inner, r.limits.clone())
8036                    .map(|r| r.map(|t| Self::OperationType(Box::new(t)))),
8037            ),
8038            TypeVariant::CreateAccountOp => Box::new(
8039                ReadXdrIter::<_, CreateAccountOp>::new(&mut r.inner, r.limits.clone())
8040                    .map(|r| r.map(|t| Self::CreateAccountOp(Box::new(t)))),
8041            ),
8042            TypeVariant::PaymentOp => Box::new(
8043                ReadXdrIter::<_, PaymentOp>::new(&mut r.inner, r.limits.clone())
8044                    .map(|r| r.map(|t| Self::PaymentOp(Box::new(t)))),
8045            ),
8046            TypeVariant::PathPaymentStrictReceiveOp => Box::new(
8047                ReadXdrIter::<_, PathPaymentStrictReceiveOp>::new(&mut r.inner, r.limits.clone())
8048                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t)))),
8049            ),
8050            TypeVariant::PathPaymentStrictSendOp => Box::new(
8051                ReadXdrIter::<_, PathPaymentStrictSendOp>::new(&mut r.inner, r.limits.clone())
8052                    .map(|r| r.map(|t| Self::PathPaymentStrictSendOp(Box::new(t)))),
8053            ),
8054            TypeVariant::ManageSellOfferOp => Box::new(
8055                ReadXdrIter::<_, ManageSellOfferOp>::new(&mut r.inner, r.limits.clone())
8056                    .map(|r| r.map(|t| Self::ManageSellOfferOp(Box::new(t)))),
8057            ),
8058            TypeVariant::ManageBuyOfferOp => Box::new(
8059                ReadXdrIter::<_, ManageBuyOfferOp>::new(&mut r.inner, r.limits.clone())
8060                    .map(|r| r.map(|t| Self::ManageBuyOfferOp(Box::new(t)))),
8061            ),
8062            TypeVariant::CreatePassiveSellOfferOp => Box::new(
8063                ReadXdrIter::<_, CreatePassiveSellOfferOp>::new(&mut r.inner, r.limits.clone())
8064                    .map(|r| r.map(|t| Self::CreatePassiveSellOfferOp(Box::new(t)))),
8065            ),
8066            TypeVariant::SetOptionsOp => Box::new(
8067                ReadXdrIter::<_, SetOptionsOp>::new(&mut r.inner, r.limits.clone())
8068                    .map(|r| r.map(|t| Self::SetOptionsOp(Box::new(t)))),
8069            ),
8070            TypeVariant::ChangeTrustAsset => Box::new(
8071                ReadXdrIter::<_, ChangeTrustAsset>::new(&mut r.inner, r.limits.clone())
8072                    .map(|r| r.map(|t| Self::ChangeTrustAsset(Box::new(t)))),
8073            ),
8074            TypeVariant::ChangeTrustOp => Box::new(
8075                ReadXdrIter::<_, ChangeTrustOp>::new(&mut r.inner, r.limits.clone())
8076                    .map(|r| r.map(|t| Self::ChangeTrustOp(Box::new(t)))),
8077            ),
8078            TypeVariant::AllowTrustOp => Box::new(
8079                ReadXdrIter::<_, AllowTrustOp>::new(&mut r.inner, r.limits.clone())
8080                    .map(|r| r.map(|t| Self::AllowTrustOp(Box::new(t)))),
8081            ),
8082            TypeVariant::ManageDataOp => Box::new(
8083                ReadXdrIter::<_, ManageDataOp>::new(&mut r.inner, r.limits.clone())
8084                    .map(|r| r.map(|t| Self::ManageDataOp(Box::new(t)))),
8085            ),
8086            TypeVariant::BumpSequenceOp => Box::new(
8087                ReadXdrIter::<_, BumpSequenceOp>::new(&mut r.inner, r.limits.clone())
8088                    .map(|r| r.map(|t| Self::BumpSequenceOp(Box::new(t)))),
8089            ),
8090            TypeVariant::CreateClaimableBalanceOp => Box::new(
8091                ReadXdrIter::<_, CreateClaimableBalanceOp>::new(&mut r.inner, r.limits.clone())
8092                    .map(|r| r.map(|t| Self::CreateClaimableBalanceOp(Box::new(t)))),
8093            ),
8094            TypeVariant::ClaimClaimableBalanceOp => Box::new(
8095                ReadXdrIter::<_, ClaimClaimableBalanceOp>::new(&mut r.inner, r.limits.clone())
8096                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceOp(Box::new(t)))),
8097            ),
8098            TypeVariant::BeginSponsoringFutureReservesOp => Box::new(
8099                ReadXdrIter::<_, BeginSponsoringFutureReservesOp>::new(
8100                    &mut r.inner,
8101                    r.limits.clone(),
8102                )
8103                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t)))),
8104            ),
8105            TypeVariant::RevokeSponsorshipType => Box::new(
8106                ReadXdrIter::<_, RevokeSponsorshipType>::new(&mut r.inner, r.limits.clone())
8107                    .map(|r| r.map(|t| Self::RevokeSponsorshipType(Box::new(t)))),
8108            ),
8109            TypeVariant::RevokeSponsorshipOp => Box::new(
8110                ReadXdrIter::<_, RevokeSponsorshipOp>::new(&mut r.inner, r.limits.clone())
8111                    .map(|r| r.map(|t| Self::RevokeSponsorshipOp(Box::new(t)))),
8112            ),
8113            TypeVariant::RevokeSponsorshipOpSigner => Box::new(
8114                ReadXdrIter::<_, RevokeSponsorshipOpSigner>::new(&mut r.inner, r.limits.clone())
8115                    .map(|r| r.map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t)))),
8116            ),
8117            TypeVariant::ClawbackOp => Box::new(
8118                ReadXdrIter::<_, ClawbackOp>::new(&mut r.inner, r.limits.clone())
8119                    .map(|r| r.map(|t| Self::ClawbackOp(Box::new(t)))),
8120            ),
8121            TypeVariant::ClawbackClaimableBalanceOp => Box::new(
8122                ReadXdrIter::<_, ClawbackClaimableBalanceOp>::new(&mut r.inner, r.limits.clone())
8123                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t)))),
8124            ),
8125            TypeVariant::SetTrustLineFlagsOp => Box::new(
8126                ReadXdrIter::<_, SetTrustLineFlagsOp>::new(&mut r.inner, r.limits.clone())
8127                    .map(|r| r.map(|t| Self::SetTrustLineFlagsOp(Box::new(t)))),
8128            ),
8129            TypeVariant::LiquidityPoolDepositOp => Box::new(
8130                ReadXdrIter::<_, LiquidityPoolDepositOp>::new(&mut r.inner, r.limits.clone())
8131                    .map(|r| r.map(|t| Self::LiquidityPoolDepositOp(Box::new(t)))),
8132            ),
8133            TypeVariant::LiquidityPoolWithdrawOp => Box::new(
8134                ReadXdrIter::<_, LiquidityPoolWithdrawOp>::new(&mut r.inner, r.limits.clone())
8135                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t)))),
8136            ),
8137            TypeVariant::HostFunctionType => Box::new(
8138                ReadXdrIter::<_, HostFunctionType>::new(&mut r.inner, r.limits.clone())
8139                    .map(|r| r.map(|t| Self::HostFunctionType(Box::new(t)))),
8140            ),
8141            TypeVariant::ContractIdPreimageType => Box::new(
8142                ReadXdrIter::<_, ContractIdPreimageType>::new(&mut r.inner, r.limits.clone())
8143                    .map(|r| r.map(|t| Self::ContractIdPreimageType(Box::new(t)))),
8144            ),
8145            TypeVariant::ContractIdPreimage => Box::new(
8146                ReadXdrIter::<_, ContractIdPreimage>::new(&mut r.inner, r.limits.clone())
8147                    .map(|r| r.map(|t| Self::ContractIdPreimage(Box::new(t)))),
8148            ),
8149            TypeVariant::ContractIdPreimageFromAddress => Box::new(
8150                ReadXdrIter::<_, ContractIdPreimageFromAddress>::new(
8151                    &mut r.inner,
8152                    r.limits.clone(),
8153                )
8154                .map(|r| r.map(|t| Self::ContractIdPreimageFromAddress(Box::new(t)))),
8155            ),
8156            TypeVariant::CreateContractArgs => Box::new(
8157                ReadXdrIter::<_, CreateContractArgs>::new(&mut r.inner, r.limits.clone())
8158                    .map(|r| r.map(|t| Self::CreateContractArgs(Box::new(t)))),
8159            ),
8160            TypeVariant::CreateContractArgsV2 => Box::new(
8161                ReadXdrIter::<_, CreateContractArgsV2>::new(&mut r.inner, r.limits.clone())
8162                    .map(|r| r.map(|t| Self::CreateContractArgsV2(Box::new(t)))),
8163            ),
8164            TypeVariant::InvokeContractArgs => Box::new(
8165                ReadXdrIter::<_, InvokeContractArgs>::new(&mut r.inner, r.limits.clone())
8166                    .map(|r| r.map(|t| Self::InvokeContractArgs(Box::new(t)))),
8167            ),
8168            TypeVariant::HostFunction => Box::new(
8169                ReadXdrIter::<_, HostFunction>::new(&mut r.inner, r.limits.clone())
8170                    .map(|r| r.map(|t| Self::HostFunction(Box::new(t)))),
8171            ),
8172            TypeVariant::SorobanAuthorizedFunctionType => Box::new(
8173                ReadXdrIter::<_, SorobanAuthorizedFunctionType>::new(
8174                    &mut r.inner,
8175                    r.limits.clone(),
8176                )
8177                .map(|r| r.map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t)))),
8178            ),
8179            TypeVariant::SorobanAuthorizedFunction => Box::new(
8180                ReadXdrIter::<_, SorobanAuthorizedFunction>::new(&mut r.inner, r.limits.clone())
8181                    .map(|r| r.map(|t| Self::SorobanAuthorizedFunction(Box::new(t)))),
8182            ),
8183            TypeVariant::SorobanAuthorizedInvocation => Box::new(
8184                ReadXdrIter::<_, SorobanAuthorizedInvocation>::new(&mut r.inner, r.limits.clone())
8185                    .map(|r| r.map(|t| Self::SorobanAuthorizedInvocation(Box::new(t)))),
8186            ),
8187            TypeVariant::SorobanAddressCredentials => Box::new(
8188                ReadXdrIter::<_, SorobanAddressCredentials>::new(&mut r.inner, r.limits.clone())
8189                    .map(|r| r.map(|t| Self::SorobanAddressCredentials(Box::new(t)))),
8190            ),
8191            TypeVariant::SorobanDelegateSignature => Box::new(
8192                ReadXdrIter::<_, SorobanDelegateSignature>::new(&mut r.inner, r.limits.clone())
8193                    .map(|r| r.map(|t| Self::SorobanDelegateSignature(Box::new(t)))),
8194            ),
8195            TypeVariant::SorobanAddressCredentialsWithDelegates => Box::new(
8196                ReadXdrIter::<_, SorobanAddressCredentialsWithDelegates>::new(
8197                    &mut r.inner,
8198                    r.limits.clone(),
8199                )
8200                .map(|r| r.map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t)))),
8201            ),
8202            TypeVariant::SorobanCredentialsType => Box::new(
8203                ReadXdrIter::<_, SorobanCredentialsType>::new(&mut r.inner, r.limits.clone())
8204                    .map(|r| r.map(|t| Self::SorobanCredentialsType(Box::new(t)))),
8205            ),
8206            TypeVariant::SorobanCredentials => Box::new(
8207                ReadXdrIter::<_, SorobanCredentials>::new(&mut r.inner, r.limits.clone())
8208                    .map(|r| r.map(|t| Self::SorobanCredentials(Box::new(t)))),
8209            ),
8210            TypeVariant::SorobanAuthorizationEntry => Box::new(
8211                ReadXdrIter::<_, SorobanAuthorizationEntry>::new(&mut r.inner, r.limits.clone())
8212                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntry(Box::new(t)))),
8213            ),
8214            TypeVariant::SorobanAuthorizationEntries => Box::new(
8215                ReadXdrIter::<_, SorobanAuthorizationEntries>::new(&mut r.inner, r.limits.clone())
8216                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntries(Box::new(t)))),
8217            ),
8218            TypeVariant::InvokeHostFunctionOp => Box::new(
8219                ReadXdrIter::<_, InvokeHostFunctionOp>::new(&mut r.inner, r.limits.clone())
8220                    .map(|r| r.map(|t| Self::InvokeHostFunctionOp(Box::new(t)))),
8221            ),
8222            TypeVariant::ExtendFootprintTtlOp => Box::new(
8223                ReadXdrIter::<_, ExtendFootprintTtlOp>::new(&mut r.inner, r.limits.clone())
8224                    .map(|r| r.map(|t| Self::ExtendFootprintTtlOp(Box::new(t)))),
8225            ),
8226            TypeVariant::RestoreFootprintOp => Box::new(
8227                ReadXdrIter::<_, RestoreFootprintOp>::new(&mut r.inner, r.limits.clone())
8228                    .map(|r| r.map(|t| Self::RestoreFootprintOp(Box::new(t)))),
8229            ),
8230            TypeVariant::Operation => Box::new(
8231                ReadXdrIter::<_, Operation>::new(&mut r.inner, r.limits.clone())
8232                    .map(|r| r.map(|t| Self::Operation(Box::new(t)))),
8233            ),
8234            TypeVariant::OperationBody => Box::new(
8235                ReadXdrIter::<_, OperationBody>::new(&mut r.inner, r.limits.clone())
8236                    .map(|r| r.map(|t| Self::OperationBody(Box::new(t)))),
8237            ),
8238            TypeVariant::HashIdPreimage => Box::new(
8239                ReadXdrIter::<_, HashIdPreimage>::new(&mut r.inner, r.limits.clone())
8240                    .map(|r| r.map(|t| Self::HashIdPreimage(Box::new(t)))),
8241            ),
8242            TypeVariant::HashIdPreimageOperationId => Box::new(
8243                ReadXdrIter::<_, HashIdPreimageOperationId>::new(&mut r.inner, r.limits.clone())
8244                    .map(|r| r.map(|t| Self::HashIdPreimageOperationId(Box::new(t)))),
8245            ),
8246            TypeVariant::HashIdPreimageRevokeId => Box::new(
8247                ReadXdrIter::<_, HashIdPreimageRevokeId>::new(&mut r.inner, r.limits.clone())
8248                    .map(|r| r.map(|t| Self::HashIdPreimageRevokeId(Box::new(t)))),
8249            ),
8250            TypeVariant::HashIdPreimageContractId => Box::new(
8251                ReadXdrIter::<_, HashIdPreimageContractId>::new(&mut r.inner, r.limits.clone())
8252                    .map(|r| r.map(|t| Self::HashIdPreimageContractId(Box::new(t)))),
8253            ),
8254            TypeVariant::HashIdPreimageSorobanAuthorization => Box::new(
8255                ReadXdrIter::<_, HashIdPreimageSorobanAuthorization>::new(
8256                    &mut r.inner,
8257                    r.limits.clone(),
8258                )
8259                .map(|r| r.map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t)))),
8260            ),
8261            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => Box::new(
8262                ReadXdrIter::<_, HashIdPreimageSorobanAuthorizationWithAddress>::new(
8263                    &mut r.inner,
8264                    r.limits.clone(),
8265                )
8266                .map(|r| {
8267                    r.map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t)))
8268                }),
8269            ),
8270            TypeVariant::MemoType => Box::new(
8271                ReadXdrIter::<_, MemoType>::new(&mut r.inner, r.limits.clone())
8272                    .map(|r| r.map(|t| Self::MemoType(Box::new(t)))),
8273            ),
8274            TypeVariant::Memo => Box::new(
8275                ReadXdrIter::<_, Memo>::new(&mut r.inner, r.limits.clone())
8276                    .map(|r| r.map(|t| Self::Memo(Box::new(t)))),
8277            ),
8278            TypeVariant::TimeBounds => Box::new(
8279                ReadXdrIter::<_, TimeBounds>::new(&mut r.inner, r.limits.clone())
8280                    .map(|r| r.map(|t| Self::TimeBounds(Box::new(t)))),
8281            ),
8282            TypeVariant::LedgerBounds => Box::new(
8283                ReadXdrIter::<_, LedgerBounds>::new(&mut r.inner, r.limits.clone())
8284                    .map(|r| r.map(|t| Self::LedgerBounds(Box::new(t)))),
8285            ),
8286            TypeVariant::PreconditionsV2 => Box::new(
8287                ReadXdrIter::<_, PreconditionsV2>::new(&mut r.inner, r.limits.clone())
8288                    .map(|r| r.map(|t| Self::PreconditionsV2(Box::new(t)))),
8289            ),
8290            TypeVariant::PreconditionType => Box::new(
8291                ReadXdrIter::<_, PreconditionType>::new(&mut r.inner, r.limits.clone())
8292                    .map(|r| r.map(|t| Self::PreconditionType(Box::new(t)))),
8293            ),
8294            TypeVariant::Preconditions => Box::new(
8295                ReadXdrIter::<_, Preconditions>::new(&mut r.inner, r.limits.clone())
8296                    .map(|r| r.map(|t| Self::Preconditions(Box::new(t)))),
8297            ),
8298            TypeVariant::LedgerFootprint => Box::new(
8299                ReadXdrIter::<_, LedgerFootprint>::new(&mut r.inner, r.limits.clone())
8300                    .map(|r| r.map(|t| Self::LedgerFootprint(Box::new(t)))),
8301            ),
8302            TypeVariant::SorobanResources => Box::new(
8303                ReadXdrIter::<_, SorobanResources>::new(&mut r.inner, r.limits.clone())
8304                    .map(|r| r.map(|t| Self::SorobanResources(Box::new(t)))),
8305            ),
8306            TypeVariant::SorobanResourcesExtV0 => Box::new(
8307                ReadXdrIter::<_, SorobanResourcesExtV0>::new(&mut r.inner, r.limits.clone())
8308                    .map(|r| r.map(|t| Self::SorobanResourcesExtV0(Box::new(t)))),
8309            ),
8310            TypeVariant::SorobanTransactionData => Box::new(
8311                ReadXdrIter::<_, SorobanTransactionData>::new(&mut r.inner, r.limits.clone())
8312                    .map(|r| r.map(|t| Self::SorobanTransactionData(Box::new(t)))),
8313            ),
8314            TypeVariant::SorobanTransactionDataExt => Box::new(
8315                ReadXdrIter::<_, SorobanTransactionDataExt>::new(&mut r.inner, r.limits.clone())
8316                    .map(|r| r.map(|t| Self::SorobanTransactionDataExt(Box::new(t)))),
8317            ),
8318            TypeVariant::TransactionV0 => Box::new(
8319                ReadXdrIter::<_, TransactionV0>::new(&mut r.inner, r.limits.clone())
8320                    .map(|r| r.map(|t| Self::TransactionV0(Box::new(t)))),
8321            ),
8322            TypeVariant::TransactionV0Ext => Box::new(
8323                ReadXdrIter::<_, TransactionV0Ext>::new(&mut r.inner, r.limits.clone())
8324                    .map(|r| r.map(|t| Self::TransactionV0Ext(Box::new(t)))),
8325            ),
8326            TypeVariant::TransactionV0Envelope => Box::new(
8327                ReadXdrIter::<_, TransactionV0Envelope>::new(&mut r.inner, r.limits.clone())
8328                    .map(|r| r.map(|t| Self::TransactionV0Envelope(Box::new(t)))),
8329            ),
8330            TypeVariant::Transaction => Box::new(
8331                ReadXdrIter::<_, Transaction>::new(&mut r.inner, r.limits.clone())
8332                    .map(|r| r.map(|t| Self::Transaction(Box::new(t)))),
8333            ),
8334            TypeVariant::TransactionExt => Box::new(
8335                ReadXdrIter::<_, TransactionExt>::new(&mut r.inner, r.limits.clone())
8336                    .map(|r| r.map(|t| Self::TransactionExt(Box::new(t)))),
8337            ),
8338            TypeVariant::TransactionV1Envelope => Box::new(
8339                ReadXdrIter::<_, TransactionV1Envelope>::new(&mut r.inner, r.limits.clone())
8340                    .map(|r| r.map(|t| Self::TransactionV1Envelope(Box::new(t)))),
8341            ),
8342            TypeVariant::FeeBumpTransaction => Box::new(
8343                ReadXdrIter::<_, FeeBumpTransaction>::new(&mut r.inner, r.limits.clone())
8344                    .map(|r| r.map(|t| Self::FeeBumpTransaction(Box::new(t)))),
8345            ),
8346            TypeVariant::FeeBumpTransactionInnerTx => Box::new(
8347                ReadXdrIter::<_, FeeBumpTransactionInnerTx>::new(&mut r.inner, r.limits.clone())
8348                    .map(|r| r.map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t)))),
8349            ),
8350            TypeVariant::FeeBumpTransactionExt => Box::new(
8351                ReadXdrIter::<_, FeeBumpTransactionExt>::new(&mut r.inner, r.limits.clone())
8352                    .map(|r| r.map(|t| Self::FeeBumpTransactionExt(Box::new(t)))),
8353            ),
8354            TypeVariant::FeeBumpTransactionEnvelope => Box::new(
8355                ReadXdrIter::<_, FeeBumpTransactionEnvelope>::new(&mut r.inner, r.limits.clone())
8356                    .map(|r| r.map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t)))),
8357            ),
8358            TypeVariant::TransactionEnvelope => Box::new(
8359                ReadXdrIter::<_, TransactionEnvelope>::new(&mut r.inner, r.limits.clone())
8360                    .map(|r| r.map(|t| Self::TransactionEnvelope(Box::new(t)))),
8361            ),
8362            TypeVariant::TransactionSignaturePayload => Box::new(
8363                ReadXdrIter::<_, TransactionSignaturePayload>::new(&mut r.inner, r.limits.clone())
8364                    .map(|r| r.map(|t| Self::TransactionSignaturePayload(Box::new(t)))),
8365            ),
8366            TypeVariant::TransactionSignaturePayloadTaggedTransaction => Box::new(
8367                ReadXdrIter::<_, TransactionSignaturePayloadTaggedTransaction>::new(
8368                    &mut r.inner,
8369                    r.limits.clone(),
8370                )
8371                .map(|r| {
8372                    r.map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t)))
8373                }),
8374            ),
8375            TypeVariant::ClaimAtomType => Box::new(
8376                ReadXdrIter::<_, ClaimAtomType>::new(&mut r.inner, r.limits.clone())
8377                    .map(|r| r.map(|t| Self::ClaimAtomType(Box::new(t)))),
8378            ),
8379            TypeVariant::ClaimOfferAtomV0 => Box::new(
8380                ReadXdrIter::<_, ClaimOfferAtomV0>::new(&mut r.inner, r.limits.clone())
8381                    .map(|r| r.map(|t| Self::ClaimOfferAtomV0(Box::new(t)))),
8382            ),
8383            TypeVariant::ClaimOfferAtom => Box::new(
8384                ReadXdrIter::<_, ClaimOfferAtom>::new(&mut r.inner, r.limits.clone())
8385                    .map(|r| r.map(|t| Self::ClaimOfferAtom(Box::new(t)))),
8386            ),
8387            TypeVariant::ClaimLiquidityAtom => Box::new(
8388                ReadXdrIter::<_, ClaimLiquidityAtom>::new(&mut r.inner, r.limits.clone())
8389                    .map(|r| r.map(|t| Self::ClaimLiquidityAtom(Box::new(t)))),
8390            ),
8391            TypeVariant::ClaimAtom => Box::new(
8392                ReadXdrIter::<_, ClaimAtom>::new(&mut r.inner, r.limits.clone())
8393                    .map(|r| r.map(|t| Self::ClaimAtom(Box::new(t)))),
8394            ),
8395            TypeVariant::CreateAccountResultCode => Box::new(
8396                ReadXdrIter::<_, CreateAccountResultCode>::new(&mut r.inner, r.limits.clone())
8397                    .map(|r| r.map(|t| Self::CreateAccountResultCode(Box::new(t)))),
8398            ),
8399            TypeVariant::CreateAccountResult => Box::new(
8400                ReadXdrIter::<_, CreateAccountResult>::new(&mut r.inner, r.limits.clone())
8401                    .map(|r| r.map(|t| Self::CreateAccountResult(Box::new(t)))),
8402            ),
8403            TypeVariant::PaymentResultCode => Box::new(
8404                ReadXdrIter::<_, PaymentResultCode>::new(&mut r.inner, r.limits.clone())
8405                    .map(|r| r.map(|t| Self::PaymentResultCode(Box::new(t)))),
8406            ),
8407            TypeVariant::PaymentResult => Box::new(
8408                ReadXdrIter::<_, PaymentResult>::new(&mut r.inner, r.limits.clone())
8409                    .map(|r| r.map(|t| Self::PaymentResult(Box::new(t)))),
8410            ),
8411            TypeVariant::PathPaymentStrictReceiveResultCode => Box::new(
8412                ReadXdrIter::<_, PathPaymentStrictReceiveResultCode>::new(
8413                    &mut r.inner,
8414                    r.limits.clone(),
8415                )
8416                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t)))),
8417            ),
8418            TypeVariant::SimplePaymentResult => Box::new(
8419                ReadXdrIter::<_, SimplePaymentResult>::new(&mut r.inner, r.limits.clone())
8420                    .map(|r| r.map(|t| Self::SimplePaymentResult(Box::new(t)))),
8421            ),
8422            TypeVariant::PathPaymentStrictReceiveResult => Box::new(
8423                ReadXdrIter::<_, PathPaymentStrictReceiveResult>::new(
8424                    &mut r.inner,
8425                    r.limits.clone(),
8426                )
8427                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t)))),
8428            ),
8429            TypeVariant::PathPaymentStrictReceiveResultSuccess => Box::new(
8430                ReadXdrIter::<_, PathPaymentStrictReceiveResultSuccess>::new(
8431                    &mut r.inner,
8432                    r.limits.clone(),
8433                )
8434                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t)))),
8435            ),
8436            TypeVariant::PathPaymentStrictSendResultCode => Box::new(
8437                ReadXdrIter::<_, PathPaymentStrictSendResultCode>::new(
8438                    &mut r.inner,
8439                    r.limits.clone(),
8440                )
8441                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t)))),
8442            ),
8443            TypeVariant::PathPaymentStrictSendResult => Box::new(
8444                ReadXdrIter::<_, PathPaymentStrictSendResult>::new(&mut r.inner, r.limits.clone())
8445                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResult(Box::new(t)))),
8446            ),
8447            TypeVariant::PathPaymentStrictSendResultSuccess => Box::new(
8448                ReadXdrIter::<_, PathPaymentStrictSendResultSuccess>::new(
8449                    &mut r.inner,
8450                    r.limits.clone(),
8451                )
8452                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t)))),
8453            ),
8454            TypeVariant::ManageSellOfferResultCode => Box::new(
8455                ReadXdrIter::<_, ManageSellOfferResultCode>::new(&mut r.inner, r.limits.clone())
8456                    .map(|r| r.map(|t| Self::ManageSellOfferResultCode(Box::new(t)))),
8457            ),
8458            TypeVariant::ManageOfferEffect => Box::new(
8459                ReadXdrIter::<_, ManageOfferEffect>::new(&mut r.inner, r.limits.clone())
8460                    .map(|r| r.map(|t| Self::ManageOfferEffect(Box::new(t)))),
8461            ),
8462            TypeVariant::ManageOfferSuccessResult => Box::new(
8463                ReadXdrIter::<_, ManageOfferSuccessResult>::new(&mut r.inner, r.limits.clone())
8464                    .map(|r| r.map(|t| Self::ManageOfferSuccessResult(Box::new(t)))),
8465            ),
8466            TypeVariant::ManageOfferSuccessResultOffer => Box::new(
8467                ReadXdrIter::<_, ManageOfferSuccessResultOffer>::new(
8468                    &mut r.inner,
8469                    r.limits.clone(),
8470                )
8471                .map(|r| r.map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t)))),
8472            ),
8473            TypeVariant::ManageSellOfferResult => Box::new(
8474                ReadXdrIter::<_, ManageSellOfferResult>::new(&mut r.inner, r.limits.clone())
8475                    .map(|r| r.map(|t| Self::ManageSellOfferResult(Box::new(t)))),
8476            ),
8477            TypeVariant::ManageBuyOfferResultCode => Box::new(
8478                ReadXdrIter::<_, ManageBuyOfferResultCode>::new(&mut r.inner, r.limits.clone())
8479                    .map(|r| r.map(|t| Self::ManageBuyOfferResultCode(Box::new(t)))),
8480            ),
8481            TypeVariant::ManageBuyOfferResult => Box::new(
8482                ReadXdrIter::<_, ManageBuyOfferResult>::new(&mut r.inner, r.limits.clone())
8483                    .map(|r| r.map(|t| Self::ManageBuyOfferResult(Box::new(t)))),
8484            ),
8485            TypeVariant::SetOptionsResultCode => Box::new(
8486                ReadXdrIter::<_, SetOptionsResultCode>::new(&mut r.inner, r.limits.clone())
8487                    .map(|r| r.map(|t| Self::SetOptionsResultCode(Box::new(t)))),
8488            ),
8489            TypeVariant::SetOptionsResult => Box::new(
8490                ReadXdrIter::<_, SetOptionsResult>::new(&mut r.inner, r.limits.clone())
8491                    .map(|r| r.map(|t| Self::SetOptionsResult(Box::new(t)))),
8492            ),
8493            TypeVariant::ChangeTrustResultCode => Box::new(
8494                ReadXdrIter::<_, ChangeTrustResultCode>::new(&mut r.inner, r.limits.clone())
8495                    .map(|r| r.map(|t| Self::ChangeTrustResultCode(Box::new(t)))),
8496            ),
8497            TypeVariant::ChangeTrustResult => Box::new(
8498                ReadXdrIter::<_, ChangeTrustResult>::new(&mut r.inner, r.limits.clone())
8499                    .map(|r| r.map(|t| Self::ChangeTrustResult(Box::new(t)))),
8500            ),
8501            TypeVariant::AllowTrustResultCode => Box::new(
8502                ReadXdrIter::<_, AllowTrustResultCode>::new(&mut r.inner, r.limits.clone())
8503                    .map(|r| r.map(|t| Self::AllowTrustResultCode(Box::new(t)))),
8504            ),
8505            TypeVariant::AllowTrustResult => Box::new(
8506                ReadXdrIter::<_, AllowTrustResult>::new(&mut r.inner, r.limits.clone())
8507                    .map(|r| r.map(|t| Self::AllowTrustResult(Box::new(t)))),
8508            ),
8509            TypeVariant::AccountMergeResultCode => Box::new(
8510                ReadXdrIter::<_, AccountMergeResultCode>::new(&mut r.inner, r.limits.clone())
8511                    .map(|r| r.map(|t| Self::AccountMergeResultCode(Box::new(t)))),
8512            ),
8513            TypeVariant::AccountMergeResult => Box::new(
8514                ReadXdrIter::<_, AccountMergeResult>::new(&mut r.inner, r.limits.clone())
8515                    .map(|r| r.map(|t| Self::AccountMergeResult(Box::new(t)))),
8516            ),
8517            TypeVariant::InflationResultCode => Box::new(
8518                ReadXdrIter::<_, InflationResultCode>::new(&mut r.inner, r.limits.clone())
8519                    .map(|r| r.map(|t| Self::InflationResultCode(Box::new(t)))),
8520            ),
8521            TypeVariant::InflationPayout => Box::new(
8522                ReadXdrIter::<_, InflationPayout>::new(&mut r.inner, r.limits.clone())
8523                    .map(|r| r.map(|t| Self::InflationPayout(Box::new(t)))),
8524            ),
8525            TypeVariant::InflationResult => Box::new(
8526                ReadXdrIter::<_, InflationResult>::new(&mut r.inner, r.limits.clone())
8527                    .map(|r| r.map(|t| Self::InflationResult(Box::new(t)))),
8528            ),
8529            TypeVariant::ManageDataResultCode => Box::new(
8530                ReadXdrIter::<_, ManageDataResultCode>::new(&mut r.inner, r.limits.clone())
8531                    .map(|r| r.map(|t| Self::ManageDataResultCode(Box::new(t)))),
8532            ),
8533            TypeVariant::ManageDataResult => Box::new(
8534                ReadXdrIter::<_, ManageDataResult>::new(&mut r.inner, r.limits.clone())
8535                    .map(|r| r.map(|t| Self::ManageDataResult(Box::new(t)))),
8536            ),
8537            TypeVariant::BumpSequenceResultCode => Box::new(
8538                ReadXdrIter::<_, BumpSequenceResultCode>::new(&mut r.inner, r.limits.clone())
8539                    .map(|r| r.map(|t| Self::BumpSequenceResultCode(Box::new(t)))),
8540            ),
8541            TypeVariant::BumpSequenceResult => Box::new(
8542                ReadXdrIter::<_, BumpSequenceResult>::new(&mut r.inner, r.limits.clone())
8543                    .map(|r| r.map(|t| Self::BumpSequenceResult(Box::new(t)))),
8544            ),
8545            TypeVariant::CreateClaimableBalanceResultCode => Box::new(
8546                ReadXdrIter::<_, CreateClaimableBalanceResultCode>::new(
8547                    &mut r.inner,
8548                    r.limits.clone(),
8549                )
8550                .map(|r| r.map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t)))),
8551            ),
8552            TypeVariant::CreateClaimableBalanceResult => Box::new(
8553                ReadXdrIter::<_, CreateClaimableBalanceResult>::new(&mut r.inner, r.limits.clone())
8554                    .map(|r| r.map(|t| Self::CreateClaimableBalanceResult(Box::new(t)))),
8555            ),
8556            TypeVariant::ClaimClaimableBalanceResultCode => Box::new(
8557                ReadXdrIter::<_, ClaimClaimableBalanceResultCode>::new(
8558                    &mut r.inner,
8559                    r.limits.clone(),
8560                )
8561                .map(|r| r.map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t)))),
8562            ),
8563            TypeVariant::ClaimClaimableBalanceResult => Box::new(
8564                ReadXdrIter::<_, ClaimClaimableBalanceResult>::new(&mut r.inner, r.limits.clone())
8565                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceResult(Box::new(t)))),
8566            ),
8567            TypeVariant::BeginSponsoringFutureReservesResultCode => Box::new(
8568                ReadXdrIter::<_, BeginSponsoringFutureReservesResultCode>::new(
8569                    &mut r.inner,
8570                    r.limits.clone(),
8571                )
8572                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t)))),
8573            ),
8574            TypeVariant::BeginSponsoringFutureReservesResult => Box::new(
8575                ReadXdrIter::<_, BeginSponsoringFutureReservesResult>::new(
8576                    &mut r.inner,
8577                    r.limits.clone(),
8578                )
8579                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t)))),
8580            ),
8581            TypeVariant::EndSponsoringFutureReservesResultCode => Box::new(
8582                ReadXdrIter::<_, EndSponsoringFutureReservesResultCode>::new(
8583                    &mut r.inner,
8584                    r.limits.clone(),
8585                )
8586                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t)))),
8587            ),
8588            TypeVariant::EndSponsoringFutureReservesResult => Box::new(
8589                ReadXdrIter::<_, EndSponsoringFutureReservesResult>::new(
8590                    &mut r.inner,
8591                    r.limits.clone(),
8592                )
8593                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t)))),
8594            ),
8595            TypeVariant::RevokeSponsorshipResultCode => Box::new(
8596                ReadXdrIter::<_, RevokeSponsorshipResultCode>::new(&mut r.inner, r.limits.clone())
8597                    .map(|r| r.map(|t| Self::RevokeSponsorshipResultCode(Box::new(t)))),
8598            ),
8599            TypeVariant::RevokeSponsorshipResult => Box::new(
8600                ReadXdrIter::<_, RevokeSponsorshipResult>::new(&mut r.inner, r.limits.clone())
8601                    .map(|r| r.map(|t| Self::RevokeSponsorshipResult(Box::new(t)))),
8602            ),
8603            TypeVariant::ClawbackResultCode => Box::new(
8604                ReadXdrIter::<_, ClawbackResultCode>::new(&mut r.inner, r.limits.clone())
8605                    .map(|r| r.map(|t| Self::ClawbackResultCode(Box::new(t)))),
8606            ),
8607            TypeVariant::ClawbackResult => Box::new(
8608                ReadXdrIter::<_, ClawbackResult>::new(&mut r.inner, r.limits.clone())
8609                    .map(|r| r.map(|t| Self::ClawbackResult(Box::new(t)))),
8610            ),
8611            TypeVariant::ClawbackClaimableBalanceResultCode => Box::new(
8612                ReadXdrIter::<_, ClawbackClaimableBalanceResultCode>::new(
8613                    &mut r.inner,
8614                    r.limits.clone(),
8615                )
8616                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t)))),
8617            ),
8618            TypeVariant::ClawbackClaimableBalanceResult => Box::new(
8619                ReadXdrIter::<_, ClawbackClaimableBalanceResult>::new(
8620                    &mut r.inner,
8621                    r.limits.clone(),
8622                )
8623                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t)))),
8624            ),
8625            TypeVariant::SetTrustLineFlagsResultCode => Box::new(
8626                ReadXdrIter::<_, SetTrustLineFlagsResultCode>::new(&mut r.inner, r.limits.clone())
8627                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t)))),
8628            ),
8629            TypeVariant::SetTrustLineFlagsResult => Box::new(
8630                ReadXdrIter::<_, SetTrustLineFlagsResult>::new(&mut r.inner, r.limits.clone())
8631                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResult(Box::new(t)))),
8632            ),
8633            TypeVariant::LiquidityPoolDepositResultCode => Box::new(
8634                ReadXdrIter::<_, LiquidityPoolDepositResultCode>::new(
8635                    &mut r.inner,
8636                    r.limits.clone(),
8637                )
8638                .map(|r| r.map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t)))),
8639            ),
8640            TypeVariant::LiquidityPoolDepositResult => Box::new(
8641                ReadXdrIter::<_, LiquidityPoolDepositResult>::new(&mut r.inner, r.limits.clone())
8642                    .map(|r| r.map(|t| Self::LiquidityPoolDepositResult(Box::new(t)))),
8643            ),
8644            TypeVariant::LiquidityPoolWithdrawResultCode => Box::new(
8645                ReadXdrIter::<_, LiquidityPoolWithdrawResultCode>::new(
8646                    &mut r.inner,
8647                    r.limits.clone(),
8648                )
8649                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t)))),
8650            ),
8651            TypeVariant::LiquidityPoolWithdrawResult => Box::new(
8652                ReadXdrIter::<_, LiquidityPoolWithdrawResult>::new(&mut r.inner, r.limits.clone())
8653                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t)))),
8654            ),
8655            TypeVariant::InvokeHostFunctionResultCode => Box::new(
8656                ReadXdrIter::<_, InvokeHostFunctionResultCode>::new(&mut r.inner, r.limits.clone())
8657                    .map(|r| r.map(|t| Self::InvokeHostFunctionResultCode(Box::new(t)))),
8658            ),
8659            TypeVariant::InvokeHostFunctionResult => Box::new(
8660                ReadXdrIter::<_, InvokeHostFunctionResult>::new(&mut r.inner, r.limits.clone())
8661                    .map(|r| r.map(|t| Self::InvokeHostFunctionResult(Box::new(t)))),
8662            ),
8663            TypeVariant::ExtendFootprintTtlResultCode => Box::new(
8664                ReadXdrIter::<_, ExtendFootprintTtlResultCode>::new(&mut r.inner, r.limits.clone())
8665                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t)))),
8666            ),
8667            TypeVariant::ExtendFootprintTtlResult => Box::new(
8668                ReadXdrIter::<_, ExtendFootprintTtlResult>::new(&mut r.inner, r.limits.clone())
8669                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResult(Box::new(t)))),
8670            ),
8671            TypeVariant::RestoreFootprintResultCode => Box::new(
8672                ReadXdrIter::<_, RestoreFootprintResultCode>::new(&mut r.inner, r.limits.clone())
8673                    .map(|r| r.map(|t| Self::RestoreFootprintResultCode(Box::new(t)))),
8674            ),
8675            TypeVariant::RestoreFootprintResult => Box::new(
8676                ReadXdrIter::<_, RestoreFootprintResult>::new(&mut r.inner, r.limits.clone())
8677                    .map(|r| r.map(|t| Self::RestoreFootprintResult(Box::new(t)))),
8678            ),
8679            TypeVariant::OperationResultCode => Box::new(
8680                ReadXdrIter::<_, OperationResultCode>::new(&mut r.inner, r.limits.clone())
8681                    .map(|r| r.map(|t| Self::OperationResultCode(Box::new(t)))),
8682            ),
8683            TypeVariant::OperationResult => Box::new(
8684                ReadXdrIter::<_, OperationResult>::new(&mut r.inner, r.limits.clone())
8685                    .map(|r| r.map(|t| Self::OperationResult(Box::new(t)))),
8686            ),
8687            TypeVariant::OperationResultTr => Box::new(
8688                ReadXdrIter::<_, OperationResultTr>::new(&mut r.inner, r.limits.clone())
8689                    .map(|r| r.map(|t| Self::OperationResultTr(Box::new(t)))),
8690            ),
8691            TypeVariant::TransactionResultCode => Box::new(
8692                ReadXdrIter::<_, TransactionResultCode>::new(&mut r.inner, r.limits.clone())
8693                    .map(|r| r.map(|t| Self::TransactionResultCode(Box::new(t)))),
8694            ),
8695            TypeVariant::InnerTransactionResult => Box::new(
8696                ReadXdrIter::<_, InnerTransactionResult>::new(&mut r.inner, r.limits.clone())
8697                    .map(|r| r.map(|t| Self::InnerTransactionResult(Box::new(t)))),
8698            ),
8699            TypeVariant::InnerTransactionResultResult => Box::new(
8700                ReadXdrIter::<_, InnerTransactionResultResult>::new(&mut r.inner, r.limits.clone())
8701                    .map(|r| r.map(|t| Self::InnerTransactionResultResult(Box::new(t)))),
8702            ),
8703            TypeVariant::InnerTransactionResultExt => Box::new(
8704                ReadXdrIter::<_, InnerTransactionResultExt>::new(&mut r.inner, r.limits.clone())
8705                    .map(|r| r.map(|t| Self::InnerTransactionResultExt(Box::new(t)))),
8706            ),
8707            TypeVariant::InnerTransactionResultPair => Box::new(
8708                ReadXdrIter::<_, InnerTransactionResultPair>::new(&mut r.inner, r.limits.clone())
8709                    .map(|r| r.map(|t| Self::InnerTransactionResultPair(Box::new(t)))),
8710            ),
8711            TypeVariant::TransactionResult => Box::new(
8712                ReadXdrIter::<_, TransactionResult>::new(&mut r.inner, r.limits.clone())
8713                    .map(|r| r.map(|t| Self::TransactionResult(Box::new(t)))),
8714            ),
8715            TypeVariant::TransactionResultResult => Box::new(
8716                ReadXdrIter::<_, TransactionResultResult>::new(&mut r.inner, r.limits.clone())
8717                    .map(|r| r.map(|t| Self::TransactionResultResult(Box::new(t)))),
8718            ),
8719            TypeVariant::TransactionResultExt => Box::new(
8720                ReadXdrIter::<_, TransactionResultExt>::new(&mut r.inner, r.limits.clone())
8721                    .map(|r| r.map(|t| Self::TransactionResultExt(Box::new(t)))),
8722            ),
8723            TypeVariant::Hash => Box::new(
8724                ReadXdrIter::<_, Hash>::new(&mut r.inner, r.limits.clone())
8725                    .map(|r| r.map(|t| Self::Hash(Box::new(t)))),
8726            ),
8727            TypeVariant::Uint256 => Box::new(
8728                ReadXdrIter::<_, Uint256>::new(&mut r.inner, r.limits.clone())
8729                    .map(|r| r.map(|t| Self::Uint256(Box::new(t)))),
8730            ),
8731            TypeVariant::Uint32 => Box::new(
8732                ReadXdrIter::<_, Uint32>::new(&mut r.inner, r.limits.clone())
8733                    .map(|r| r.map(|t| Self::Uint32(Box::new(t)))),
8734            ),
8735            TypeVariant::Int32 => Box::new(
8736                ReadXdrIter::<_, Int32>::new(&mut r.inner, r.limits.clone())
8737                    .map(|r| r.map(|t| Self::Int32(Box::new(t)))),
8738            ),
8739            TypeVariant::Uint64 => Box::new(
8740                ReadXdrIter::<_, Uint64>::new(&mut r.inner, r.limits.clone())
8741                    .map(|r| r.map(|t| Self::Uint64(Box::new(t)))),
8742            ),
8743            TypeVariant::Int64 => Box::new(
8744                ReadXdrIter::<_, Int64>::new(&mut r.inner, r.limits.clone())
8745                    .map(|r| r.map(|t| Self::Int64(Box::new(t)))),
8746            ),
8747            TypeVariant::TimePoint => Box::new(
8748                ReadXdrIter::<_, TimePoint>::new(&mut r.inner, r.limits.clone())
8749                    .map(|r| r.map(|t| Self::TimePoint(Box::new(t)))),
8750            ),
8751            TypeVariant::Duration => Box::new(
8752                ReadXdrIter::<_, Duration>::new(&mut r.inner, r.limits.clone())
8753                    .map(|r| r.map(|t| Self::Duration(Box::new(t)))),
8754            ),
8755            TypeVariant::ExtensionPoint => Box::new(
8756                ReadXdrIter::<_, ExtensionPoint>::new(&mut r.inner, r.limits.clone())
8757                    .map(|r| r.map(|t| Self::ExtensionPoint(Box::new(t)))),
8758            ),
8759            TypeVariant::CryptoKeyType => Box::new(
8760                ReadXdrIter::<_, CryptoKeyType>::new(&mut r.inner, r.limits.clone())
8761                    .map(|r| r.map(|t| Self::CryptoKeyType(Box::new(t)))),
8762            ),
8763            TypeVariant::PublicKeyType => Box::new(
8764                ReadXdrIter::<_, PublicKeyType>::new(&mut r.inner, r.limits.clone())
8765                    .map(|r| r.map(|t| Self::PublicKeyType(Box::new(t)))),
8766            ),
8767            TypeVariant::SignerKeyType => Box::new(
8768                ReadXdrIter::<_, SignerKeyType>::new(&mut r.inner, r.limits.clone())
8769                    .map(|r| r.map(|t| Self::SignerKeyType(Box::new(t)))),
8770            ),
8771            TypeVariant::PublicKey => Box::new(
8772                ReadXdrIter::<_, PublicKey>::new(&mut r.inner, r.limits.clone())
8773                    .map(|r| r.map(|t| Self::PublicKey(Box::new(t)))),
8774            ),
8775            TypeVariant::SignerKey => Box::new(
8776                ReadXdrIter::<_, SignerKey>::new(&mut r.inner, r.limits.clone())
8777                    .map(|r| r.map(|t| Self::SignerKey(Box::new(t)))),
8778            ),
8779            TypeVariant::SignerKeyEd25519SignedPayload => Box::new(
8780                ReadXdrIter::<_, SignerKeyEd25519SignedPayload>::new(
8781                    &mut r.inner,
8782                    r.limits.clone(),
8783                )
8784                .map(|r| r.map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t)))),
8785            ),
8786            TypeVariant::Signature => Box::new(
8787                ReadXdrIter::<_, Signature>::new(&mut r.inner, r.limits.clone())
8788                    .map(|r| r.map(|t| Self::Signature(Box::new(t)))),
8789            ),
8790            TypeVariant::SignatureHint => Box::new(
8791                ReadXdrIter::<_, SignatureHint>::new(&mut r.inner, r.limits.clone())
8792                    .map(|r| r.map(|t| Self::SignatureHint(Box::new(t)))),
8793            ),
8794            TypeVariant::NodeId => Box::new(
8795                ReadXdrIter::<_, NodeId>::new(&mut r.inner, r.limits.clone())
8796                    .map(|r| r.map(|t| Self::NodeId(Box::new(t)))),
8797            ),
8798            TypeVariant::AccountId => Box::new(
8799                ReadXdrIter::<_, AccountId>::new(&mut r.inner, r.limits.clone())
8800                    .map(|r| r.map(|t| Self::AccountId(Box::new(t)))),
8801            ),
8802            TypeVariant::ContractId => Box::new(
8803                ReadXdrIter::<_, ContractId>::new(&mut r.inner, r.limits.clone())
8804                    .map(|r| r.map(|t| Self::ContractId(Box::new(t)))),
8805            ),
8806            TypeVariant::Curve25519Secret => Box::new(
8807                ReadXdrIter::<_, Curve25519Secret>::new(&mut r.inner, r.limits.clone())
8808                    .map(|r| r.map(|t| Self::Curve25519Secret(Box::new(t)))),
8809            ),
8810            TypeVariant::Curve25519Public => Box::new(
8811                ReadXdrIter::<_, Curve25519Public>::new(&mut r.inner, r.limits.clone())
8812                    .map(|r| r.map(|t| Self::Curve25519Public(Box::new(t)))),
8813            ),
8814            TypeVariant::HmacSha256Key => Box::new(
8815                ReadXdrIter::<_, HmacSha256Key>::new(&mut r.inner, r.limits.clone())
8816                    .map(|r| r.map(|t| Self::HmacSha256Key(Box::new(t)))),
8817            ),
8818            TypeVariant::HmacSha256Mac => Box::new(
8819                ReadXdrIter::<_, HmacSha256Mac>::new(&mut r.inner, r.limits.clone())
8820                    .map(|r| r.map(|t| Self::HmacSha256Mac(Box::new(t)))),
8821            ),
8822            TypeVariant::ShortHashSeed => Box::new(
8823                ReadXdrIter::<_, ShortHashSeed>::new(&mut r.inner, r.limits.clone())
8824                    .map(|r| r.map(|t| Self::ShortHashSeed(Box::new(t)))),
8825            ),
8826            TypeVariant::BinaryFuseFilterType => Box::new(
8827                ReadXdrIter::<_, BinaryFuseFilterType>::new(&mut r.inner, r.limits.clone())
8828                    .map(|r| r.map(|t| Self::BinaryFuseFilterType(Box::new(t)))),
8829            ),
8830            TypeVariant::SerializedBinaryFuseFilter => Box::new(
8831                ReadXdrIter::<_, SerializedBinaryFuseFilter>::new(&mut r.inner, r.limits.clone())
8832                    .map(|r| r.map(|t| Self::SerializedBinaryFuseFilter(Box::new(t)))),
8833            ),
8834            TypeVariant::PoolId => Box::new(
8835                ReadXdrIter::<_, PoolId>::new(&mut r.inner, r.limits.clone())
8836                    .map(|r| r.map(|t| Self::PoolId(Box::new(t)))),
8837            ),
8838            TypeVariant::ClaimableBalanceIdType => Box::new(
8839                ReadXdrIter::<_, ClaimableBalanceIdType>::new(&mut r.inner, r.limits.clone())
8840                    .map(|r| r.map(|t| Self::ClaimableBalanceIdType(Box::new(t)))),
8841            ),
8842            TypeVariant::ClaimableBalanceId => Box::new(
8843                ReadXdrIter::<_, ClaimableBalanceId>::new(&mut r.inner, r.limits.clone())
8844                    .map(|r| r.map(|t| Self::ClaimableBalanceId(Box::new(t)))),
8845            ),
8846            #[cfg(feature = "test_feature")]
8847            TypeVariant::TestNextType => Box::new(
8848                ReadXdrIter::<_, TestNextType>::new(&mut r.inner, r.limits.clone())
8849                    .map(|r| r.map(|t| Self::TestNextType(Box::new(t)))),
8850            ),
8851        }
8852    }
8853
8854    #[cfg(feature = "std")]
8855    #[allow(clippy::too_many_lines)]
8856    pub fn read_xdr_framed_iter<R: Read>(
8857        v: TypeVariant,
8858        r: &mut Limited<R>,
8859    ) -> Box<dyn Iterator<Item = Result<Self, Error>> + '_> {
8860        match v {
8861            TypeVariant::Value => Box::new(
8862                ReadXdrIter::<_, Frame<Value>>::new(&mut r.inner, r.limits.clone())
8863                    .map(|r| r.map(|t| Self::Value(Box::new(t.0)))),
8864            ),
8865            TypeVariant::ScpBallot => Box::new(
8866                ReadXdrIter::<_, Frame<ScpBallot>>::new(&mut r.inner, r.limits.clone())
8867                    .map(|r| r.map(|t| Self::ScpBallot(Box::new(t.0)))),
8868            ),
8869            TypeVariant::ScpStatementType => Box::new(
8870                ReadXdrIter::<_, Frame<ScpStatementType>>::new(&mut r.inner, r.limits.clone())
8871                    .map(|r| r.map(|t| Self::ScpStatementType(Box::new(t.0)))),
8872            ),
8873            TypeVariant::ScpNomination => Box::new(
8874                ReadXdrIter::<_, Frame<ScpNomination>>::new(&mut r.inner, r.limits.clone())
8875                    .map(|r| r.map(|t| Self::ScpNomination(Box::new(t.0)))),
8876            ),
8877            TypeVariant::ScpStatement => Box::new(
8878                ReadXdrIter::<_, Frame<ScpStatement>>::new(&mut r.inner, r.limits.clone())
8879                    .map(|r| r.map(|t| Self::ScpStatement(Box::new(t.0)))),
8880            ),
8881            TypeVariant::ScpStatementPledges => Box::new(
8882                ReadXdrIter::<_, Frame<ScpStatementPledges>>::new(&mut r.inner, r.limits.clone())
8883                    .map(|r| r.map(|t| Self::ScpStatementPledges(Box::new(t.0)))),
8884            ),
8885            TypeVariant::ScpStatementPrepare => Box::new(
8886                ReadXdrIter::<_, Frame<ScpStatementPrepare>>::new(&mut r.inner, r.limits.clone())
8887                    .map(|r| r.map(|t| Self::ScpStatementPrepare(Box::new(t.0)))),
8888            ),
8889            TypeVariant::ScpStatementConfirm => Box::new(
8890                ReadXdrIter::<_, Frame<ScpStatementConfirm>>::new(&mut r.inner, r.limits.clone())
8891                    .map(|r| r.map(|t| Self::ScpStatementConfirm(Box::new(t.0)))),
8892            ),
8893            TypeVariant::ScpStatementExternalize => Box::new(
8894                ReadXdrIter::<_, Frame<ScpStatementExternalize>>::new(
8895                    &mut r.inner,
8896                    r.limits.clone(),
8897                )
8898                .map(|r| r.map(|t| Self::ScpStatementExternalize(Box::new(t.0)))),
8899            ),
8900            TypeVariant::ScpEnvelope => Box::new(
8901                ReadXdrIter::<_, Frame<ScpEnvelope>>::new(&mut r.inner, r.limits.clone())
8902                    .map(|r| r.map(|t| Self::ScpEnvelope(Box::new(t.0)))),
8903            ),
8904            TypeVariant::ScpQuorumSet => Box::new(
8905                ReadXdrIter::<_, Frame<ScpQuorumSet>>::new(&mut r.inner, r.limits.clone())
8906                    .map(|r| r.map(|t| Self::ScpQuorumSet(Box::new(t.0)))),
8907            ),
8908            TypeVariant::EncodedLedgerKey => Box::new(
8909                ReadXdrIter::<_, Frame<EncodedLedgerKey>>::new(&mut r.inner, r.limits.clone())
8910                    .map(|r| r.map(|t| Self::EncodedLedgerKey(Box::new(t.0)))),
8911            ),
8912            TypeVariant::ConfigSettingContractExecutionLanesV0 => Box::new(
8913                ReadXdrIter::<_, Frame<ConfigSettingContractExecutionLanesV0>>::new(
8914                    &mut r.inner,
8915                    r.limits.clone(),
8916                )
8917                .map(|r| r.map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t.0)))),
8918            ),
8919            TypeVariant::ConfigSettingContractComputeV0 => Box::new(
8920                ReadXdrIter::<_, Frame<ConfigSettingContractComputeV0>>::new(
8921                    &mut r.inner,
8922                    r.limits.clone(),
8923                )
8924                .map(|r| r.map(|t| Self::ConfigSettingContractComputeV0(Box::new(t.0)))),
8925            ),
8926            TypeVariant::ConfigSettingContractParallelComputeV0 => Box::new(
8927                ReadXdrIter::<_, Frame<ConfigSettingContractParallelComputeV0>>::new(
8928                    &mut r.inner,
8929                    r.limits.clone(),
8930                )
8931                .map(|r| r.map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t.0)))),
8932            ),
8933            TypeVariant::ConfigSettingContractLedgerCostV0 => Box::new(
8934                ReadXdrIter::<_, Frame<ConfigSettingContractLedgerCostV0>>::new(
8935                    &mut r.inner,
8936                    r.limits.clone(),
8937                )
8938                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t.0)))),
8939            ),
8940            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Box::new(
8941                ReadXdrIter::<_, Frame<ConfigSettingContractLedgerCostExtV0>>::new(
8942                    &mut r.inner,
8943                    r.limits.clone(),
8944                )
8945                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t.0)))),
8946            ),
8947            TypeVariant::ConfigSettingContractHistoricalDataV0 => Box::new(
8948                ReadXdrIter::<_, Frame<ConfigSettingContractHistoricalDataV0>>::new(
8949                    &mut r.inner,
8950                    r.limits.clone(),
8951                )
8952                .map(|r| r.map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t.0)))),
8953            ),
8954            TypeVariant::ConfigSettingContractEventsV0 => Box::new(
8955                ReadXdrIter::<_, Frame<ConfigSettingContractEventsV0>>::new(
8956                    &mut r.inner,
8957                    r.limits.clone(),
8958                )
8959                .map(|r| r.map(|t| Self::ConfigSettingContractEventsV0(Box::new(t.0)))),
8960            ),
8961            TypeVariant::ConfigSettingContractBandwidthV0 => Box::new(
8962                ReadXdrIter::<_, Frame<ConfigSettingContractBandwidthV0>>::new(
8963                    &mut r.inner,
8964                    r.limits.clone(),
8965                )
8966                .map(|r| r.map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t.0)))),
8967            ),
8968            TypeVariant::ContractCostType => Box::new(
8969                ReadXdrIter::<_, Frame<ContractCostType>>::new(&mut r.inner, r.limits.clone())
8970                    .map(|r| r.map(|t| Self::ContractCostType(Box::new(t.0)))),
8971            ),
8972            TypeVariant::ContractCostParamEntry => Box::new(
8973                ReadXdrIter::<_, Frame<ContractCostParamEntry>>::new(
8974                    &mut r.inner,
8975                    r.limits.clone(),
8976                )
8977                .map(|r| r.map(|t| Self::ContractCostParamEntry(Box::new(t.0)))),
8978            ),
8979            TypeVariant::StateArchivalSettings => Box::new(
8980                ReadXdrIter::<_, Frame<StateArchivalSettings>>::new(&mut r.inner, r.limits.clone())
8981                    .map(|r| r.map(|t| Self::StateArchivalSettings(Box::new(t.0)))),
8982            ),
8983            TypeVariant::EvictionIterator => Box::new(
8984                ReadXdrIter::<_, Frame<EvictionIterator>>::new(&mut r.inner, r.limits.clone())
8985                    .map(|r| r.map(|t| Self::EvictionIterator(Box::new(t.0)))),
8986            ),
8987            TypeVariant::ConfigSettingScpTiming => Box::new(
8988                ReadXdrIter::<_, Frame<ConfigSettingScpTiming>>::new(
8989                    &mut r.inner,
8990                    r.limits.clone(),
8991                )
8992                .map(|r| r.map(|t| Self::ConfigSettingScpTiming(Box::new(t.0)))),
8993            ),
8994            TypeVariant::FrozenLedgerKeys => Box::new(
8995                ReadXdrIter::<_, Frame<FrozenLedgerKeys>>::new(&mut r.inner, r.limits.clone())
8996                    .map(|r| r.map(|t| Self::FrozenLedgerKeys(Box::new(t.0)))),
8997            ),
8998            TypeVariant::FrozenLedgerKeysDelta => Box::new(
8999                ReadXdrIter::<_, Frame<FrozenLedgerKeysDelta>>::new(&mut r.inner, r.limits.clone())
9000                    .map(|r| r.map(|t| Self::FrozenLedgerKeysDelta(Box::new(t.0)))),
9001            ),
9002            TypeVariant::FreezeBypassTxs => Box::new(
9003                ReadXdrIter::<_, Frame<FreezeBypassTxs>>::new(&mut r.inner, r.limits.clone())
9004                    .map(|r| r.map(|t| Self::FreezeBypassTxs(Box::new(t.0)))),
9005            ),
9006            TypeVariant::FreezeBypassTxsDelta => Box::new(
9007                ReadXdrIter::<_, Frame<FreezeBypassTxsDelta>>::new(&mut r.inner, r.limits.clone())
9008                    .map(|r| r.map(|t| Self::FreezeBypassTxsDelta(Box::new(t.0)))),
9009            ),
9010            TypeVariant::ContractCostParams => Box::new(
9011                ReadXdrIter::<_, Frame<ContractCostParams>>::new(&mut r.inner, r.limits.clone())
9012                    .map(|r| r.map(|t| Self::ContractCostParams(Box::new(t.0)))),
9013            ),
9014            TypeVariant::ConfigSettingId => Box::new(
9015                ReadXdrIter::<_, Frame<ConfigSettingId>>::new(&mut r.inner, r.limits.clone())
9016                    .map(|r| r.map(|t| Self::ConfigSettingId(Box::new(t.0)))),
9017            ),
9018            TypeVariant::ConfigSettingEntry => Box::new(
9019                ReadXdrIter::<_, Frame<ConfigSettingEntry>>::new(&mut r.inner, r.limits.clone())
9020                    .map(|r| r.map(|t| Self::ConfigSettingEntry(Box::new(t.0)))),
9021            ),
9022            TypeVariant::ScEnvMetaKind => Box::new(
9023                ReadXdrIter::<_, Frame<ScEnvMetaKind>>::new(&mut r.inner, r.limits.clone())
9024                    .map(|r| r.map(|t| Self::ScEnvMetaKind(Box::new(t.0)))),
9025            ),
9026            TypeVariant::ScEnvMetaEntry => Box::new(
9027                ReadXdrIter::<_, Frame<ScEnvMetaEntry>>::new(&mut r.inner, r.limits.clone())
9028                    .map(|r| r.map(|t| Self::ScEnvMetaEntry(Box::new(t.0)))),
9029            ),
9030            TypeVariant::ScEnvMetaEntryInterfaceVersion => Box::new(
9031                ReadXdrIter::<_, Frame<ScEnvMetaEntryInterfaceVersion>>::new(
9032                    &mut r.inner,
9033                    r.limits.clone(),
9034                )
9035                .map(|r| r.map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t.0)))),
9036            ),
9037            TypeVariant::ScMetaV0 => Box::new(
9038                ReadXdrIter::<_, Frame<ScMetaV0>>::new(&mut r.inner, r.limits.clone())
9039                    .map(|r| r.map(|t| Self::ScMetaV0(Box::new(t.0)))),
9040            ),
9041            TypeVariant::ScMetaKind => Box::new(
9042                ReadXdrIter::<_, Frame<ScMetaKind>>::new(&mut r.inner, r.limits.clone())
9043                    .map(|r| r.map(|t| Self::ScMetaKind(Box::new(t.0)))),
9044            ),
9045            TypeVariant::ScMetaEntry => Box::new(
9046                ReadXdrIter::<_, Frame<ScMetaEntry>>::new(&mut r.inner, r.limits.clone())
9047                    .map(|r| r.map(|t| Self::ScMetaEntry(Box::new(t.0)))),
9048            ),
9049            TypeVariant::ScSpecType => Box::new(
9050                ReadXdrIter::<_, Frame<ScSpecType>>::new(&mut r.inner, r.limits.clone())
9051                    .map(|r| r.map(|t| Self::ScSpecType(Box::new(t.0)))),
9052            ),
9053            TypeVariant::ScSpecTypeOption => Box::new(
9054                ReadXdrIter::<_, Frame<ScSpecTypeOption>>::new(&mut r.inner, r.limits.clone())
9055                    .map(|r| r.map(|t| Self::ScSpecTypeOption(Box::new(t.0)))),
9056            ),
9057            TypeVariant::ScSpecTypeResult => Box::new(
9058                ReadXdrIter::<_, Frame<ScSpecTypeResult>>::new(&mut r.inner, r.limits.clone())
9059                    .map(|r| r.map(|t| Self::ScSpecTypeResult(Box::new(t.0)))),
9060            ),
9061            TypeVariant::ScSpecTypeVec => Box::new(
9062                ReadXdrIter::<_, Frame<ScSpecTypeVec>>::new(&mut r.inner, r.limits.clone())
9063                    .map(|r| r.map(|t| Self::ScSpecTypeVec(Box::new(t.0)))),
9064            ),
9065            TypeVariant::ScSpecTypeMap => Box::new(
9066                ReadXdrIter::<_, Frame<ScSpecTypeMap>>::new(&mut r.inner, r.limits.clone())
9067                    .map(|r| r.map(|t| Self::ScSpecTypeMap(Box::new(t.0)))),
9068            ),
9069            TypeVariant::ScSpecTypeTuple => Box::new(
9070                ReadXdrIter::<_, Frame<ScSpecTypeTuple>>::new(&mut r.inner, r.limits.clone())
9071                    .map(|r| r.map(|t| Self::ScSpecTypeTuple(Box::new(t.0)))),
9072            ),
9073            TypeVariant::ScSpecTypeBytesN => Box::new(
9074                ReadXdrIter::<_, Frame<ScSpecTypeBytesN>>::new(&mut r.inner, r.limits.clone())
9075                    .map(|r| r.map(|t| Self::ScSpecTypeBytesN(Box::new(t.0)))),
9076            ),
9077            TypeVariant::ScSpecTypeUdt => Box::new(
9078                ReadXdrIter::<_, Frame<ScSpecTypeUdt>>::new(&mut r.inner, r.limits.clone())
9079                    .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t.0)))),
9080            ),
9081            TypeVariant::ScSpecTypeDef => Box::new(
9082                ReadXdrIter::<_, Frame<ScSpecTypeDef>>::new(&mut r.inner, r.limits.clone())
9083                    .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t.0)))),
9084            ),
9085            TypeVariant::ScSpecUdtStructFieldV0 => Box::new(
9086                ReadXdrIter::<_, Frame<ScSpecUdtStructFieldV0>>::new(
9087                    &mut r.inner,
9088                    r.limits.clone(),
9089                )
9090                .map(|r| r.map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t.0)))),
9091            ),
9092            TypeVariant::ScSpecUdtStructV0 => Box::new(
9093                ReadXdrIter::<_, Frame<ScSpecUdtStructV0>>::new(&mut r.inner, r.limits.clone())
9094                    .map(|r| r.map(|t| Self::ScSpecUdtStructV0(Box::new(t.0)))),
9095            ),
9096            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Box::new(
9097                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseVoidV0>>::new(
9098                    &mut r.inner,
9099                    r.limits.clone(),
9100                )
9101                .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t.0)))),
9102            ),
9103            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Box::new(
9104                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseTupleV0>>::new(
9105                    &mut r.inner,
9106                    r.limits.clone(),
9107                )
9108                .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t.0)))),
9109            ),
9110            TypeVariant::ScSpecUdtUnionCaseV0Kind => Box::new(
9111                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseV0Kind>>::new(
9112                    &mut r.inner,
9113                    r.limits.clone(),
9114                )
9115                .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t.0)))),
9116            ),
9117            TypeVariant::ScSpecUdtUnionCaseV0 => Box::new(
9118                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseV0>>::new(&mut r.inner, r.limits.clone())
9119                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t.0)))),
9120            ),
9121            TypeVariant::ScSpecUdtUnionV0 => Box::new(
9122                ReadXdrIter::<_, Frame<ScSpecUdtUnionV0>>::new(&mut r.inner, r.limits.clone())
9123                    .map(|r| r.map(|t| Self::ScSpecUdtUnionV0(Box::new(t.0)))),
9124            ),
9125            TypeVariant::ScSpecUdtEnumCaseV0 => Box::new(
9126                ReadXdrIter::<_, Frame<ScSpecUdtEnumCaseV0>>::new(&mut r.inner, r.limits.clone())
9127                    .map(|r| r.map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t.0)))),
9128            ),
9129            TypeVariant::ScSpecUdtEnumV0 => Box::new(
9130                ReadXdrIter::<_, Frame<ScSpecUdtEnumV0>>::new(&mut r.inner, r.limits.clone())
9131                    .map(|r| r.map(|t| Self::ScSpecUdtEnumV0(Box::new(t.0)))),
9132            ),
9133            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Box::new(
9134                ReadXdrIter::<_, Frame<ScSpecUdtErrorEnumCaseV0>>::new(
9135                    &mut r.inner,
9136                    r.limits.clone(),
9137                )
9138                .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t.0)))),
9139            ),
9140            TypeVariant::ScSpecUdtErrorEnumV0 => Box::new(
9141                ReadXdrIter::<_, Frame<ScSpecUdtErrorEnumV0>>::new(&mut r.inner, r.limits.clone())
9142                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t.0)))),
9143            ),
9144            TypeVariant::ScSpecFunctionInputV0 => Box::new(
9145                ReadXdrIter::<_, Frame<ScSpecFunctionInputV0>>::new(&mut r.inner, r.limits.clone())
9146                    .map(|r| r.map(|t| Self::ScSpecFunctionInputV0(Box::new(t.0)))),
9147            ),
9148            TypeVariant::ScSpecFunctionV0 => Box::new(
9149                ReadXdrIter::<_, Frame<ScSpecFunctionV0>>::new(&mut r.inner, r.limits.clone())
9150                    .map(|r| r.map(|t| Self::ScSpecFunctionV0(Box::new(t.0)))),
9151            ),
9152            TypeVariant::ScSpecEventParamLocationV0 => Box::new(
9153                ReadXdrIter::<_, Frame<ScSpecEventParamLocationV0>>::new(
9154                    &mut r.inner,
9155                    r.limits.clone(),
9156                )
9157                .map(|r| r.map(|t| Self::ScSpecEventParamLocationV0(Box::new(t.0)))),
9158            ),
9159            TypeVariant::ScSpecEventParamV0 => Box::new(
9160                ReadXdrIter::<_, Frame<ScSpecEventParamV0>>::new(&mut r.inner, r.limits.clone())
9161                    .map(|r| r.map(|t| Self::ScSpecEventParamV0(Box::new(t.0)))),
9162            ),
9163            TypeVariant::ScSpecEventDataFormat => Box::new(
9164                ReadXdrIter::<_, Frame<ScSpecEventDataFormat>>::new(&mut r.inner, r.limits.clone())
9165                    .map(|r| r.map(|t| Self::ScSpecEventDataFormat(Box::new(t.0)))),
9166            ),
9167            TypeVariant::ScSpecEventV0 => Box::new(
9168                ReadXdrIter::<_, Frame<ScSpecEventV0>>::new(&mut r.inner, r.limits.clone())
9169                    .map(|r| r.map(|t| Self::ScSpecEventV0(Box::new(t.0)))),
9170            ),
9171            TypeVariant::ScSpecEntryKind => Box::new(
9172                ReadXdrIter::<_, Frame<ScSpecEntryKind>>::new(&mut r.inner, r.limits.clone())
9173                    .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t.0)))),
9174            ),
9175            TypeVariant::ScSpecEntry => Box::new(
9176                ReadXdrIter::<_, Frame<ScSpecEntry>>::new(&mut r.inner, r.limits.clone())
9177                    .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t.0)))),
9178            ),
9179            TypeVariant::ScValType => Box::new(
9180                ReadXdrIter::<_, Frame<ScValType>>::new(&mut r.inner, r.limits.clone())
9181                    .map(|r| r.map(|t| Self::ScValType(Box::new(t.0)))),
9182            ),
9183            TypeVariant::ScErrorType => Box::new(
9184                ReadXdrIter::<_, Frame<ScErrorType>>::new(&mut r.inner, r.limits.clone())
9185                    .map(|r| r.map(|t| Self::ScErrorType(Box::new(t.0)))),
9186            ),
9187            TypeVariant::ScErrorCode => Box::new(
9188                ReadXdrIter::<_, Frame<ScErrorCode>>::new(&mut r.inner, r.limits.clone())
9189                    .map(|r| r.map(|t| Self::ScErrorCode(Box::new(t.0)))),
9190            ),
9191            TypeVariant::ScError => Box::new(
9192                ReadXdrIter::<_, Frame<ScError>>::new(&mut r.inner, r.limits.clone())
9193                    .map(|r| r.map(|t| Self::ScError(Box::new(t.0)))),
9194            ),
9195            TypeVariant::UInt128Parts => Box::new(
9196                ReadXdrIter::<_, Frame<UInt128Parts>>::new(&mut r.inner, r.limits.clone())
9197                    .map(|r| r.map(|t| Self::UInt128Parts(Box::new(t.0)))),
9198            ),
9199            TypeVariant::Int128Parts => Box::new(
9200                ReadXdrIter::<_, Frame<Int128Parts>>::new(&mut r.inner, r.limits.clone())
9201                    .map(|r| r.map(|t| Self::Int128Parts(Box::new(t.0)))),
9202            ),
9203            TypeVariant::UInt256Parts => Box::new(
9204                ReadXdrIter::<_, Frame<UInt256Parts>>::new(&mut r.inner, r.limits.clone())
9205                    .map(|r| r.map(|t| Self::UInt256Parts(Box::new(t.0)))),
9206            ),
9207            TypeVariant::Int256Parts => Box::new(
9208                ReadXdrIter::<_, Frame<Int256Parts>>::new(&mut r.inner, r.limits.clone())
9209                    .map(|r| r.map(|t| Self::Int256Parts(Box::new(t.0)))),
9210            ),
9211            TypeVariant::ContractExecutableType => Box::new(
9212                ReadXdrIter::<_, Frame<ContractExecutableType>>::new(
9213                    &mut r.inner,
9214                    r.limits.clone(),
9215                )
9216                .map(|r| r.map(|t| Self::ContractExecutableType(Box::new(t.0)))),
9217            ),
9218            TypeVariant::ContractExecutable => Box::new(
9219                ReadXdrIter::<_, Frame<ContractExecutable>>::new(&mut r.inner, r.limits.clone())
9220                    .map(|r| r.map(|t| Self::ContractExecutable(Box::new(t.0)))),
9221            ),
9222            TypeVariant::ScAddressType => Box::new(
9223                ReadXdrIter::<_, Frame<ScAddressType>>::new(&mut r.inner, r.limits.clone())
9224                    .map(|r| r.map(|t| Self::ScAddressType(Box::new(t.0)))),
9225            ),
9226            TypeVariant::MuxedEd25519Account => Box::new(
9227                ReadXdrIter::<_, Frame<MuxedEd25519Account>>::new(&mut r.inner, r.limits.clone())
9228                    .map(|r| r.map(|t| Self::MuxedEd25519Account(Box::new(t.0)))),
9229            ),
9230            TypeVariant::ScAddress => Box::new(
9231                ReadXdrIter::<_, Frame<ScAddress>>::new(&mut r.inner, r.limits.clone())
9232                    .map(|r| r.map(|t| Self::ScAddress(Box::new(t.0)))),
9233            ),
9234            TypeVariant::ScVec => Box::new(
9235                ReadXdrIter::<_, Frame<ScVec>>::new(&mut r.inner, r.limits.clone())
9236                    .map(|r| r.map(|t| Self::ScVec(Box::new(t.0)))),
9237            ),
9238            TypeVariant::ScMap => Box::new(
9239                ReadXdrIter::<_, Frame<ScMap>>::new(&mut r.inner, r.limits.clone())
9240                    .map(|r| r.map(|t| Self::ScMap(Box::new(t.0)))),
9241            ),
9242            TypeVariant::ScBytes => Box::new(
9243                ReadXdrIter::<_, Frame<ScBytes>>::new(&mut r.inner, r.limits.clone())
9244                    .map(|r| r.map(|t| Self::ScBytes(Box::new(t.0)))),
9245            ),
9246            TypeVariant::ScString => Box::new(
9247                ReadXdrIter::<_, Frame<ScString>>::new(&mut r.inner, r.limits.clone())
9248                    .map(|r| r.map(|t| Self::ScString(Box::new(t.0)))),
9249            ),
9250            TypeVariant::ScSymbol => Box::new(
9251                ReadXdrIter::<_, Frame<ScSymbol>>::new(&mut r.inner, r.limits.clone())
9252                    .map(|r| r.map(|t| Self::ScSymbol(Box::new(t.0)))),
9253            ),
9254            TypeVariant::ScNonceKey => Box::new(
9255                ReadXdrIter::<_, Frame<ScNonceKey>>::new(&mut r.inner, r.limits.clone())
9256                    .map(|r| r.map(|t| Self::ScNonceKey(Box::new(t.0)))),
9257            ),
9258            TypeVariant::ScContractInstance => Box::new(
9259                ReadXdrIter::<_, Frame<ScContractInstance>>::new(&mut r.inner, r.limits.clone())
9260                    .map(|r| r.map(|t| Self::ScContractInstance(Box::new(t.0)))),
9261            ),
9262            TypeVariant::ScVal => Box::new(
9263                ReadXdrIter::<_, Frame<ScVal>>::new(&mut r.inner, r.limits.clone())
9264                    .map(|r| r.map(|t| Self::ScVal(Box::new(t.0)))),
9265            ),
9266            TypeVariant::ScMapEntry => Box::new(
9267                ReadXdrIter::<_, Frame<ScMapEntry>>::new(&mut r.inner, r.limits.clone())
9268                    .map(|r| r.map(|t| Self::ScMapEntry(Box::new(t.0)))),
9269            ),
9270            TypeVariant::LedgerCloseMetaBatch => Box::new(
9271                ReadXdrIter::<_, Frame<LedgerCloseMetaBatch>>::new(&mut r.inner, r.limits.clone())
9272                    .map(|r| r.map(|t| Self::LedgerCloseMetaBatch(Box::new(t.0)))),
9273            ),
9274            TypeVariant::StoredTransactionSet => Box::new(
9275                ReadXdrIter::<_, Frame<StoredTransactionSet>>::new(&mut r.inner, r.limits.clone())
9276                    .map(|r| r.map(|t| Self::StoredTransactionSet(Box::new(t.0)))),
9277            ),
9278            TypeVariant::StoredDebugTransactionSet => Box::new(
9279                ReadXdrIter::<_, Frame<StoredDebugTransactionSet>>::new(
9280                    &mut r.inner,
9281                    r.limits.clone(),
9282                )
9283                .map(|r| r.map(|t| Self::StoredDebugTransactionSet(Box::new(t.0)))),
9284            ),
9285            TypeVariant::PersistedScpStateV0 => Box::new(
9286                ReadXdrIter::<_, Frame<PersistedScpStateV0>>::new(&mut r.inner, r.limits.clone())
9287                    .map(|r| r.map(|t| Self::PersistedScpStateV0(Box::new(t.0)))),
9288            ),
9289            TypeVariant::PersistedScpStateV1 => Box::new(
9290                ReadXdrIter::<_, Frame<PersistedScpStateV1>>::new(&mut r.inner, r.limits.clone())
9291                    .map(|r| r.map(|t| Self::PersistedScpStateV1(Box::new(t.0)))),
9292            ),
9293            TypeVariant::PersistedScpState => Box::new(
9294                ReadXdrIter::<_, Frame<PersistedScpState>>::new(&mut r.inner, r.limits.clone())
9295                    .map(|r| r.map(|t| Self::PersistedScpState(Box::new(t.0)))),
9296            ),
9297            TypeVariant::Thresholds => Box::new(
9298                ReadXdrIter::<_, Frame<Thresholds>>::new(&mut r.inner, r.limits.clone())
9299                    .map(|r| r.map(|t| Self::Thresholds(Box::new(t.0)))),
9300            ),
9301            TypeVariant::String32 => Box::new(
9302                ReadXdrIter::<_, Frame<String32>>::new(&mut r.inner, r.limits.clone())
9303                    .map(|r| r.map(|t| Self::String32(Box::new(t.0)))),
9304            ),
9305            TypeVariant::String64 => Box::new(
9306                ReadXdrIter::<_, Frame<String64>>::new(&mut r.inner, r.limits.clone())
9307                    .map(|r| r.map(|t| Self::String64(Box::new(t.0)))),
9308            ),
9309            TypeVariant::SequenceNumber => Box::new(
9310                ReadXdrIter::<_, Frame<SequenceNumber>>::new(&mut r.inner, r.limits.clone())
9311                    .map(|r| r.map(|t| Self::SequenceNumber(Box::new(t.0)))),
9312            ),
9313            TypeVariant::DataValue => Box::new(
9314                ReadXdrIter::<_, Frame<DataValue>>::new(&mut r.inner, r.limits.clone())
9315                    .map(|r| r.map(|t| Self::DataValue(Box::new(t.0)))),
9316            ),
9317            TypeVariant::AssetCode4 => Box::new(
9318                ReadXdrIter::<_, Frame<AssetCode4>>::new(&mut r.inner, r.limits.clone())
9319                    .map(|r| r.map(|t| Self::AssetCode4(Box::new(t.0)))),
9320            ),
9321            TypeVariant::AssetCode12 => Box::new(
9322                ReadXdrIter::<_, Frame<AssetCode12>>::new(&mut r.inner, r.limits.clone())
9323                    .map(|r| r.map(|t| Self::AssetCode12(Box::new(t.0)))),
9324            ),
9325            TypeVariant::AssetType => Box::new(
9326                ReadXdrIter::<_, Frame<AssetType>>::new(&mut r.inner, r.limits.clone())
9327                    .map(|r| r.map(|t| Self::AssetType(Box::new(t.0)))),
9328            ),
9329            TypeVariant::AssetCode => Box::new(
9330                ReadXdrIter::<_, Frame<AssetCode>>::new(&mut r.inner, r.limits.clone())
9331                    .map(|r| r.map(|t| Self::AssetCode(Box::new(t.0)))),
9332            ),
9333            TypeVariant::AlphaNum4 => Box::new(
9334                ReadXdrIter::<_, Frame<AlphaNum4>>::new(&mut r.inner, r.limits.clone())
9335                    .map(|r| r.map(|t| Self::AlphaNum4(Box::new(t.0)))),
9336            ),
9337            TypeVariant::AlphaNum12 => Box::new(
9338                ReadXdrIter::<_, Frame<AlphaNum12>>::new(&mut r.inner, r.limits.clone())
9339                    .map(|r| r.map(|t| Self::AlphaNum12(Box::new(t.0)))),
9340            ),
9341            TypeVariant::Asset => Box::new(
9342                ReadXdrIter::<_, Frame<Asset>>::new(&mut r.inner, r.limits.clone())
9343                    .map(|r| r.map(|t| Self::Asset(Box::new(t.0)))),
9344            ),
9345            TypeVariant::Price => Box::new(
9346                ReadXdrIter::<_, Frame<Price>>::new(&mut r.inner, r.limits.clone())
9347                    .map(|r| r.map(|t| Self::Price(Box::new(t.0)))),
9348            ),
9349            TypeVariant::Liabilities => Box::new(
9350                ReadXdrIter::<_, Frame<Liabilities>>::new(&mut r.inner, r.limits.clone())
9351                    .map(|r| r.map(|t| Self::Liabilities(Box::new(t.0)))),
9352            ),
9353            TypeVariant::ThresholdIndexes => Box::new(
9354                ReadXdrIter::<_, Frame<ThresholdIndexes>>::new(&mut r.inner, r.limits.clone())
9355                    .map(|r| r.map(|t| Self::ThresholdIndexes(Box::new(t.0)))),
9356            ),
9357            TypeVariant::LedgerEntryType => Box::new(
9358                ReadXdrIter::<_, Frame<LedgerEntryType>>::new(&mut r.inner, r.limits.clone())
9359                    .map(|r| r.map(|t| Self::LedgerEntryType(Box::new(t.0)))),
9360            ),
9361            TypeVariant::Signer => Box::new(
9362                ReadXdrIter::<_, Frame<Signer>>::new(&mut r.inner, r.limits.clone())
9363                    .map(|r| r.map(|t| Self::Signer(Box::new(t.0)))),
9364            ),
9365            TypeVariant::AccountFlags => Box::new(
9366                ReadXdrIter::<_, Frame<AccountFlags>>::new(&mut r.inner, r.limits.clone())
9367                    .map(|r| r.map(|t| Self::AccountFlags(Box::new(t.0)))),
9368            ),
9369            TypeVariant::SponsorshipDescriptor => Box::new(
9370                ReadXdrIter::<_, Frame<SponsorshipDescriptor>>::new(&mut r.inner, r.limits.clone())
9371                    .map(|r| r.map(|t| Self::SponsorshipDescriptor(Box::new(t.0)))),
9372            ),
9373            TypeVariant::AccountEntryExtensionV3 => Box::new(
9374                ReadXdrIter::<_, Frame<AccountEntryExtensionV3>>::new(
9375                    &mut r.inner,
9376                    r.limits.clone(),
9377                )
9378                .map(|r| r.map(|t| Self::AccountEntryExtensionV3(Box::new(t.0)))),
9379            ),
9380            TypeVariant::AccountEntryExtensionV2 => Box::new(
9381                ReadXdrIter::<_, Frame<AccountEntryExtensionV2>>::new(
9382                    &mut r.inner,
9383                    r.limits.clone(),
9384                )
9385                .map(|r| r.map(|t| Self::AccountEntryExtensionV2(Box::new(t.0)))),
9386            ),
9387            TypeVariant::AccountEntryExtensionV2Ext => Box::new(
9388                ReadXdrIter::<_, Frame<AccountEntryExtensionV2Ext>>::new(
9389                    &mut r.inner,
9390                    r.limits.clone(),
9391                )
9392                .map(|r| r.map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t.0)))),
9393            ),
9394            TypeVariant::AccountEntryExtensionV1 => Box::new(
9395                ReadXdrIter::<_, Frame<AccountEntryExtensionV1>>::new(
9396                    &mut r.inner,
9397                    r.limits.clone(),
9398                )
9399                .map(|r| r.map(|t| Self::AccountEntryExtensionV1(Box::new(t.0)))),
9400            ),
9401            TypeVariant::AccountEntryExtensionV1Ext => Box::new(
9402                ReadXdrIter::<_, Frame<AccountEntryExtensionV1Ext>>::new(
9403                    &mut r.inner,
9404                    r.limits.clone(),
9405                )
9406                .map(|r| r.map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t.0)))),
9407            ),
9408            TypeVariant::AccountEntry => Box::new(
9409                ReadXdrIter::<_, Frame<AccountEntry>>::new(&mut r.inner, r.limits.clone())
9410                    .map(|r| r.map(|t| Self::AccountEntry(Box::new(t.0)))),
9411            ),
9412            TypeVariant::AccountEntryExt => Box::new(
9413                ReadXdrIter::<_, Frame<AccountEntryExt>>::new(&mut r.inner, r.limits.clone())
9414                    .map(|r| r.map(|t| Self::AccountEntryExt(Box::new(t.0)))),
9415            ),
9416            TypeVariant::TrustLineFlags => Box::new(
9417                ReadXdrIter::<_, Frame<TrustLineFlags>>::new(&mut r.inner, r.limits.clone())
9418                    .map(|r| r.map(|t| Self::TrustLineFlags(Box::new(t.0)))),
9419            ),
9420            TypeVariant::LiquidityPoolType => Box::new(
9421                ReadXdrIter::<_, Frame<LiquidityPoolType>>::new(&mut r.inner, r.limits.clone())
9422                    .map(|r| r.map(|t| Self::LiquidityPoolType(Box::new(t.0)))),
9423            ),
9424            TypeVariant::TrustLineAsset => Box::new(
9425                ReadXdrIter::<_, Frame<TrustLineAsset>>::new(&mut r.inner, r.limits.clone())
9426                    .map(|r| r.map(|t| Self::TrustLineAsset(Box::new(t.0)))),
9427            ),
9428            TypeVariant::TrustLineEntryExtensionV2 => Box::new(
9429                ReadXdrIter::<_, Frame<TrustLineEntryExtensionV2>>::new(
9430                    &mut r.inner,
9431                    r.limits.clone(),
9432                )
9433                .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2(Box::new(t.0)))),
9434            ),
9435            TypeVariant::TrustLineEntryExtensionV2Ext => Box::new(
9436                ReadXdrIter::<_, Frame<TrustLineEntryExtensionV2Ext>>::new(
9437                    &mut r.inner,
9438                    r.limits.clone(),
9439                )
9440                .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t.0)))),
9441            ),
9442            TypeVariant::TrustLineEntry => Box::new(
9443                ReadXdrIter::<_, Frame<TrustLineEntry>>::new(&mut r.inner, r.limits.clone())
9444                    .map(|r| r.map(|t| Self::TrustLineEntry(Box::new(t.0)))),
9445            ),
9446            TypeVariant::TrustLineEntryExt => Box::new(
9447                ReadXdrIter::<_, Frame<TrustLineEntryExt>>::new(&mut r.inner, r.limits.clone())
9448                    .map(|r| r.map(|t| Self::TrustLineEntryExt(Box::new(t.0)))),
9449            ),
9450            TypeVariant::TrustLineEntryV1 => Box::new(
9451                ReadXdrIter::<_, Frame<TrustLineEntryV1>>::new(&mut r.inner, r.limits.clone())
9452                    .map(|r| r.map(|t| Self::TrustLineEntryV1(Box::new(t.0)))),
9453            ),
9454            TypeVariant::TrustLineEntryV1Ext => Box::new(
9455                ReadXdrIter::<_, Frame<TrustLineEntryV1Ext>>::new(&mut r.inner, r.limits.clone())
9456                    .map(|r| r.map(|t| Self::TrustLineEntryV1Ext(Box::new(t.0)))),
9457            ),
9458            TypeVariant::OfferEntryFlags => Box::new(
9459                ReadXdrIter::<_, Frame<OfferEntryFlags>>::new(&mut r.inner, r.limits.clone())
9460                    .map(|r| r.map(|t| Self::OfferEntryFlags(Box::new(t.0)))),
9461            ),
9462            TypeVariant::OfferEntry => Box::new(
9463                ReadXdrIter::<_, Frame<OfferEntry>>::new(&mut r.inner, r.limits.clone())
9464                    .map(|r| r.map(|t| Self::OfferEntry(Box::new(t.0)))),
9465            ),
9466            TypeVariant::OfferEntryExt => Box::new(
9467                ReadXdrIter::<_, Frame<OfferEntryExt>>::new(&mut r.inner, r.limits.clone())
9468                    .map(|r| r.map(|t| Self::OfferEntryExt(Box::new(t.0)))),
9469            ),
9470            TypeVariant::DataEntry => Box::new(
9471                ReadXdrIter::<_, Frame<DataEntry>>::new(&mut r.inner, r.limits.clone())
9472                    .map(|r| r.map(|t| Self::DataEntry(Box::new(t.0)))),
9473            ),
9474            TypeVariant::DataEntryExt => Box::new(
9475                ReadXdrIter::<_, Frame<DataEntryExt>>::new(&mut r.inner, r.limits.clone())
9476                    .map(|r| r.map(|t| Self::DataEntryExt(Box::new(t.0)))),
9477            ),
9478            TypeVariant::ClaimPredicateType => Box::new(
9479                ReadXdrIter::<_, Frame<ClaimPredicateType>>::new(&mut r.inner, r.limits.clone())
9480                    .map(|r| r.map(|t| Self::ClaimPredicateType(Box::new(t.0)))),
9481            ),
9482            TypeVariant::ClaimPredicate => Box::new(
9483                ReadXdrIter::<_, Frame<ClaimPredicate>>::new(&mut r.inner, r.limits.clone())
9484                    .map(|r| r.map(|t| Self::ClaimPredicate(Box::new(t.0)))),
9485            ),
9486            TypeVariant::ClaimantType => Box::new(
9487                ReadXdrIter::<_, Frame<ClaimantType>>::new(&mut r.inner, r.limits.clone())
9488                    .map(|r| r.map(|t| Self::ClaimantType(Box::new(t.0)))),
9489            ),
9490            TypeVariant::Claimant => Box::new(
9491                ReadXdrIter::<_, Frame<Claimant>>::new(&mut r.inner, r.limits.clone())
9492                    .map(|r| r.map(|t| Self::Claimant(Box::new(t.0)))),
9493            ),
9494            TypeVariant::ClaimantV0 => Box::new(
9495                ReadXdrIter::<_, Frame<ClaimantV0>>::new(&mut r.inner, r.limits.clone())
9496                    .map(|r| r.map(|t| Self::ClaimantV0(Box::new(t.0)))),
9497            ),
9498            TypeVariant::ClaimableBalanceFlags => Box::new(
9499                ReadXdrIter::<_, Frame<ClaimableBalanceFlags>>::new(&mut r.inner, r.limits.clone())
9500                    .map(|r| r.map(|t| Self::ClaimableBalanceFlags(Box::new(t.0)))),
9501            ),
9502            TypeVariant::ClaimableBalanceEntryExtensionV1 => Box::new(
9503                ReadXdrIter::<_, Frame<ClaimableBalanceEntryExtensionV1>>::new(
9504                    &mut r.inner,
9505                    r.limits.clone(),
9506                )
9507                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t.0)))),
9508            ),
9509            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Box::new(
9510                ReadXdrIter::<_, Frame<ClaimableBalanceEntryExtensionV1Ext>>::new(
9511                    &mut r.inner,
9512                    r.limits.clone(),
9513                )
9514                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t.0)))),
9515            ),
9516            TypeVariant::ClaimableBalanceEntry => Box::new(
9517                ReadXdrIter::<_, Frame<ClaimableBalanceEntry>>::new(&mut r.inner, r.limits.clone())
9518                    .map(|r| r.map(|t| Self::ClaimableBalanceEntry(Box::new(t.0)))),
9519            ),
9520            TypeVariant::ClaimableBalanceEntryExt => Box::new(
9521                ReadXdrIter::<_, Frame<ClaimableBalanceEntryExt>>::new(
9522                    &mut r.inner,
9523                    r.limits.clone(),
9524                )
9525                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExt(Box::new(t.0)))),
9526            ),
9527            TypeVariant::LiquidityPoolConstantProductParameters => Box::new(
9528                ReadXdrIter::<_, Frame<LiquidityPoolConstantProductParameters>>::new(
9529                    &mut r.inner,
9530                    r.limits.clone(),
9531                )
9532                .map(|r| r.map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t.0)))),
9533            ),
9534            TypeVariant::LiquidityPoolEntry => Box::new(
9535                ReadXdrIter::<_, Frame<LiquidityPoolEntry>>::new(&mut r.inner, r.limits.clone())
9536                    .map(|r| r.map(|t| Self::LiquidityPoolEntry(Box::new(t.0)))),
9537            ),
9538            TypeVariant::LiquidityPoolEntryBody => Box::new(
9539                ReadXdrIter::<_, Frame<LiquidityPoolEntryBody>>::new(
9540                    &mut r.inner,
9541                    r.limits.clone(),
9542                )
9543                .map(|r| r.map(|t| Self::LiquidityPoolEntryBody(Box::new(t.0)))),
9544            ),
9545            TypeVariant::LiquidityPoolEntryConstantProduct => Box::new(
9546                ReadXdrIter::<_, Frame<LiquidityPoolEntryConstantProduct>>::new(
9547                    &mut r.inner,
9548                    r.limits.clone(),
9549                )
9550                .map(|r| r.map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t.0)))),
9551            ),
9552            TypeVariant::ContractDataDurability => Box::new(
9553                ReadXdrIter::<_, Frame<ContractDataDurability>>::new(
9554                    &mut r.inner,
9555                    r.limits.clone(),
9556                )
9557                .map(|r| r.map(|t| Self::ContractDataDurability(Box::new(t.0)))),
9558            ),
9559            TypeVariant::ContractDataEntry => Box::new(
9560                ReadXdrIter::<_, Frame<ContractDataEntry>>::new(&mut r.inner, r.limits.clone())
9561                    .map(|r| r.map(|t| Self::ContractDataEntry(Box::new(t.0)))),
9562            ),
9563            TypeVariant::ContractCodeCostInputs => Box::new(
9564                ReadXdrIter::<_, Frame<ContractCodeCostInputs>>::new(
9565                    &mut r.inner,
9566                    r.limits.clone(),
9567                )
9568                .map(|r| r.map(|t| Self::ContractCodeCostInputs(Box::new(t.0)))),
9569            ),
9570            TypeVariant::ContractCodeEntry => Box::new(
9571                ReadXdrIter::<_, Frame<ContractCodeEntry>>::new(&mut r.inner, r.limits.clone())
9572                    .map(|r| r.map(|t| Self::ContractCodeEntry(Box::new(t.0)))),
9573            ),
9574            TypeVariant::ContractCodeEntryExt => Box::new(
9575                ReadXdrIter::<_, Frame<ContractCodeEntryExt>>::new(&mut r.inner, r.limits.clone())
9576                    .map(|r| r.map(|t| Self::ContractCodeEntryExt(Box::new(t.0)))),
9577            ),
9578            TypeVariant::ContractCodeEntryV1 => Box::new(
9579                ReadXdrIter::<_, Frame<ContractCodeEntryV1>>::new(&mut r.inner, r.limits.clone())
9580                    .map(|r| r.map(|t| Self::ContractCodeEntryV1(Box::new(t.0)))),
9581            ),
9582            TypeVariant::TtlEntry => Box::new(
9583                ReadXdrIter::<_, Frame<TtlEntry>>::new(&mut r.inner, r.limits.clone())
9584                    .map(|r| r.map(|t| Self::TtlEntry(Box::new(t.0)))),
9585            ),
9586            TypeVariant::LedgerEntryExtensionV1 => Box::new(
9587                ReadXdrIter::<_, Frame<LedgerEntryExtensionV1>>::new(
9588                    &mut r.inner,
9589                    r.limits.clone(),
9590                )
9591                .map(|r| r.map(|t| Self::LedgerEntryExtensionV1(Box::new(t.0)))),
9592            ),
9593            TypeVariant::LedgerEntryExtensionV1Ext => Box::new(
9594                ReadXdrIter::<_, Frame<LedgerEntryExtensionV1Ext>>::new(
9595                    &mut r.inner,
9596                    r.limits.clone(),
9597                )
9598                .map(|r| r.map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t.0)))),
9599            ),
9600            TypeVariant::LedgerEntry => Box::new(
9601                ReadXdrIter::<_, Frame<LedgerEntry>>::new(&mut r.inner, r.limits.clone())
9602                    .map(|r| r.map(|t| Self::LedgerEntry(Box::new(t.0)))),
9603            ),
9604            TypeVariant::LedgerEntryData => Box::new(
9605                ReadXdrIter::<_, Frame<LedgerEntryData>>::new(&mut r.inner, r.limits.clone())
9606                    .map(|r| r.map(|t| Self::LedgerEntryData(Box::new(t.0)))),
9607            ),
9608            TypeVariant::LedgerEntryExt => Box::new(
9609                ReadXdrIter::<_, Frame<LedgerEntryExt>>::new(&mut r.inner, r.limits.clone())
9610                    .map(|r| r.map(|t| Self::LedgerEntryExt(Box::new(t.0)))),
9611            ),
9612            TypeVariant::LedgerKey => Box::new(
9613                ReadXdrIter::<_, Frame<LedgerKey>>::new(&mut r.inner, r.limits.clone())
9614                    .map(|r| r.map(|t| Self::LedgerKey(Box::new(t.0)))),
9615            ),
9616            TypeVariant::LedgerKeyAccount => Box::new(
9617                ReadXdrIter::<_, Frame<LedgerKeyAccount>>::new(&mut r.inner, r.limits.clone())
9618                    .map(|r| r.map(|t| Self::LedgerKeyAccount(Box::new(t.0)))),
9619            ),
9620            TypeVariant::LedgerKeyTrustLine => Box::new(
9621                ReadXdrIter::<_, Frame<LedgerKeyTrustLine>>::new(&mut r.inner, r.limits.clone())
9622                    .map(|r| r.map(|t| Self::LedgerKeyTrustLine(Box::new(t.0)))),
9623            ),
9624            TypeVariant::LedgerKeyOffer => Box::new(
9625                ReadXdrIter::<_, Frame<LedgerKeyOffer>>::new(&mut r.inner, r.limits.clone())
9626                    .map(|r| r.map(|t| Self::LedgerKeyOffer(Box::new(t.0)))),
9627            ),
9628            TypeVariant::LedgerKeyData => Box::new(
9629                ReadXdrIter::<_, Frame<LedgerKeyData>>::new(&mut r.inner, r.limits.clone())
9630                    .map(|r| r.map(|t| Self::LedgerKeyData(Box::new(t.0)))),
9631            ),
9632            TypeVariant::LedgerKeyClaimableBalance => Box::new(
9633                ReadXdrIter::<_, Frame<LedgerKeyClaimableBalance>>::new(
9634                    &mut r.inner,
9635                    r.limits.clone(),
9636                )
9637                .map(|r| r.map(|t| Self::LedgerKeyClaimableBalance(Box::new(t.0)))),
9638            ),
9639            TypeVariant::LedgerKeyLiquidityPool => Box::new(
9640                ReadXdrIter::<_, Frame<LedgerKeyLiquidityPool>>::new(
9641                    &mut r.inner,
9642                    r.limits.clone(),
9643                )
9644                .map(|r| r.map(|t| Self::LedgerKeyLiquidityPool(Box::new(t.0)))),
9645            ),
9646            TypeVariant::LedgerKeyContractData => Box::new(
9647                ReadXdrIter::<_, Frame<LedgerKeyContractData>>::new(&mut r.inner, r.limits.clone())
9648                    .map(|r| r.map(|t| Self::LedgerKeyContractData(Box::new(t.0)))),
9649            ),
9650            TypeVariant::LedgerKeyContractCode => Box::new(
9651                ReadXdrIter::<_, Frame<LedgerKeyContractCode>>::new(&mut r.inner, r.limits.clone())
9652                    .map(|r| r.map(|t| Self::LedgerKeyContractCode(Box::new(t.0)))),
9653            ),
9654            TypeVariant::LedgerKeyConfigSetting => Box::new(
9655                ReadXdrIter::<_, Frame<LedgerKeyConfigSetting>>::new(
9656                    &mut r.inner,
9657                    r.limits.clone(),
9658                )
9659                .map(|r| r.map(|t| Self::LedgerKeyConfigSetting(Box::new(t.0)))),
9660            ),
9661            TypeVariant::LedgerKeyTtl => Box::new(
9662                ReadXdrIter::<_, Frame<LedgerKeyTtl>>::new(&mut r.inner, r.limits.clone())
9663                    .map(|r| r.map(|t| Self::LedgerKeyTtl(Box::new(t.0)))),
9664            ),
9665            TypeVariant::EnvelopeType => Box::new(
9666                ReadXdrIter::<_, Frame<EnvelopeType>>::new(&mut r.inner, r.limits.clone())
9667                    .map(|r| r.map(|t| Self::EnvelopeType(Box::new(t.0)))),
9668            ),
9669            TypeVariant::BucketListType => Box::new(
9670                ReadXdrIter::<_, Frame<BucketListType>>::new(&mut r.inner, r.limits.clone())
9671                    .map(|r| r.map(|t| Self::BucketListType(Box::new(t.0)))),
9672            ),
9673            TypeVariant::BucketEntryType => Box::new(
9674                ReadXdrIter::<_, Frame<BucketEntryType>>::new(&mut r.inner, r.limits.clone())
9675                    .map(|r| r.map(|t| Self::BucketEntryType(Box::new(t.0)))),
9676            ),
9677            TypeVariant::HotArchiveBucketEntryType => Box::new(
9678                ReadXdrIter::<_, Frame<HotArchiveBucketEntryType>>::new(
9679                    &mut r.inner,
9680                    r.limits.clone(),
9681                )
9682                .map(|r| r.map(|t| Self::HotArchiveBucketEntryType(Box::new(t.0)))),
9683            ),
9684            TypeVariant::BucketMetadata => Box::new(
9685                ReadXdrIter::<_, Frame<BucketMetadata>>::new(&mut r.inner, r.limits.clone())
9686                    .map(|r| r.map(|t| Self::BucketMetadata(Box::new(t.0)))),
9687            ),
9688            TypeVariant::BucketMetadataExt => Box::new(
9689                ReadXdrIter::<_, Frame<BucketMetadataExt>>::new(&mut r.inner, r.limits.clone())
9690                    .map(|r| r.map(|t| Self::BucketMetadataExt(Box::new(t.0)))),
9691            ),
9692            TypeVariant::BucketEntry => Box::new(
9693                ReadXdrIter::<_, Frame<BucketEntry>>::new(&mut r.inner, r.limits.clone())
9694                    .map(|r| r.map(|t| Self::BucketEntry(Box::new(t.0)))),
9695            ),
9696            TypeVariant::HotArchiveBucketEntry => Box::new(
9697                ReadXdrIter::<_, Frame<HotArchiveBucketEntry>>::new(&mut r.inner, r.limits.clone())
9698                    .map(|r| r.map(|t| Self::HotArchiveBucketEntry(Box::new(t.0)))),
9699            ),
9700            TypeVariant::UpgradeType => Box::new(
9701                ReadXdrIter::<_, Frame<UpgradeType>>::new(&mut r.inner, r.limits.clone())
9702                    .map(|r| r.map(|t| Self::UpgradeType(Box::new(t.0)))),
9703            ),
9704            TypeVariant::StellarValueType => Box::new(
9705                ReadXdrIter::<_, Frame<StellarValueType>>::new(&mut r.inner, r.limits.clone())
9706                    .map(|r| r.map(|t| Self::StellarValueType(Box::new(t.0)))),
9707            ),
9708            TypeVariant::LedgerCloseValueSignature => Box::new(
9709                ReadXdrIter::<_, Frame<LedgerCloseValueSignature>>::new(
9710                    &mut r.inner,
9711                    r.limits.clone(),
9712                )
9713                .map(|r| r.map(|t| Self::LedgerCloseValueSignature(Box::new(t.0)))),
9714            ),
9715            TypeVariant::StellarValue => Box::new(
9716                ReadXdrIter::<_, Frame<StellarValue>>::new(&mut r.inner, r.limits.clone())
9717                    .map(|r| r.map(|t| Self::StellarValue(Box::new(t.0)))),
9718            ),
9719            TypeVariant::StellarValueExt => Box::new(
9720                ReadXdrIter::<_, Frame<StellarValueExt>>::new(&mut r.inner, r.limits.clone())
9721                    .map(|r| r.map(|t| Self::StellarValueExt(Box::new(t.0)))),
9722            ),
9723            #[cfg(feature = "cap_0083")]
9724            TypeVariant::StellarValueProposedValue => Box::new(
9725                ReadXdrIter::<_, Frame<StellarValueProposedValue>>::new(
9726                    &mut r.inner,
9727                    r.limits.clone(),
9728                )
9729                .map(|r| r.map(|t| Self::StellarValueProposedValue(Box::new(t.0)))),
9730            ),
9731            TypeVariant::LedgerHeaderFlags => Box::new(
9732                ReadXdrIter::<_, Frame<LedgerHeaderFlags>>::new(&mut r.inner, r.limits.clone())
9733                    .map(|r| r.map(|t| Self::LedgerHeaderFlags(Box::new(t.0)))),
9734            ),
9735            TypeVariant::LedgerHeaderExtensionV1 => Box::new(
9736                ReadXdrIter::<_, Frame<LedgerHeaderExtensionV1>>::new(
9737                    &mut r.inner,
9738                    r.limits.clone(),
9739                )
9740                .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1(Box::new(t.0)))),
9741            ),
9742            TypeVariant::LedgerHeaderExtensionV1Ext => Box::new(
9743                ReadXdrIter::<_, Frame<LedgerHeaderExtensionV1Ext>>::new(
9744                    &mut r.inner,
9745                    r.limits.clone(),
9746                )
9747                .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t.0)))),
9748            ),
9749            TypeVariant::LedgerHeader => Box::new(
9750                ReadXdrIter::<_, Frame<LedgerHeader>>::new(&mut r.inner, r.limits.clone())
9751                    .map(|r| r.map(|t| Self::LedgerHeader(Box::new(t.0)))),
9752            ),
9753            TypeVariant::LedgerHeaderExt => Box::new(
9754                ReadXdrIter::<_, Frame<LedgerHeaderExt>>::new(&mut r.inner, r.limits.clone())
9755                    .map(|r| r.map(|t| Self::LedgerHeaderExt(Box::new(t.0)))),
9756            ),
9757            TypeVariant::LedgerUpgradeType => Box::new(
9758                ReadXdrIter::<_, Frame<LedgerUpgradeType>>::new(&mut r.inner, r.limits.clone())
9759                    .map(|r| r.map(|t| Self::LedgerUpgradeType(Box::new(t.0)))),
9760            ),
9761            TypeVariant::ConfigUpgradeSetKey => Box::new(
9762                ReadXdrIter::<_, Frame<ConfigUpgradeSetKey>>::new(&mut r.inner, r.limits.clone())
9763                    .map(|r| r.map(|t| Self::ConfigUpgradeSetKey(Box::new(t.0)))),
9764            ),
9765            TypeVariant::LedgerUpgrade => Box::new(
9766                ReadXdrIter::<_, Frame<LedgerUpgrade>>::new(&mut r.inner, r.limits.clone())
9767                    .map(|r| r.map(|t| Self::LedgerUpgrade(Box::new(t.0)))),
9768            ),
9769            TypeVariant::ConfigUpgradeSet => Box::new(
9770                ReadXdrIter::<_, Frame<ConfigUpgradeSet>>::new(&mut r.inner, r.limits.clone())
9771                    .map(|r| r.map(|t| Self::ConfigUpgradeSet(Box::new(t.0)))),
9772            ),
9773            TypeVariant::TxSetComponentType => Box::new(
9774                ReadXdrIter::<_, Frame<TxSetComponentType>>::new(&mut r.inner, r.limits.clone())
9775                    .map(|r| r.map(|t| Self::TxSetComponentType(Box::new(t.0)))),
9776            ),
9777            TypeVariant::DependentTxCluster => Box::new(
9778                ReadXdrIter::<_, Frame<DependentTxCluster>>::new(&mut r.inner, r.limits.clone())
9779                    .map(|r| r.map(|t| Self::DependentTxCluster(Box::new(t.0)))),
9780            ),
9781            TypeVariant::ParallelTxExecutionStage => Box::new(
9782                ReadXdrIter::<_, Frame<ParallelTxExecutionStage>>::new(
9783                    &mut r.inner,
9784                    r.limits.clone(),
9785                )
9786                .map(|r| r.map(|t| Self::ParallelTxExecutionStage(Box::new(t.0)))),
9787            ),
9788            TypeVariant::ParallelTxsComponent => Box::new(
9789                ReadXdrIter::<_, Frame<ParallelTxsComponent>>::new(&mut r.inner, r.limits.clone())
9790                    .map(|r| r.map(|t| Self::ParallelTxsComponent(Box::new(t.0)))),
9791            ),
9792            TypeVariant::TxSetComponent => Box::new(
9793                ReadXdrIter::<_, Frame<TxSetComponent>>::new(&mut r.inner, r.limits.clone())
9794                    .map(|r| r.map(|t| Self::TxSetComponent(Box::new(t.0)))),
9795            ),
9796            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Box::new(
9797                ReadXdrIter::<_, Frame<TxSetComponentTxsMaybeDiscountedFee>>::new(
9798                    &mut r.inner,
9799                    r.limits.clone(),
9800                )
9801                .map(|r| r.map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t.0)))),
9802            ),
9803            TypeVariant::TransactionPhase => Box::new(
9804                ReadXdrIter::<_, Frame<TransactionPhase>>::new(&mut r.inner, r.limits.clone())
9805                    .map(|r| r.map(|t| Self::TransactionPhase(Box::new(t.0)))),
9806            ),
9807            TypeVariant::TransactionSet => Box::new(
9808                ReadXdrIter::<_, Frame<TransactionSet>>::new(&mut r.inner, r.limits.clone())
9809                    .map(|r| r.map(|t| Self::TransactionSet(Box::new(t.0)))),
9810            ),
9811            TypeVariant::TransactionSetV1 => Box::new(
9812                ReadXdrIter::<_, Frame<TransactionSetV1>>::new(&mut r.inner, r.limits.clone())
9813                    .map(|r| r.map(|t| Self::TransactionSetV1(Box::new(t.0)))),
9814            ),
9815            TypeVariant::GeneralizedTransactionSet => Box::new(
9816                ReadXdrIter::<_, Frame<GeneralizedTransactionSet>>::new(
9817                    &mut r.inner,
9818                    r.limits.clone(),
9819                )
9820                .map(|r| r.map(|t| Self::GeneralizedTransactionSet(Box::new(t.0)))),
9821            ),
9822            TypeVariant::TransactionResultPair => Box::new(
9823                ReadXdrIter::<_, Frame<TransactionResultPair>>::new(&mut r.inner, r.limits.clone())
9824                    .map(|r| r.map(|t| Self::TransactionResultPair(Box::new(t.0)))),
9825            ),
9826            TypeVariant::TransactionResultSet => Box::new(
9827                ReadXdrIter::<_, Frame<TransactionResultSet>>::new(&mut r.inner, r.limits.clone())
9828                    .map(|r| r.map(|t| Self::TransactionResultSet(Box::new(t.0)))),
9829            ),
9830            TypeVariant::TransactionHistoryEntry => Box::new(
9831                ReadXdrIter::<_, Frame<TransactionHistoryEntry>>::new(
9832                    &mut r.inner,
9833                    r.limits.clone(),
9834                )
9835                .map(|r| r.map(|t| Self::TransactionHistoryEntry(Box::new(t.0)))),
9836            ),
9837            TypeVariant::TransactionHistoryEntryExt => Box::new(
9838                ReadXdrIter::<_, Frame<TransactionHistoryEntryExt>>::new(
9839                    &mut r.inner,
9840                    r.limits.clone(),
9841                )
9842                .map(|r| r.map(|t| Self::TransactionHistoryEntryExt(Box::new(t.0)))),
9843            ),
9844            TypeVariant::TransactionHistoryResultEntry => Box::new(
9845                ReadXdrIter::<_, Frame<TransactionHistoryResultEntry>>::new(
9846                    &mut r.inner,
9847                    r.limits.clone(),
9848                )
9849                .map(|r| r.map(|t| Self::TransactionHistoryResultEntry(Box::new(t.0)))),
9850            ),
9851            TypeVariant::TransactionHistoryResultEntryExt => Box::new(
9852                ReadXdrIter::<_, Frame<TransactionHistoryResultEntryExt>>::new(
9853                    &mut r.inner,
9854                    r.limits.clone(),
9855                )
9856                .map(|r| r.map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t.0)))),
9857            ),
9858            TypeVariant::LedgerHeaderHistoryEntry => Box::new(
9859                ReadXdrIter::<_, Frame<LedgerHeaderHistoryEntry>>::new(
9860                    &mut r.inner,
9861                    r.limits.clone(),
9862                )
9863                .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t.0)))),
9864            ),
9865            TypeVariant::LedgerHeaderHistoryEntryExt => Box::new(
9866                ReadXdrIter::<_, Frame<LedgerHeaderHistoryEntryExt>>::new(
9867                    &mut r.inner,
9868                    r.limits.clone(),
9869                )
9870                .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t.0)))),
9871            ),
9872            TypeVariant::LedgerScpMessages => Box::new(
9873                ReadXdrIter::<_, Frame<LedgerScpMessages>>::new(&mut r.inner, r.limits.clone())
9874                    .map(|r| r.map(|t| Self::LedgerScpMessages(Box::new(t.0)))),
9875            ),
9876            TypeVariant::ScpHistoryEntryV0 => Box::new(
9877                ReadXdrIter::<_, Frame<ScpHistoryEntryV0>>::new(&mut r.inner, r.limits.clone())
9878                    .map(|r| r.map(|t| Self::ScpHistoryEntryV0(Box::new(t.0)))),
9879            ),
9880            TypeVariant::ScpHistoryEntry => Box::new(
9881                ReadXdrIter::<_, Frame<ScpHistoryEntry>>::new(&mut r.inner, r.limits.clone())
9882                    .map(|r| r.map(|t| Self::ScpHistoryEntry(Box::new(t.0)))),
9883            ),
9884            TypeVariant::LedgerEntryChangeType => Box::new(
9885                ReadXdrIter::<_, Frame<LedgerEntryChangeType>>::new(&mut r.inner, r.limits.clone())
9886                    .map(|r| r.map(|t| Self::LedgerEntryChangeType(Box::new(t.0)))),
9887            ),
9888            TypeVariant::LedgerEntryChange => Box::new(
9889                ReadXdrIter::<_, Frame<LedgerEntryChange>>::new(&mut r.inner, r.limits.clone())
9890                    .map(|r| r.map(|t| Self::LedgerEntryChange(Box::new(t.0)))),
9891            ),
9892            TypeVariant::LedgerEntryChanges => Box::new(
9893                ReadXdrIter::<_, Frame<LedgerEntryChanges>>::new(&mut r.inner, r.limits.clone())
9894                    .map(|r| r.map(|t| Self::LedgerEntryChanges(Box::new(t.0)))),
9895            ),
9896            TypeVariant::OperationMeta => Box::new(
9897                ReadXdrIter::<_, Frame<OperationMeta>>::new(&mut r.inner, r.limits.clone())
9898                    .map(|r| r.map(|t| Self::OperationMeta(Box::new(t.0)))),
9899            ),
9900            TypeVariant::TransactionMetaV1 => Box::new(
9901                ReadXdrIter::<_, Frame<TransactionMetaV1>>::new(&mut r.inner, r.limits.clone())
9902                    .map(|r| r.map(|t| Self::TransactionMetaV1(Box::new(t.0)))),
9903            ),
9904            TypeVariant::TransactionMetaV2 => Box::new(
9905                ReadXdrIter::<_, Frame<TransactionMetaV2>>::new(&mut r.inner, r.limits.clone())
9906                    .map(|r| r.map(|t| Self::TransactionMetaV2(Box::new(t.0)))),
9907            ),
9908            TypeVariant::ContractEventType => Box::new(
9909                ReadXdrIter::<_, Frame<ContractEventType>>::new(&mut r.inner, r.limits.clone())
9910                    .map(|r| r.map(|t| Self::ContractEventType(Box::new(t.0)))),
9911            ),
9912            TypeVariant::ContractEvent => Box::new(
9913                ReadXdrIter::<_, Frame<ContractEvent>>::new(&mut r.inner, r.limits.clone())
9914                    .map(|r| r.map(|t| Self::ContractEvent(Box::new(t.0)))),
9915            ),
9916            TypeVariant::ContractEventBody => Box::new(
9917                ReadXdrIter::<_, Frame<ContractEventBody>>::new(&mut r.inner, r.limits.clone())
9918                    .map(|r| r.map(|t| Self::ContractEventBody(Box::new(t.0)))),
9919            ),
9920            TypeVariant::ContractEventV0 => Box::new(
9921                ReadXdrIter::<_, Frame<ContractEventV0>>::new(&mut r.inner, r.limits.clone())
9922                    .map(|r| r.map(|t| Self::ContractEventV0(Box::new(t.0)))),
9923            ),
9924            TypeVariant::DiagnosticEvent => Box::new(
9925                ReadXdrIter::<_, Frame<DiagnosticEvent>>::new(&mut r.inner, r.limits.clone())
9926                    .map(|r| r.map(|t| Self::DiagnosticEvent(Box::new(t.0)))),
9927            ),
9928            TypeVariant::SorobanTransactionMetaExtV1 => Box::new(
9929                ReadXdrIter::<_, Frame<SorobanTransactionMetaExtV1>>::new(
9930                    &mut r.inner,
9931                    r.limits.clone(),
9932                )
9933                .map(|r| r.map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t.0)))),
9934            ),
9935            TypeVariant::SorobanTransactionMetaExt => Box::new(
9936                ReadXdrIter::<_, Frame<SorobanTransactionMetaExt>>::new(
9937                    &mut r.inner,
9938                    r.limits.clone(),
9939                )
9940                .map(|r| r.map(|t| Self::SorobanTransactionMetaExt(Box::new(t.0)))),
9941            ),
9942            TypeVariant::SorobanTransactionMeta => Box::new(
9943                ReadXdrIter::<_, Frame<SorobanTransactionMeta>>::new(
9944                    &mut r.inner,
9945                    r.limits.clone(),
9946                )
9947                .map(|r| r.map(|t| Self::SorobanTransactionMeta(Box::new(t.0)))),
9948            ),
9949            TypeVariant::TransactionMetaV3 => Box::new(
9950                ReadXdrIter::<_, Frame<TransactionMetaV3>>::new(&mut r.inner, r.limits.clone())
9951                    .map(|r| r.map(|t| Self::TransactionMetaV3(Box::new(t.0)))),
9952            ),
9953            TypeVariant::OperationMetaV2 => Box::new(
9954                ReadXdrIter::<_, Frame<OperationMetaV2>>::new(&mut r.inner, r.limits.clone())
9955                    .map(|r| r.map(|t| Self::OperationMetaV2(Box::new(t.0)))),
9956            ),
9957            TypeVariant::SorobanTransactionMetaV2 => Box::new(
9958                ReadXdrIter::<_, Frame<SorobanTransactionMetaV2>>::new(
9959                    &mut r.inner,
9960                    r.limits.clone(),
9961                )
9962                .map(|r| r.map(|t| Self::SorobanTransactionMetaV2(Box::new(t.0)))),
9963            ),
9964            TypeVariant::TransactionEventStage => Box::new(
9965                ReadXdrIter::<_, Frame<TransactionEventStage>>::new(&mut r.inner, r.limits.clone())
9966                    .map(|r| r.map(|t| Self::TransactionEventStage(Box::new(t.0)))),
9967            ),
9968            TypeVariant::TransactionEvent => Box::new(
9969                ReadXdrIter::<_, Frame<TransactionEvent>>::new(&mut r.inner, r.limits.clone())
9970                    .map(|r| r.map(|t| Self::TransactionEvent(Box::new(t.0)))),
9971            ),
9972            TypeVariant::TransactionMetaV4 => Box::new(
9973                ReadXdrIter::<_, Frame<TransactionMetaV4>>::new(&mut r.inner, r.limits.clone())
9974                    .map(|r| r.map(|t| Self::TransactionMetaV4(Box::new(t.0)))),
9975            ),
9976            TypeVariant::InvokeHostFunctionSuccessPreImage => Box::new(
9977                ReadXdrIter::<_, Frame<InvokeHostFunctionSuccessPreImage>>::new(
9978                    &mut r.inner,
9979                    r.limits.clone(),
9980                )
9981                .map(|r| r.map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t.0)))),
9982            ),
9983            TypeVariant::TransactionMeta => Box::new(
9984                ReadXdrIter::<_, Frame<TransactionMeta>>::new(&mut r.inner, r.limits.clone())
9985                    .map(|r| r.map(|t| Self::TransactionMeta(Box::new(t.0)))),
9986            ),
9987            TypeVariant::TransactionResultMeta => Box::new(
9988                ReadXdrIter::<_, Frame<TransactionResultMeta>>::new(&mut r.inner, r.limits.clone())
9989                    .map(|r| r.map(|t| Self::TransactionResultMeta(Box::new(t.0)))),
9990            ),
9991            TypeVariant::TransactionResultMetaV1 => Box::new(
9992                ReadXdrIter::<_, Frame<TransactionResultMetaV1>>::new(
9993                    &mut r.inner,
9994                    r.limits.clone(),
9995                )
9996                .map(|r| r.map(|t| Self::TransactionResultMetaV1(Box::new(t.0)))),
9997            ),
9998            TypeVariant::UpgradeEntryMeta => Box::new(
9999                ReadXdrIter::<_, Frame<UpgradeEntryMeta>>::new(&mut r.inner, r.limits.clone())
10000                    .map(|r| r.map(|t| Self::UpgradeEntryMeta(Box::new(t.0)))),
10001            ),
10002            TypeVariant::LedgerCloseMetaV0 => Box::new(
10003                ReadXdrIter::<_, Frame<LedgerCloseMetaV0>>::new(&mut r.inner, r.limits.clone())
10004                    .map(|r| r.map(|t| Self::LedgerCloseMetaV0(Box::new(t.0)))),
10005            ),
10006            TypeVariant::LedgerCloseMetaExtV1 => Box::new(
10007                ReadXdrIter::<_, Frame<LedgerCloseMetaExtV1>>::new(&mut r.inner, r.limits.clone())
10008                    .map(|r| r.map(|t| Self::LedgerCloseMetaExtV1(Box::new(t.0)))),
10009            ),
10010            TypeVariant::LedgerCloseMetaExt => Box::new(
10011                ReadXdrIter::<_, Frame<LedgerCloseMetaExt>>::new(&mut r.inner, r.limits.clone())
10012                    .map(|r| r.map(|t| Self::LedgerCloseMetaExt(Box::new(t.0)))),
10013            ),
10014            TypeVariant::LedgerCloseMetaV1 => Box::new(
10015                ReadXdrIter::<_, Frame<LedgerCloseMetaV1>>::new(&mut r.inner, r.limits.clone())
10016                    .map(|r| r.map(|t| Self::LedgerCloseMetaV1(Box::new(t.0)))),
10017            ),
10018            TypeVariant::LedgerCloseMetaV2 => Box::new(
10019                ReadXdrIter::<_, Frame<LedgerCloseMetaV2>>::new(&mut r.inner, r.limits.clone())
10020                    .map(|r| r.map(|t| Self::LedgerCloseMetaV2(Box::new(t.0)))),
10021            ),
10022            TypeVariant::LedgerCloseMeta => Box::new(
10023                ReadXdrIter::<_, Frame<LedgerCloseMeta>>::new(&mut r.inner, r.limits.clone())
10024                    .map(|r| r.map(|t| Self::LedgerCloseMeta(Box::new(t.0)))),
10025            ),
10026            TypeVariant::ErrorCode => Box::new(
10027                ReadXdrIter::<_, Frame<ErrorCode>>::new(&mut r.inner, r.limits.clone())
10028                    .map(|r| r.map(|t| Self::ErrorCode(Box::new(t.0)))),
10029            ),
10030            TypeVariant::SError => Box::new(
10031                ReadXdrIter::<_, Frame<SError>>::new(&mut r.inner, r.limits.clone())
10032                    .map(|r| r.map(|t| Self::SError(Box::new(t.0)))),
10033            ),
10034            TypeVariant::SendMore => Box::new(
10035                ReadXdrIter::<_, Frame<SendMore>>::new(&mut r.inner, r.limits.clone())
10036                    .map(|r| r.map(|t| Self::SendMore(Box::new(t.0)))),
10037            ),
10038            TypeVariant::SendMoreExtended => Box::new(
10039                ReadXdrIter::<_, Frame<SendMoreExtended>>::new(&mut r.inner, r.limits.clone())
10040                    .map(|r| r.map(|t| Self::SendMoreExtended(Box::new(t.0)))),
10041            ),
10042            TypeVariant::AuthCert => Box::new(
10043                ReadXdrIter::<_, Frame<AuthCert>>::new(&mut r.inner, r.limits.clone())
10044                    .map(|r| r.map(|t| Self::AuthCert(Box::new(t.0)))),
10045            ),
10046            TypeVariant::Hello => Box::new(
10047                ReadXdrIter::<_, Frame<Hello>>::new(&mut r.inner, r.limits.clone())
10048                    .map(|r| r.map(|t| Self::Hello(Box::new(t.0)))),
10049            ),
10050            TypeVariant::Auth => Box::new(
10051                ReadXdrIter::<_, Frame<Auth>>::new(&mut r.inner, r.limits.clone())
10052                    .map(|r| r.map(|t| Self::Auth(Box::new(t.0)))),
10053            ),
10054            TypeVariant::IpAddrType => Box::new(
10055                ReadXdrIter::<_, Frame<IpAddrType>>::new(&mut r.inner, r.limits.clone())
10056                    .map(|r| r.map(|t| Self::IpAddrType(Box::new(t.0)))),
10057            ),
10058            TypeVariant::PeerAddress => Box::new(
10059                ReadXdrIter::<_, Frame<PeerAddress>>::new(&mut r.inner, r.limits.clone())
10060                    .map(|r| r.map(|t| Self::PeerAddress(Box::new(t.0)))),
10061            ),
10062            TypeVariant::PeerAddressIp => Box::new(
10063                ReadXdrIter::<_, Frame<PeerAddressIp>>::new(&mut r.inner, r.limits.clone())
10064                    .map(|r| r.map(|t| Self::PeerAddressIp(Box::new(t.0)))),
10065            ),
10066            TypeVariant::MessageType => Box::new(
10067                ReadXdrIter::<_, Frame<MessageType>>::new(&mut r.inner, r.limits.clone())
10068                    .map(|r| r.map(|t| Self::MessageType(Box::new(t.0)))),
10069            ),
10070            TypeVariant::DontHave => Box::new(
10071                ReadXdrIter::<_, Frame<DontHave>>::new(&mut r.inner, r.limits.clone())
10072                    .map(|r| r.map(|t| Self::DontHave(Box::new(t.0)))),
10073            ),
10074            TypeVariant::SurveyMessageCommandType => Box::new(
10075                ReadXdrIter::<_, Frame<SurveyMessageCommandType>>::new(
10076                    &mut r.inner,
10077                    r.limits.clone(),
10078                )
10079                .map(|r| r.map(|t| Self::SurveyMessageCommandType(Box::new(t.0)))),
10080            ),
10081            TypeVariant::SurveyMessageResponseType => Box::new(
10082                ReadXdrIter::<_, Frame<SurveyMessageResponseType>>::new(
10083                    &mut r.inner,
10084                    r.limits.clone(),
10085                )
10086                .map(|r| r.map(|t| Self::SurveyMessageResponseType(Box::new(t.0)))),
10087            ),
10088            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Box::new(
10089                ReadXdrIter::<_, Frame<TimeSlicedSurveyStartCollectingMessage>>::new(
10090                    &mut r.inner,
10091                    r.limits.clone(),
10092                )
10093                .map(|r| r.map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t.0)))),
10094            ),
10095            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => Box::new(
10096                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyStartCollectingMessage>>::new(
10097                    &mut r.inner,
10098                    r.limits.clone(),
10099                )
10100                .map(|r| {
10101                    r.map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t.0)))
10102                }),
10103            ),
10104            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Box::new(
10105                ReadXdrIter::<_, Frame<TimeSlicedSurveyStopCollectingMessage>>::new(
10106                    &mut r.inner,
10107                    r.limits.clone(),
10108                )
10109                .map(|r| r.map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t.0)))),
10110            ),
10111            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => Box::new(
10112                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyStopCollectingMessage>>::new(
10113                    &mut r.inner,
10114                    r.limits.clone(),
10115                )
10116                .map(|r| {
10117                    r.map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t.0)))
10118                }),
10119            ),
10120            TypeVariant::SurveyRequestMessage => Box::new(
10121                ReadXdrIter::<_, Frame<SurveyRequestMessage>>::new(&mut r.inner, r.limits.clone())
10122                    .map(|r| r.map(|t| Self::SurveyRequestMessage(Box::new(t.0)))),
10123            ),
10124            TypeVariant::TimeSlicedSurveyRequestMessage => Box::new(
10125                ReadXdrIter::<_, Frame<TimeSlicedSurveyRequestMessage>>::new(
10126                    &mut r.inner,
10127                    r.limits.clone(),
10128                )
10129                .map(|r| r.map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t.0)))),
10130            ),
10131            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Box::new(
10132                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyRequestMessage>>::new(
10133                    &mut r.inner,
10134                    r.limits.clone(),
10135                )
10136                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t.0)))),
10137            ),
10138            TypeVariant::EncryptedBody => Box::new(
10139                ReadXdrIter::<_, Frame<EncryptedBody>>::new(&mut r.inner, r.limits.clone())
10140                    .map(|r| r.map(|t| Self::EncryptedBody(Box::new(t.0)))),
10141            ),
10142            TypeVariant::SurveyResponseMessage => Box::new(
10143                ReadXdrIter::<_, Frame<SurveyResponseMessage>>::new(&mut r.inner, r.limits.clone())
10144                    .map(|r| r.map(|t| Self::SurveyResponseMessage(Box::new(t.0)))),
10145            ),
10146            TypeVariant::TimeSlicedSurveyResponseMessage => Box::new(
10147                ReadXdrIter::<_, Frame<TimeSlicedSurveyResponseMessage>>::new(
10148                    &mut r.inner,
10149                    r.limits.clone(),
10150                )
10151                .map(|r| r.map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t.0)))),
10152            ),
10153            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Box::new(
10154                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyResponseMessage>>::new(
10155                    &mut r.inner,
10156                    r.limits.clone(),
10157                )
10158                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t.0)))),
10159            ),
10160            TypeVariant::PeerStats => Box::new(
10161                ReadXdrIter::<_, Frame<PeerStats>>::new(&mut r.inner, r.limits.clone())
10162                    .map(|r| r.map(|t| Self::PeerStats(Box::new(t.0)))),
10163            ),
10164            TypeVariant::TimeSlicedNodeData => Box::new(
10165                ReadXdrIter::<_, Frame<TimeSlicedNodeData>>::new(&mut r.inner, r.limits.clone())
10166                    .map(|r| r.map(|t| Self::TimeSlicedNodeData(Box::new(t.0)))),
10167            ),
10168            TypeVariant::TimeSlicedPeerData => Box::new(
10169                ReadXdrIter::<_, Frame<TimeSlicedPeerData>>::new(&mut r.inner, r.limits.clone())
10170                    .map(|r| r.map(|t| Self::TimeSlicedPeerData(Box::new(t.0)))),
10171            ),
10172            TypeVariant::TimeSlicedPeerDataList => Box::new(
10173                ReadXdrIter::<_, Frame<TimeSlicedPeerDataList>>::new(
10174                    &mut r.inner,
10175                    r.limits.clone(),
10176                )
10177                .map(|r| r.map(|t| Self::TimeSlicedPeerDataList(Box::new(t.0)))),
10178            ),
10179            TypeVariant::TopologyResponseBodyV2 => Box::new(
10180                ReadXdrIter::<_, Frame<TopologyResponseBodyV2>>::new(
10181                    &mut r.inner,
10182                    r.limits.clone(),
10183                )
10184                .map(|r| r.map(|t| Self::TopologyResponseBodyV2(Box::new(t.0)))),
10185            ),
10186            TypeVariant::SurveyResponseBody => Box::new(
10187                ReadXdrIter::<_, Frame<SurveyResponseBody>>::new(&mut r.inner, r.limits.clone())
10188                    .map(|r| r.map(|t| Self::SurveyResponseBody(Box::new(t.0)))),
10189            ),
10190            TypeVariant::TxAdvertVector => Box::new(
10191                ReadXdrIter::<_, Frame<TxAdvertVector>>::new(&mut r.inner, r.limits.clone())
10192                    .map(|r| r.map(|t| Self::TxAdvertVector(Box::new(t.0)))),
10193            ),
10194            TypeVariant::FloodAdvert => Box::new(
10195                ReadXdrIter::<_, Frame<FloodAdvert>>::new(&mut r.inner, r.limits.clone())
10196                    .map(|r| r.map(|t| Self::FloodAdvert(Box::new(t.0)))),
10197            ),
10198            TypeVariant::TxDemandVector => Box::new(
10199                ReadXdrIter::<_, Frame<TxDemandVector>>::new(&mut r.inner, r.limits.clone())
10200                    .map(|r| r.map(|t| Self::TxDemandVector(Box::new(t.0)))),
10201            ),
10202            TypeVariant::FloodDemand => Box::new(
10203                ReadXdrIter::<_, Frame<FloodDemand>>::new(&mut r.inner, r.limits.clone())
10204                    .map(|r| r.map(|t| Self::FloodDemand(Box::new(t.0)))),
10205            ),
10206            TypeVariant::StellarMessage => Box::new(
10207                ReadXdrIter::<_, Frame<StellarMessage>>::new(&mut r.inner, r.limits.clone())
10208                    .map(|r| r.map(|t| Self::StellarMessage(Box::new(t.0)))),
10209            ),
10210            TypeVariant::AuthenticatedMessage => Box::new(
10211                ReadXdrIter::<_, Frame<AuthenticatedMessage>>::new(&mut r.inner, r.limits.clone())
10212                    .map(|r| r.map(|t| Self::AuthenticatedMessage(Box::new(t.0)))),
10213            ),
10214            TypeVariant::AuthenticatedMessageV0 => Box::new(
10215                ReadXdrIter::<_, Frame<AuthenticatedMessageV0>>::new(
10216                    &mut r.inner,
10217                    r.limits.clone(),
10218                )
10219                .map(|r| r.map(|t| Self::AuthenticatedMessageV0(Box::new(t.0)))),
10220            ),
10221            TypeVariant::LiquidityPoolParameters => Box::new(
10222                ReadXdrIter::<_, Frame<LiquidityPoolParameters>>::new(
10223                    &mut r.inner,
10224                    r.limits.clone(),
10225                )
10226                .map(|r| r.map(|t| Self::LiquidityPoolParameters(Box::new(t.0)))),
10227            ),
10228            TypeVariant::MuxedAccount => Box::new(
10229                ReadXdrIter::<_, Frame<MuxedAccount>>::new(&mut r.inner, r.limits.clone())
10230                    .map(|r| r.map(|t| Self::MuxedAccount(Box::new(t.0)))),
10231            ),
10232            TypeVariant::MuxedAccountMed25519 => Box::new(
10233                ReadXdrIter::<_, Frame<MuxedAccountMed25519>>::new(&mut r.inner, r.limits.clone())
10234                    .map(|r| r.map(|t| Self::MuxedAccountMed25519(Box::new(t.0)))),
10235            ),
10236            TypeVariant::DecoratedSignature => Box::new(
10237                ReadXdrIter::<_, Frame<DecoratedSignature>>::new(&mut r.inner, r.limits.clone())
10238                    .map(|r| r.map(|t| Self::DecoratedSignature(Box::new(t.0)))),
10239            ),
10240            TypeVariant::OperationType => Box::new(
10241                ReadXdrIter::<_, Frame<OperationType>>::new(&mut r.inner, r.limits.clone())
10242                    .map(|r| r.map(|t| Self::OperationType(Box::new(t.0)))),
10243            ),
10244            TypeVariant::CreateAccountOp => Box::new(
10245                ReadXdrIter::<_, Frame<CreateAccountOp>>::new(&mut r.inner, r.limits.clone())
10246                    .map(|r| r.map(|t| Self::CreateAccountOp(Box::new(t.0)))),
10247            ),
10248            TypeVariant::PaymentOp => Box::new(
10249                ReadXdrIter::<_, Frame<PaymentOp>>::new(&mut r.inner, r.limits.clone())
10250                    .map(|r| r.map(|t| Self::PaymentOp(Box::new(t.0)))),
10251            ),
10252            TypeVariant::PathPaymentStrictReceiveOp => Box::new(
10253                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveOp>>::new(
10254                    &mut r.inner,
10255                    r.limits.clone(),
10256                )
10257                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t.0)))),
10258            ),
10259            TypeVariant::PathPaymentStrictSendOp => Box::new(
10260                ReadXdrIter::<_, Frame<PathPaymentStrictSendOp>>::new(
10261                    &mut r.inner,
10262                    r.limits.clone(),
10263                )
10264                .map(|r| r.map(|t| Self::PathPaymentStrictSendOp(Box::new(t.0)))),
10265            ),
10266            TypeVariant::ManageSellOfferOp => Box::new(
10267                ReadXdrIter::<_, Frame<ManageSellOfferOp>>::new(&mut r.inner, r.limits.clone())
10268                    .map(|r| r.map(|t| Self::ManageSellOfferOp(Box::new(t.0)))),
10269            ),
10270            TypeVariant::ManageBuyOfferOp => Box::new(
10271                ReadXdrIter::<_, Frame<ManageBuyOfferOp>>::new(&mut r.inner, r.limits.clone())
10272                    .map(|r| r.map(|t| Self::ManageBuyOfferOp(Box::new(t.0)))),
10273            ),
10274            TypeVariant::CreatePassiveSellOfferOp => Box::new(
10275                ReadXdrIter::<_, Frame<CreatePassiveSellOfferOp>>::new(
10276                    &mut r.inner,
10277                    r.limits.clone(),
10278                )
10279                .map(|r| r.map(|t| Self::CreatePassiveSellOfferOp(Box::new(t.0)))),
10280            ),
10281            TypeVariant::SetOptionsOp => Box::new(
10282                ReadXdrIter::<_, Frame<SetOptionsOp>>::new(&mut r.inner, r.limits.clone())
10283                    .map(|r| r.map(|t| Self::SetOptionsOp(Box::new(t.0)))),
10284            ),
10285            TypeVariant::ChangeTrustAsset => Box::new(
10286                ReadXdrIter::<_, Frame<ChangeTrustAsset>>::new(&mut r.inner, r.limits.clone())
10287                    .map(|r| r.map(|t| Self::ChangeTrustAsset(Box::new(t.0)))),
10288            ),
10289            TypeVariant::ChangeTrustOp => Box::new(
10290                ReadXdrIter::<_, Frame<ChangeTrustOp>>::new(&mut r.inner, r.limits.clone())
10291                    .map(|r| r.map(|t| Self::ChangeTrustOp(Box::new(t.0)))),
10292            ),
10293            TypeVariant::AllowTrustOp => Box::new(
10294                ReadXdrIter::<_, Frame<AllowTrustOp>>::new(&mut r.inner, r.limits.clone())
10295                    .map(|r| r.map(|t| Self::AllowTrustOp(Box::new(t.0)))),
10296            ),
10297            TypeVariant::ManageDataOp => Box::new(
10298                ReadXdrIter::<_, Frame<ManageDataOp>>::new(&mut r.inner, r.limits.clone())
10299                    .map(|r| r.map(|t| Self::ManageDataOp(Box::new(t.0)))),
10300            ),
10301            TypeVariant::BumpSequenceOp => Box::new(
10302                ReadXdrIter::<_, Frame<BumpSequenceOp>>::new(&mut r.inner, r.limits.clone())
10303                    .map(|r| r.map(|t| Self::BumpSequenceOp(Box::new(t.0)))),
10304            ),
10305            TypeVariant::CreateClaimableBalanceOp => Box::new(
10306                ReadXdrIter::<_, Frame<CreateClaimableBalanceOp>>::new(
10307                    &mut r.inner,
10308                    r.limits.clone(),
10309                )
10310                .map(|r| r.map(|t| Self::CreateClaimableBalanceOp(Box::new(t.0)))),
10311            ),
10312            TypeVariant::ClaimClaimableBalanceOp => Box::new(
10313                ReadXdrIter::<_, Frame<ClaimClaimableBalanceOp>>::new(
10314                    &mut r.inner,
10315                    r.limits.clone(),
10316                )
10317                .map(|r| r.map(|t| Self::ClaimClaimableBalanceOp(Box::new(t.0)))),
10318            ),
10319            TypeVariant::BeginSponsoringFutureReservesOp => Box::new(
10320                ReadXdrIter::<_, Frame<BeginSponsoringFutureReservesOp>>::new(
10321                    &mut r.inner,
10322                    r.limits.clone(),
10323                )
10324                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t.0)))),
10325            ),
10326            TypeVariant::RevokeSponsorshipType => Box::new(
10327                ReadXdrIter::<_, Frame<RevokeSponsorshipType>>::new(&mut r.inner, r.limits.clone())
10328                    .map(|r| r.map(|t| Self::RevokeSponsorshipType(Box::new(t.0)))),
10329            ),
10330            TypeVariant::RevokeSponsorshipOp => Box::new(
10331                ReadXdrIter::<_, Frame<RevokeSponsorshipOp>>::new(&mut r.inner, r.limits.clone())
10332                    .map(|r| r.map(|t| Self::RevokeSponsorshipOp(Box::new(t.0)))),
10333            ),
10334            TypeVariant::RevokeSponsorshipOpSigner => Box::new(
10335                ReadXdrIter::<_, Frame<RevokeSponsorshipOpSigner>>::new(
10336                    &mut r.inner,
10337                    r.limits.clone(),
10338                )
10339                .map(|r| r.map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t.0)))),
10340            ),
10341            TypeVariant::ClawbackOp => Box::new(
10342                ReadXdrIter::<_, Frame<ClawbackOp>>::new(&mut r.inner, r.limits.clone())
10343                    .map(|r| r.map(|t| Self::ClawbackOp(Box::new(t.0)))),
10344            ),
10345            TypeVariant::ClawbackClaimableBalanceOp => Box::new(
10346                ReadXdrIter::<_, Frame<ClawbackClaimableBalanceOp>>::new(
10347                    &mut r.inner,
10348                    r.limits.clone(),
10349                )
10350                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t.0)))),
10351            ),
10352            TypeVariant::SetTrustLineFlagsOp => Box::new(
10353                ReadXdrIter::<_, Frame<SetTrustLineFlagsOp>>::new(&mut r.inner, r.limits.clone())
10354                    .map(|r| r.map(|t| Self::SetTrustLineFlagsOp(Box::new(t.0)))),
10355            ),
10356            TypeVariant::LiquidityPoolDepositOp => Box::new(
10357                ReadXdrIter::<_, Frame<LiquidityPoolDepositOp>>::new(
10358                    &mut r.inner,
10359                    r.limits.clone(),
10360                )
10361                .map(|r| r.map(|t| Self::LiquidityPoolDepositOp(Box::new(t.0)))),
10362            ),
10363            TypeVariant::LiquidityPoolWithdrawOp => Box::new(
10364                ReadXdrIter::<_, Frame<LiquidityPoolWithdrawOp>>::new(
10365                    &mut r.inner,
10366                    r.limits.clone(),
10367                )
10368                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t.0)))),
10369            ),
10370            TypeVariant::HostFunctionType => Box::new(
10371                ReadXdrIter::<_, Frame<HostFunctionType>>::new(&mut r.inner, r.limits.clone())
10372                    .map(|r| r.map(|t| Self::HostFunctionType(Box::new(t.0)))),
10373            ),
10374            TypeVariant::ContractIdPreimageType => Box::new(
10375                ReadXdrIter::<_, Frame<ContractIdPreimageType>>::new(
10376                    &mut r.inner,
10377                    r.limits.clone(),
10378                )
10379                .map(|r| r.map(|t| Self::ContractIdPreimageType(Box::new(t.0)))),
10380            ),
10381            TypeVariant::ContractIdPreimage => Box::new(
10382                ReadXdrIter::<_, Frame<ContractIdPreimage>>::new(&mut r.inner, r.limits.clone())
10383                    .map(|r| r.map(|t| Self::ContractIdPreimage(Box::new(t.0)))),
10384            ),
10385            TypeVariant::ContractIdPreimageFromAddress => Box::new(
10386                ReadXdrIter::<_, Frame<ContractIdPreimageFromAddress>>::new(
10387                    &mut r.inner,
10388                    r.limits.clone(),
10389                )
10390                .map(|r| r.map(|t| Self::ContractIdPreimageFromAddress(Box::new(t.0)))),
10391            ),
10392            TypeVariant::CreateContractArgs => Box::new(
10393                ReadXdrIter::<_, Frame<CreateContractArgs>>::new(&mut r.inner, r.limits.clone())
10394                    .map(|r| r.map(|t| Self::CreateContractArgs(Box::new(t.0)))),
10395            ),
10396            TypeVariant::CreateContractArgsV2 => Box::new(
10397                ReadXdrIter::<_, Frame<CreateContractArgsV2>>::new(&mut r.inner, r.limits.clone())
10398                    .map(|r| r.map(|t| Self::CreateContractArgsV2(Box::new(t.0)))),
10399            ),
10400            TypeVariant::InvokeContractArgs => Box::new(
10401                ReadXdrIter::<_, Frame<InvokeContractArgs>>::new(&mut r.inner, r.limits.clone())
10402                    .map(|r| r.map(|t| Self::InvokeContractArgs(Box::new(t.0)))),
10403            ),
10404            TypeVariant::HostFunction => Box::new(
10405                ReadXdrIter::<_, Frame<HostFunction>>::new(&mut r.inner, r.limits.clone())
10406                    .map(|r| r.map(|t| Self::HostFunction(Box::new(t.0)))),
10407            ),
10408            TypeVariant::SorobanAuthorizedFunctionType => Box::new(
10409                ReadXdrIter::<_, Frame<SorobanAuthorizedFunctionType>>::new(
10410                    &mut r.inner,
10411                    r.limits.clone(),
10412                )
10413                .map(|r| r.map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t.0)))),
10414            ),
10415            TypeVariant::SorobanAuthorizedFunction => Box::new(
10416                ReadXdrIter::<_, Frame<SorobanAuthorizedFunction>>::new(
10417                    &mut r.inner,
10418                    r.limits.clone(),
10419                )
10420                .map(|r| r.map(|t| Self::SorobanAuthorizedFunction(Box::new(t.0)))),
10421            ),
10422            TypeVariant::SorobanAuthorizedInvocation => Box::new(
10423                ReadXdrIter::<_, Frame<SorobanAuthorizedInvocation>>::new(
10424                    &mut r.inner,
10425                    r.limits.clone(),
10426                )
10427                .map(|r| r.map(|t| Self::SorobanAuthorizedInvocation(Box::new(t.0)))),
10428            ),
10429            TypeVariant::SorobanAddressCredentials => Box::new(
10430                ReadXdrIter::<_, Frame<SorobanAddressCredentials>>::new(
10431                    &mut r.inner,
10432                    r.limits.clone(),
10433                )
10434                .map(|r| r.map(|t| Self::SorobanAddressCredentials(Box::new(t.0)))),
10435            ),
10436            TypeVariant::SorobanDelegateSignature => Box::new(
10437                ReadXdrIter::<_, Frame<SorobanDelegateSignature>>::new(
10438                    &mut r.inner,
10439                    r.limits.clone(),
10440                )
10441                .map(|r| r.map(|t| Self::SorobanDelegateSignature(Box::new(t.0)))),
10442            ),
10443            TypeVariant::SorobanAddressCredentialsWithDelegates => Box::new(
10444                ReadXdrIter::<_, Frame<SorobanAddressCredentialsWithDelegates>>::new(
10445                    &mut r.inner,
10446                    r.limits.clone(),
10447                )
10448                .map(|r| r.map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t.0)))),
10449            ),
10450            TypeVariant::SorobanCredentialsType => Box::new(
10451                ReadXdrIter::<_, Frame<SorobanCredentialsType>>::new(
10452                    &mut r.inner,
10453                    r.limits.clone(),
10454                )
10455                .map(|r| r.map(|t| Self::SorobanCredentialsType(Box::new(t.0)))),
10456            ),
10457            TypeVariant::SorobanCredentials => Box::new(
10458                ReadXdrIter::<_, Frame<SorobanCredentials>>::new(&mut r.inner, r.limits.clone())
10459                    .map(|r| r.map(|t| Self::SorobanCredentials(Box::new(t.0)))),
10460            ),
10461            TypeVariant::SorobanAuthorizationEntry => Box::new(
10462                ReadXdrIter::<_, Frame<SorobanAuthorizationEntry>>::new(
10463                    &mut r.inner,
10464                    r.limits.clone(),
10465                )
10466                .map(|r| r.map(|t| Self::SorobanAuthorizationEntry(Box::new(t.0)))),
10467            ),
10468            TypeVariant::SorobanAuthorizationEntries => Box::new(
10469                ReadXdrIter::<_, Frame<SorobanAuthorizationEntries>>::new(
10470                    &mut r.inner,
10471                    r.limits.clone(),
10472                )
10473                .map(|r| r.map(|t| Self::SorobanAuthorizationEntries(Box::new(t.0)))),
10474            ),
10475            TypeVariant::InvokeHostFunctionOp => Box::new(
10476                ReadXdrIter::<_, Frame<InvokeHostFunctionOp>>::new(&mut r.inner, r.limits.clone())
10477                    .map(|r| r.map(|t| Self::InvokeHostFunctionOp(Box::new(t.0)))),
10478            ),
10479            TypeVariant::ExtendFootprintTtlOp => Box::new(
10480                ReadXdrIter::<_, Frame<ExtendFootprintTtlOp>>::new(&mut r.inner, r.limits.clone())
10481                    .map(|r| r.map(|t| Self::ExtendFootprintTtlOp(Box::new(t.0)))),
10482            ),
10483            TypeVariant::RestoreFootprintOp => Box::new(
10484                ReadXdrIter::<_, Frame<RestoreFootprintOp>>::new(&mut r.inner, r.limits.clone())
10485                    .map(|r| r.map(|t| Self::RestoreFootprintOp(Box::new(t.0)))),
10486            ),
10487            TypeVariant::Operation => Box::new(
10488                ReadXdrIter::<_, Frame<Operation>>::new(&mut r.inner, r.limits.clone())
10489                    .map(|r| r.map(|t| Self::Operation(Box::new(t.0)))),
10490            ),
10491            TypeVariant::OperationBody => Box::new(
10492                ReadXdrIter::<_, Frame<OperationBody>>::new(&mut r.inner, r.limits.clone())
10493                    .map(|r| r.map(|t| Self::OperationBody(Box::new(t.0)))),
10494            ),
10495            TypeVariant::HashIdPreimage => Box::new(
10496                ReadXdrIter::<_, Frame<HashIdPreimage>>::new(&mut r.inner, r.limits.clone())
10497                    .map(|r| r.map(|t| Self::HashIdPreimage(Box::new(t.0)))),
10498            ),
10499            TypeVariant::HashIdPreimageOperationId => Box::new(
10500                ReadXdrIter::<_, Frame<HashIdPreimageOperationId>>::new(
10501                    &mut r.inner,
10502                    r.limits.clone(),
10503                )
10504                .map(|r| r.map(|t| Self::HashIdPreimageOperationId(Box::new(t.0)))),
10505            ),
10506            TypeVariant::HashIdPreimageRevokeId => Box::new(
10507                ReadXdrIter::<_, Frame<HashIdPreimageRevokeId>>::new(
10508                    &mut r.inner,
10509                    r.limits.clone(),
10510                )
10511                .map(|r| r.map(|t| Self::HashIdPreimageRevokeId(Box::new(t.0)))),
10512            ),
10513            TypeVariant::HashIdPreimageContractId => Box::new(
10514                ReadXdrIter::<_, Frame<HashIdPreimageContractId>>::new(
10515                    &mut r.inner,
10516                    r.limits.clone(),
10517                )
10518                .map(|r| r.map(|t| Self::HashIdPreimageContractId(Box::new(t.0)))),
10519            ),
10520            TypeVariant::HashIdPreimageSorobanAuthorization => Box::new(
10521                ReadXdrIter::<_, Frame<HashIdPreimageSorobanAuthorization>>::new(
10522                    &mut r.inner,
10523                    r.limits.clone(),
10524                )
10525                .map(|r| r.map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t.0)))),
10526            ),
10527            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => Box::new(
10528                ReadXdrIter::<_, Frame<HashIdPreimageSorobanAuthorizationWithAddress>>::new(
10529                    &mut r.inner,
10530                    r.limits.clone(),
10531                )
10532                .map(|r| {
10533                    r.map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t.0)))
10534                }),
10535            ),
10536            TypeVariant::MemoType => Box::new(
10537                ReadXdrIter::<_, Frame<MemoType>>::new(&mut r.inner, r.limits.clone())
10538                    .map(|r| r.map(|t| Self::MemoType(Box::new(t.0)))),
10539            ),
10540            TypeVariant::Memo => Box::new(
10541                ReadXdrIter::<_, Frame<Memo>>::new(&mut r.inner, r.limits.clone())
10542                    .map(|r| r.map(|t| Self::Memo(Box::new(t.0)))),
10543            ),
10544            TypeVariant::TimeBounds => Box::new(
10545                ReadXdrIter::<_, Frame<TimeBounds>>::new(&mut r.inner, r.limits.clone())
10546                    .map(|r| r.map(|t| Self::TimeBounds(Box::new(t.0)))),
10547            ),
10548            TypeVariant::LedgerBounds => Box::new(
10549                ReadXdrIter::<_, Frame<LedgerBounds>>::new(&mut r.inner, r.limits.clone())
10550                    .map(|r| r.map(|t| Self::LedgerBounds(Box::new(t.0)))),
10551            ),
10552            TypeVariant::PreconditionsV2 => Box::new(
10553                ReadXdrIter::<_, Frame<PreconditionsV2>>::new(&mut r.inner, r.limits.clone())
10554                    .map(|r| r.map(|t| Self::PreconditionsV2(Box::new(t.0)))),
10555            ),
10556            TypeVariant::PreconditionType => Box::new(
10557                ReadXdrIter::<_, Frame<PreconditionType>>::new(&mut r.inner, r.limits.clone())
10558                    .map(|r| r.map(|t| Self::PreconditionType(Box::new(t.0)))),
10559            ),
10560            TypeVariant::Preconditions => Box::new(
10561                ReadXdrIter::<_, Frame<Preconditions>>::new(&mut r.inner, r.limits.clone())
10562                    .map(|r| r.map(|t| Self::Preconditions(Box::new(t.0)))),
10563            ),
10564            TypeVariant::LedgerFootprint => Box::new(
10565                ReadXdrIter::<_, Frame<LedgerFootprint>>::new(&mut r.inner, r.limits.clone())
10566                    .map(|r| r.map(|t| Self::LedgerFootprint(Box::new(t.0)))),
10567            ),
10568            TypeVariant::SorobanResources => Box::new(
10569                ReadXdrIter::<_, Frame<SorobanResources>>::new(&mut r.inner, r.limits.clone())
10570                    .map(|r| r.map(|t| Self::SorobanResources(Box::new(t.0)))),
10571            ),
10572            TypeVariant::SorobanResourcesExtV0 => Box::new(
10573                ReadXdrIter::<_, Frame<SorobanResourcesExtV0>>::new(&mut r.inner, r.limits.clone())
10574                    .map(|r| r.map(|t| Self::SorobanResourcesExtV0(Box::new(t.0)))),
10575            ),
10576            TypeVariant::SorobanTransactionData => Box::new(
10577                ReadXdrIter::<_, Frame<SorobanTransactionData>>::new(
10578                    &mut r.inner,
10579                    r.limits.clone(),
10580                )
10581                .map(|r| r.map(|t| Self::SorobanTransactionData(Box::new(t.0)))),
10582            ),
10583            TypeVariant::SorobanTransactionDataExt => Box::new(
10584                ReadXdrIter::<_, Frame<SorobanTransactionDataExt>>::new(
10585                    &mut r.inner,
10586                    r.limits.clone(),
10587                )
10588                .map(|r| r.map(|t| Self::SorobanTransactionDataExt(Box::new(t.0)))),
10589            ),
10590            TypeVariant::TransactionV0 => Box::new(
10591                ReadXdrIter::<_, Frame<TransactionV0>>::new(&mut r.inner, r.limits.clone())
10592                    .map(|r| r.map(|t| Self::TransactionV0(Box::new(t.0)))),
10593            ),
10594            TypeVariant::TransactionV0Ext => Box::new(
10595                ReadXdrIter::<_, Frame<TransactionV0Ext>>::new(&mut r.inner, r.limits.clone())
10596                    .map(|r| r.map(|t| Self::TransactionV0Ext(Box::new(t.0)))),
10597            ),
10598            TypeVariant::TransactionV0Envelope => Box::new(
10599                ReadXdrIter::<_, Frame<TransactionV0Envelope>>::new(&mut r.inner, r.limits.clone())
10600                    .map(|r| r.map(|t| Self::TransactionV0Envelope(Box::new(t.0)))),
10601            ),
10602            TypeVariant::Transaction => Box::new(
10603                ReadXdrIter::<_, Frame<Transaction>>::new(&mut r.inner, r.limits.clone())
10604                    .map(|r| r.map(|t| Self::Transaction(Box::new(t.0)))),
10605            ),
10606            TypeVariant::TransactionExt => Box::new(
10607                ReadXdrIter::<_, Frame<TransactionExt>>::new(&mut r.inner, r.limits.clone())
10608                    .map(|r| r.map(|t| Self::TransactionExt(Box::new(t.0)))),
10609            ),
10610            TypeVariant::TransactionV1Envelope => Box::new(
10611                ReadXdrIter::<_, Frame<TransactionV1Envelope>>::new(&mut r.inner, r.limits.clone())
10612                    .map(|r| r.map(|t| Self::TransactionV1Envelope(Box::new(t.0)))),
10613            ),
10614            TypeVariant::FeeBumpTransaction => Box::new(
10615                ReadXdrIter::<_, Frame<FeeBumpTransaction>>::new(&mut r.inner, r.limits.clone())
10616                    .map(|r| r.map(|t| Self::FeeBumpTransaction(Box::new(t.0)))),
10617            ),
10618            TypeVariant::FeeBumpTransactionInnerTx => Box::new(
10619                ReadXdrIter::<_, Frame<FeeBumpTransactionInnerTx>>::new(
10620                    &mut r.inner,
10621                    r.limits.clone(),
10622                )
10623                .map(|r| r.map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t.0)))),
10624            ),
10625            TypeVariant::FeeBumpTransactionExt => Box::new(
10626                ReadXdrIter::<_, Frame<FeeBumpTransactionExt>>::new(&mut r.inner, r.limits.clone())
10627                    .map(|r| r.map(|t| Self::FeeBumpTransactionExt(Box::new(t.0)))),
10628            ),
10629            TypeVariant::FeeBumpTransactionEnvelope => Box::new(
10630                ReadXdrIter::<_, Frame<FeeBumpTransactionEnvelope>>::new(
10631                    &mut r.inner,
10632                    r.limits.clone(),
10633                )
10634                .map(|r| r.map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t.0)))),
10635            ),
10636            TypeVariant::TransactionEnvelope => Box::new(
10637                ReadXdrIter::<_, Frame<TransactionEnvelope>>::new(&mut r.inner, r.limits.clone())
10638                    .map(|r| r.map(|t| Self::TransactionEnvelope(Box::new(t.0)))),
10639            ),
10640            TypeVariant::TransactionSignaturePayload => Box::new(
10641                ReadXdrIter::<_, Frame<TransactionSignaturePayload>>::new(
10642                    &mut r.inner,
10643                    r.limits.clone(),
10644                )
10645                .map(|r| r.map(|t| Self::TransactionSignaturePayload(Box::new(t.0)))),
10646            ),
10647            TypeVariant::TransactionSignaturePayloadTaggedTransaction => Box::new(
10648                ReadXdrIter::<_, Frame<TransactionSignaturePayloadTaggedTransaction>>::new(
10649                    &mut r.inner,
10650                    r.limits.clone(),
10651                )
10652                .map(|r| {
10653                    r.map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t.0)))
10654                }),
10655            ),
10656            TypeVariant::ClaimAtomType => Box::new(
10657                ReadXdrIter::<_, Frame<ClaimAtomType>>::new(&mut r.inner, r.limits.clone())
10658                    .map(|r| r.map(|t| Self::ClaimAtomType(Box::new(t.0)))),
10659            ),
10660            TypeVariant::ClaimOfferAtomV0 => Box::new(
10661                ReadXdrIter::<_, Frame<ClaimOfferAtomV0>>::new(&mut r.inner, r.limits.clone())
10662                    .map(|r| r.map(|t| Self::ClaimOfferAtomV0(Box::new(t.0)))),
10663            ),
10664            TypeVariant::ClaimOfferAtom => Box::new(
10665                ReadXdrIter::<_, Frame<ClaimOfferAtom>>::new(&mut r.inner, r.limits.clone())
10666                    .map(|r| r.map(|t| Self::ClaimOfferAtom(Box::new(t.0)))),
10667            ),
10668            TypeVariant::ClaimLiquidityAtom => Box::new(
10669                ReadXdrIter::<_, Frame<ClaimLiquidityAtom>>::new(&mut r.inner, r.limits.clone())
10670                    .map(|r| r.map(|t| Self::ClaimLiquidityAtom(Box::new(t.0)))),
10671            ),
10672            TypeVariant::ClaimAtom => Box::new(
10673                ReadXdrIter::<_, Frame<ClaimAtom>>::new(&mut r.inner, r.limits.clone())
10674                    .map(|r| r.map(|t| Self::ClaimAtom(Box::new(t.0)))),
10675            ),
10676            TypeVariant::CreateAccountResultCode => Box::new(
10677                ReadXdrIter::<_, Frame<CreateAccountResultCode>>::new(
10678                    &mut r.inner,
10679                    r.limits.clone(),
10680                )
10681                .map(|r| r.map(|t| Self::CreateAccountResultCode(Box::new(t.0)))),
10682            ),
10683            TypeVariant::CreateAccountResult => Box::new(
10684                ReadXdrIter::<_, Frame<CreateAccountResult>>::new(&mut r.inner, r.limits.clone())
10685                    .map(|r| r.map(|t| Self::CreateAccountResult(Box::new(t.0)))),
10686            ),
10687            TypeVariant::PaymentResultCode => Box::new(
10688                ReadXdrIter::<_, Frame<PaymentResultCode>>::new(&mut r.inner, r.limits.clone())
10689                    .map(|r| r.map(|t| Self::PaymentResultCode(Box::new(t.0)))),
10690            ),
10691            TypeVariant::PaymentResult => Box::new(
10692                ReadXdrIter::<_, Frame<PaymentResult>>::new(&mut r.inner, r.limits.clone())
10693                    .map(|r| r.map(|t| Self::PaymentResult(Box::new(t.0)))),
10694            ),
10695            TypeVariant::PathPaymentStrictReceiveResultCode => Box::new(
10696                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveResultCode>>::new(
10697                    &mut r.inner,
10698                    r.limits.clone(),
10699                )
10700                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t.0)))),
10701            ),
10702            TypeVariant::SimplePaymentResult => Box::new(
10703                ReadXdrIter::<_, Frame<SimplePaymentResult>>::new(&mut r.inner, r.limits.clone())
10704                    .map(|r| r.map(|t| Self::SimplePaymentResult(Box::new(t.0)))),
10705            ),
10706            TypeVariant::PathPaymentStrictReceiveResult => Box::new(
10707                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveResult>>::new(
10708                    &mut r.inner,
10709                    r.limits.clone(),
10710                )
10711                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t.0)))),
10712            ),
10713            TypeVariant::PathPaymentStrictReceiveResultSuccess => Box::new(
10714                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveResultSuccess>>::new(
10715                    &mut r.inner,
10716                    r.limits.clone(),
10717                )
10718                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t.0)))),
10719            ),
10720            TypeVariant::PathPaymentStrictSendResultCode => Box::new(
10721                ReadXdrIter::<_, Frame<PathPaymentStrictSendResultCode>>::new(
10722                    &mut r.inner,
10723                    r.limits.clone(),
10724                )
10725                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t.0)))),
10726            ),
10727            TypeVariant::PathPaymentStrictSendResult => Box::new(
10728                ReadXdrIter::<_, Frame<PathPaymentStrictSendResult>>::new(
10729                    &mut r.inner,
10730                    r.limits.clone(),
10731                )
10732                .map(|r| r.map(|t| Self::PathPaymentStrictSendResult(Box::new(t.0)))),
10733            ),
10734            TypeVariant::PathPaymentStrictSendResultSuccess => Box::new(
10735                ReadXdrIter::<_, Frame<PathPaymentStrictSendResultSuccess>>::new(
10736                    &mut r.inner,
10737                    r.limits.clone(),
10738                )
10739                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t.0)))),
10740            ),
10741            TypeVariant::ManageSellOfferResultCode => Box::new(
10742                ReadXdrIter::<_, Frame<ManageSellOfferResultCode>>::new(
10743                    &mut r.inner,
10744                    r.limits.clone(),
10745                )
10746                .map(|r| r.map(|t| Self::ManageSellOfferResultCode(Box::new(t.0)))),
10747            ),
10748            TypeVariant::ManageOfferEffect => Box::new(
10749                ReadXdrIter::<_, Frame<ManageOfferEffect>>::new(&mut r.inner, r.limits.clone())
10750                    .map(|r| r.map(|t| Self::ManageOfferEffect(Box::new(t.0)))),
10751            ),
10752            TypeVariant::ManageOfferSuccessResult => Box::new(
10753                ReadXdrIter::<_, Frame<ManageOfferSuccessResult>>::new(
10754                    &mut r.inner,
10755                    r.limits.clone(),
10756                )
10757                .map(|r| r.map(|t| Self::ManageOfferSuccessResult(Box::new(t.0)))),
10758            ),
10759            TypeVariant::ManageOfferSuccessResultOffer => Box::new(
10760                ReadXdrIter::<_, Frame<ManageOfferSuccessResultOffer>>::new(
10761                    &mut r.inner,
10762                    r.limits.clone(),
10763                )
10764                .map(|r| r.map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t.0)))),
10765            ),
10766            TypeVariant::ManageSellOfferResult => Box::new(
10767                ReadXdrIter::<_, Frame<ManageSellOfferResult>>::new(&mut r.inner, r.limits.clone())
10768                    .map(|r| r.map(|t| Self::ManageSellOfferResult(Box::new(t.0)))),
10769            ),
10770            TypeVariant::ManageBuyOfferResultCode => Box::new(
10771                ReadXdrIter::<_, Frame<ManageBuyOfferResultCode>>::new(
10772                    &mut r.inner,
10773                    r.limits.clone(),
10774                )
10775                .map(|r| r.map(|t| Self::ManageBuyOfferResultCode(Box::new(t.0)))),
10776            ),
10777            TypeVariant::ManageBuyOfferResult => Box::new(
10778                ReadXdrIter::<_, Frame<ManageBuyOfferResult>>::new(&mut r.inner, r.limits.clone())
10779                    .map(|r| r.map(|t| Self::ManageBuyOfferResult(Box::new(t.0)))),
10780            ),
10781            TypeVariant::SetOptionsResultCode => Box::new(
10782                ReadXdrIter::<_, Frame<SetOptionsResultCode>>::new(&mut r.inner, r.limits.clone())
10783                    .map(|r| r.map(|t| Self::SetOptionsResultCode(Box::new(t.0)))),
10784            ),
10785            TypeVariant::SetOptionsResult => Box::new(
10786                ReadXdrIter::<_, Frame<SetOptionsResult>>::new(&mut r.inner, r.limits.clone())
10787                    .map(|r| r.map(|t| Self::SetOptionsResult(Box::new(t.0)))),
10788            ),
10789            TypeVariant::ChangeTrustResultCode => Box::new(
10790                ReadXdrIter::<_, Frame<ChangeTrustResultCode>>::new(&mut r.inner, r.limits.clone())
10791                    .map(|r| r.map(|t| Self::ChangeTrustResultCode(Box::new(t.0)))),
10792            ),
10793            TypeVariant::ChangeTrustResult => Box::new(
10794                ReadXdrIter::<_, Frame<ChangeTrustResult>>::new(&mut r.inner, r.limits.clone())
10795                    .map(|r| r.map(|t| Self::ChangeTrustResult(Box::new(t.0)))),
10796            ),
10797            TypeVariant::AllowTrustResultCode => Box::new(
10798                ReadXdrIter::<_, Frame<AllowTrustResultCode>>::new(&mut r.inner, r.limits.clone())
10799                    .map(|r| r.map(|t| Self::AllowTrustResultCode(Box::new(t.0)))),
10800            ),
10801            TypeVariant::AllowTrustResult => Box::new(
10802                ReadXdrIter::<_, Frame<AllowTrustResult>>::new(&mut r.inner, r.limits.clone())
10803                    .map(|r| r.map(|t| Self::AllowTrustResult(Box::new(t.0)))),
10804            ),
10805            TypeVariant::AccountMergeResultCode => Box::new(
10806                ReadXdrIter::<_, Frame<AccountMergeResultCode>>::new(
10807                    &mut r.inner,
10808                    r.limits.clone(),
10809                )
10810                .map(|r| r.map(|t| Self::AccountMergeResultCode(Box::new(t.0)))),
10811            ),
10812            TypeVariant::AccountMergeResult => Box::new(
10813                ReadXdrIter::<_, Frame<AccountMergeResult>>::new(&mut r.inner, r.limits.clone())
10814                    .map(|r| r.map(|t| Self::AccountMergeResult(Box::new(t.0)))),
10815            ),
10816            TypeVariant::InflationResultCode => Box::new(
10817                ReadXdrIter::<_, Frame<InflationResultCode>>::new(&mut r.inner, r.limits.clone())
10818                    .map(|r| r.map(|t| Self::InflationResultCode(Box::new(t.0)))),
10819            ),
10820            TypeVariant::InflationPayout => Box::new(
10821                ReadXdrIter::<_, Frame<InflationPayout>>::new(&mut r.inner, r.limits.clone())
10822                    .map(|r| r.map(|t| Self::InflationPayout(Box::new(t.0)))),
10823            ),
10824            TypeVariant::InflationResult => Box::new(
10825                ReadXdrIter::<_, Frame<InflationResult>>::new(&mut r.inner, r.limits.clone())
10826                    .map(|r| r.map(|t| Self::InflationResult(Box::new(t.0)))),
10827            ),
10828            TypeVariant::ManageDataResultCode => Box::new(
10829                ReadXdrIter::<_, Frame<ManageDataResultCode>>::new(&mut r.inner, r.limits.clone())
10830                    .map(|r| r.map(|t| Self::ManageDataResultCode(Box::new(t.0)))),
10831            ),
10832            TypeVariant::ManageDataResult => Box::new(
10833                ReadXdrIter::<_, Frame<ManageDataResult>>::new(&mut r.inner, r.limits.clone())
10834                    .map(|r| r.map(|t| Self::ManageDataResult(Box::new(t.0)))),
10835            ),
10836            TypeVariant::BumpSequenceResultCode => Box::new(
10837                ReadXdrIter::<_, Frame<BumpSequenceResultCode>>::new(
10838                    &mut r.inner,
10839                    r.limits.clone(),
10840                )
10841                .map(|r| r.map(|t| Self::BumpSequenceResultCode(Box::new(t.0)))),
10842            ),
10843            TypeVariant::BumpSequenceResult => Box::new(
10844                ReadXdrIter::<_, Frame<BumpSequenceResult>>::new(&mut r.inner, r.limits.clone())
10845                    .map(|r| r.map(|t| Self::BumpSequenceResult(Box::new(t.0)))),
10846            ),
10847            TypeVariant::CreateClaimableBalanceResultCode => Box::new(
10848                ReadXdrIter::<_, Frame<CreateClaimableBalanceResultCode>>::new(
10849                    &mut r.inner,
10850                    r.limits.clone(),
10851                )
10852                .map(|r| r.map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t.0)))),
10853            ),
10854            TypeVariant::CreateClaimableBalanceResult => Box::new(
10855                ReadXdrIter::<_, Frame<CreateClaimableBalanceResult>>::new(
10856                    &mut r.inner,
10857                    r.limits.clone(),
10858                )
10859                .map(|r| r.map(|t| Self::CreateClaimableBalanceResult(Box::new(t.0)))),
10860            ),
10861            TypeVariant::ClaimClaimableBalanceResultCode => Box::new(
10862                ReadXdrIter::<_, Frame<ClaimClaimableBalanceResultCode>>::new(
10863                    &mut r.inner,
10864                    r.limits.clone(),
10865                )
10866                .map(|r| r.map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t.0)))),
10867            ),
10868            TypeVariant::ClaimClaimableBalanceResult => Box::new(
10869                ReadXdrIter::<_, Frame<ClaimClaimableBalanceResult>>::new(
10870                    &mut r.inner,
10871                    r.limits.clone(),
10872                )
10873                .map(|r| r.map(|t| Self::ClaimClaimableBalanceResult(Box::new(t.0)))),
10874            ),
10875            TypeVariant::BeginSponsoringFutureReservesResultCode => Box::new(
10876                ReadXdrIter::<_, Frame<BeginSponsoringFutureReservesResultCode>>::new(
10877                    &mut r.inner,
10878                    r.limits.clone(),
10879                )
10880                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t.0)))),
10881            ),
10882            TypeVariant::BeginSponsoringFutureReservesResult => Box::new(
10883                ReadXdrIter::<_, Frame<BeginSponsoringFutureReservesResult>>::new(
10884                    &mut r.inner,
10885                    r.limits.clone(),
10886                )
10887                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t.0)))),
10888            ),
10889            TypeVariant::EndSponsoringFutureReservesResultCode => Box::new(
10890                ReadXdrIter::<_, Frame<EndSponsoringFutureReservesResultCode>>::new(
10891                    &mut r.inner,
10892                    r.limits.clone(),
10893                )
10894                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t.0)))),
10895            ),
10896            TypeVariant::EndSponsoringFutureReservesResult => Box::new(
10897                ReadXdrIter::<_, Frame<EndSponsoringFutureReservesResult>>::new(
10898                    &mut r.inner,
10899                    r.limits.clone(),
10900                )
10901                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t.0)))),
10902            ),
10903            TypeVariant::RevokeSponsorshipResultCode => Box::new(
10904                ReadXdrIter::<_, Frame<RevokeSponsorshipResultCode>>::new(
10905                    &mut r.inner,
10906                    r.limits.clone(),
10907                )
10908                .map(|r| r.map(|t| Self::RevokeSponsorshipResultCode(Box::new(t.0)))),
10909            ),
10910            TypeVariant::RevokeSponsorshipResult => Box::new(
10911                ReadXdrIter::<_, Frame<RevokeSponsorshipResult>>::new(
10912                    &mut r.inner,
10913                    r.limits.clone(),
10914                )
10915                .map(|r| r.map(|t| Self::RevokeSponsorshipResult(Box::new(t.0)))),
10916            ),
10917            TypeVariant::ClawbackResultCode => Box::new(
10918                ReadXdrIter::<_, Frame<ClawbackResultCode>>::new(&mut r.inner, r.limits.clone())
10919                    .map(|r| r.map(|t| Self::ClawbackResultCode(Box::new(t.0)))),
10920            ),
10921            TypeVariant::ClawbackResult => Box::new(
10922                ReadXdrIter::<_, Frame<ClawbackResult>>::new(&mut r.inner, r.limits.clone())
10923                    .map(|r| r.map(|t| Self::ClawbackResult(Box::new(t.0)))),
10924            ),
10925            TypeVariant::ClawbackClaimableBalanceResultCode => Box::new(
10926                ReadXdrIter::<_, Frame<ClawbackClaimableBalanceResultCode>>::new(
10927                    &mut r.inner,
10928                    r.limits.clone(),
10929                )
10930                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t.0)))),
10931            ),
10932            TypeVariant::ClawbackClaimableBalanceResult => Box::new(
10933                ReadXdrIter::<_, Frame<ClawbackClaimableBalanceResult>>::new(
10934                    &mut r.inner,
10935                    r.limits.clone(),
10936                )
10937                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t.0)))),
10938            ),
10939            TypeVariant::SetTrustLineFlagsResultCode => Box::new(
10940                ReadXdrIter::<_, Frame<SetTrustLineFlagsResultCode>>::new(
10941                    &mut r.inner,
10942                    r.limits.clone(),
10943                )
10944                .map(|r| r.map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t.0)))),
10945            ),
10946            TypeVariant::SetTrustLineFlagsResult => Box::new(
10947                ReadXdrIter::<_, Frame<SetTrustLineFlagsResult>>::new(
10948                    &mut r.inner,
10949                    r.limits.clone(),
10950                )
10951                .map(|r| r.map(|t| Self::SetTrustLineFlagsResult(Box::new(t.0)))),
10952            ),
10953            TypeVariant::LiquidityPoolDepositResultCode => Box::new(
10954                ReadXdrIter::<_, Frame<LiquidityPoolDepositResultCode>>::new(
10955                    &mut r.inner,
10956                    r.limits.clone(),
10957                )
10958                .map(|r| r.map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t.0)))),
10959            ),
10960            TypeVariant::LiquidityPoolDepositResult => Box::new(
10961                ReadXdrIter::<_, Frame<LiquidityPoolDepositResult>>::new(
10962                    &mut r.inner,
10963                    r.limits.clone(),
10964                )
10965                .map(|r| r.map(|t| Self::LiquidityPoolDepositResult(Box::new(t.0)))),
10966            ),
10967            TypeVariant::LiquidityPoolWithdrawResultCode => Box::new(
10968                ReadXdrIter::<_, Frame<LiquidityPoolWithdrawResultCode>>::new(
10969                    &mut r.inner,
10970                    r.limits.clone(),
10971                )
10972                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t.0)))),
10973            ),
10974            TypeVariant::LiquidityPoolWithdrawResult => Box::new(
10975                ReadXdrIter::<_, Frame<LiquidityPoolWithdrawResult>>::new(
10976                    &mut r.inner,
10977                    r.limits.clone(),
10978                )
10979                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t.0)))),
10980            ),
10981            TypeVariant::InvokeHostFunctionResultCode => Box::new(
10982                ReadXdrIter::<_, Frame<InvokeHostFunctionResultCode>>::new(
10983                    &mut r.inner,
10984                    r.limits.clone(),
10985                )
10986                .map(|r| r.map(|t| Self::InvokeHostFunctionResultCode(Box::new(t.0)))),
10987            ),
10988            TypeVariant::InvokeHostFunctionResult => Box::new(
10989                ReadXdrIter::<_, Frame<InvokeHostFunctionResult>>::new(
10990                    &mut r.inner,
10991                    r.limits.clone(),
10992                )
10993                .map(|r| r.map(|t| Self::InvokeHostFunctionResult(Box::new(t.0)))),
10994            ),
10995            TypeVariant::ExtendFootprintTtlResultCode => Box::new(
10996                ReadXdrIter::<_, Frame<ExtendFootprintTtlResultCode>>::new(
10997                    &mut r.inner,
10998                    r.limits.clone(),
10999                )
11000                .map(|r| r.map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t.0)))),
11001            ),
11002            TypeVariant::ExtendFootprintTtlResult => Box::new(
11003                ReadXdrIter::<_, Frame<ExtendFootprintTtlResult>>::new(
11004                    &mut r.inner,
11005                    r.limits.clone(),
11006                )
11007                .map(|r| r.map(|t| Self::ExtendFootprintTtlResult(Box::new(t.0)))),
11008            ),
11009            TypeVariant::RestoreFootprintResultCode => Box::new(
11010                ReadXdrIter::<_, Frame<RestoreFootprintResultCode>>::new(
11011                    &mut r.inner,
11012                    r.limits.clone(),
11013                )
11014                .map(|r| r.map(|t| Self::RestoreFootprintResultCode(Box::new(t.0)))),
11015            ),
11016            TypeVariant::RestoreFootprintResult => Box::new(
11017                ReadXdrIter::<_, Frame<RestoreFootprintResult>>::new(
11018                    &mut r.inner,
11019                    r.limits.clone(),
11020                )
11021                .map(|r| r.map(|t| Self::RestoreFootprintResult(Box::new(t.0)))),
11022            ),
11023            TypeVariant::OperationResultCode => Box::new(
11024                ReadXdrIter::<_, Frame<OperationResultCode>>::new(&mut r.inner, r.limits.clone())
11025                    .map(|r| r.map(|t| Self::OperationResultCode(Box::new(t.0)))),
11026            ),
11027            TypeVariant::OperationResult => Box::new(
11028                ReadXdrIter::<_, Frame<OperationResult>>::new(&mut r.inner, r.limits.clone())
11029                    .map(|r| r.map(|t| Self::OperationResult(Box::new(t.0)))),
11030            ),
11031            TypeVariant::OperationResultTr => Box::new(
11032                ReadXdrIter::<_, Frame<OperationResultTr>>::new(&mut r.inner, r.limits.clone())
11033                    .map(|r| r.map(|t| Self::OperationResultTr(Box::new(t.0)))),
11034            ),
11035            TypeVariant::TransactionResultCode => Box::new(
11036                ReadXdrIter::<_, Frame<TransactionResultCode>>::new(&mut r.inner, r.limits.clone())
11037                    .map(|r| r.map(|t| Self::TransactionResultCode(Box::new(t.0)))),
11038            ),
11039            TypeVariant::InnerTransactionResult => Box::new(
11040                ReadXdrIter::<_, Frame<InnerTransactionResult>>::new(
11041                    &mut r.inner,
11042                    r.limits.clone(),
11043                )
11044                .map(|r| r.map(|t| Self::InnerTransactionResult(Box::new(t.0)))),
11045            ),
11046            TypeVariant::InnerTransactionResultResult => Box::new(
11047                ReadXdrIter::<_, Frame<InnerTransactionResultResult>>::new(
11048                    &mut r.inner,
11049                    r.limits.clone(),
11050                )
11051                .map(|r| r.map(|t| Self::InnerTransactionResultResult(Box::new(t.0)))),
11052            ),
11053            TypeVariant::InnerTransactionResultExt => Box::new(
11054                ReadXdrIter::<_, Frame<InnerTransactionResultExt>>::new(
11055                    &mut r.inner,
11056                    r.limits.clone(),
11057                )
11058                .map(|r| r.map(|t| Self::InnerTransactionResultExt(Box::new(t.0)))),
11059            ),
11060            TypeVariant::InnerTransactionResultPair => Box::new(
11061                ReadXdrIter::<_, Frame<InnerTransactionResultPair>>::new(
11062                    &mut r.inner,
11063                    r.limits.clone(),
11064                )
11065                .map(|r| r.map(|t| Self::InnerTransactionResultPair(Box::new(t.0)))),
11066            ),
11067            TypeVariant::TransactionResult => Box::new(
11068                ReadXdrIter::<_, Frame<TransactionResult>>::new(&mut r.inner, r.limits.clone())
11069                    .map(|r| r.map(|t| Self::TransactionResult(Box::new(t.0)))),
11070            ),
11071            TypeVariant::TransactionResultResult => Box::new(
11072                ReadXdrIter::<_, Frame<TransactionResultResult>>::new(
11073                    &mut r.inner,
11074                    r.limits.clone(),
11075                )
11076                .map(|r| r.map(|t| Self::TransactionResultResult(Box::new(t.0)))),
11077            ),
11078            TypeVariant::TransactionResultExt => Box::new(
11079                ReadXdrIter::<_, Frame<TransactionResultExt>>::new(&mut r.inner, r.limits.clone())
11080                    .map(|r| r.map(|t| Self::TransactionResultExt(Box::new(t.0)))),
11081            ),
11082            TypeVariant::Hash => Box::new(
11083                ReadXdrIter::<_, Frame<Hash>>::new(&mut r.inner, r.limits.clone())
11084                    .map(|r| r.map(|t| Self::Hash(Box::new(t.0)))),
11085            ),
11086            TypeVariant::Uint256 => Box::new(
11087                ReadXdrIter::<_, Frame<Uint256>>::new(&mut r.inner, r.limits.clone())
11088                    .map(|r| r.map(|t| Self::Uint256(Box::new(t.0)))),
11089            ),
11090            TypeVariant::Uint32 => Box::new(
11091                ReadXdrIter::<_, Frame<Uint32>>::new(&mut r.inner, r.limits.clone())
11092                    .map(|r| r.map(|t| Self::Uint32(Box::new(t.0)))),
11093            ),
11094            TypeVariant::Int32 => Box::new(
11095                ReadXdrIter::<_, Frame<Int32>>::new(&mut r.inner, r.limits.clone())
11096                    .map(|r| r.map(|t| Self::Int32(Box::new(t.0)))),
11097            ),
11098            TypeVariant::Uint64 => Box::new(
11099                ReadXdrIter::<_, Frame<Uint64>>::new(&mut r.inner, r.limits.clone())
11100                    .map(|r| r.map(|t| Self::Uint64(Box::new(t.0)))),
11101            ),
11102            TypeVariant::Int64 => Box::new(
11103                ReadXdrIter::<_, Frame<Int64>>::new(&mut r.inner, r.limits.clone())
11104                    .map(|r| r.map(|t| Self::Int64(Box::new(t.0)))),
11105            ),
11106            TypeVariant::TimePoint => Box::new(
11107                ReadXdrIter::<_, Frame<TimePoint>>::new(&mut r.inner, r.limits.clone())
11108                    .map(|r| r.map(|t| Self::TimePoint(Box::new(t.0)))),
11109            ),
11110            TypeVariant::Duration => Box::new(
11111                ReadXdrIter::<_, Frame<Duration>>::new(&mut r.inner, r.limits.clone())
11112                    .map(|r| r.map(|t| Self::Duration(Box::new(t.0)))),
11113            ),
11114            TypeVariant::ExtensionPoint => Box::new(
11115                ReadXdrIter::<_, Frame<ExtensionPoint>>::new(&mut r.inner, r.limits.clone())
11116                    .map(|r| r.map(|t| Self::ExtensionPoint(Box::new(t.0)))),
11117            ),
11118            TypeVariant::CryptoKeyType => Box::new(
11119                ReadXdrIter::<_, Frame<CryptoKeyType>>::new(&mut r.inner, r.limits.clone())
11120                    .map(|r| r.map(|t| Self::CryptoKeyType(Box::new(t.0)))),
11121            ),
11122            TypeVariant::PublicKeyType => Box::new(
11123                ReadXdrIter::<_, Frame<PublicKeyType>>::new(&mut r.inner, r.limits.clone())
11124                    .map(|r| r.map(|t| Self::PublicKeyType(Box::new(t.0)))),
11125            ),
11126            TypeVariant::SignerKeyType => Box::new(
11127                ReadXdrIter::<_, Frame<SignerKeyType>>::new(&mut r.inner, r.limits.clone())
11128                    .map(|r| r.map(|t| Self::SignerKeyType(Box::new(t.0)))),
11129            ),
11130            TypeVariant::PublicKey => Box::new(
11131                ReadXdrIter::<_, Frame<PublicKey>>::new(&mut r.inner, r.limits.clone())
11132                    .map(|r| r.map(|t| Self::PublicKey(Box::new(t.0)))),
11133            ),
11134            TypeVariant::SignerKey => Box::new(
11135                ReadXdrIter::<_, Frame<SignerKey>>::new(&mut r.inner, r.limits.clone())
11136                    .map(|r| r.map(|t| Self::SignerKey(Box::new(t.0)))),
11137            ),
11138            TypeVariant::SignerKeyEd25519SignedPayload => Box::new(
11139                ReadXdrIter::<_, Frame<SignerKeyEd25519SignedPayload>>::new(
11140                    &mut r.inner,
11141                    r.limits.clone(),
11142                )
11143                .map(|r| r.map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t.0)))),
11144            ),
11145            TypeVariant::Signature => Box::new(
11146                ReadXdrIter::<_, Frame<Signature>>::new(&mut r.inner, r.limits.clone())
11147                    .map(|r| r.map(|t| Self::Signature(Box::new(t.0)))),
11148            ),
11149            TypeVariant::SignatureHint => Box::new(
11150                ReadXdrIter::<_, Frame<SignatureHint>>::new(&mut r.inner, r.limits.clone())
11151                    .map(|r| r.map(|t| Self::SignatureHint(Box::new(t.0)))),
11152            ),
11153            TypeVariant::NodeId => Box::new(
11154                ReadXdrIter::<_, Frame<NodeId>>::new(&mut r.inner, r.limits.clone())
11155                    .map(|r| r.map(|t| Self::NodeId(Box::new(t.0)))),
11156            ),
11157            TypeVariant::AccountId => Box::new(
11158                ReadXdrIter::<_, Frame<AccountId>>::new(&mut r.inner, r.limits.clone())
11159                    .map(|r| r.map(|t| Self::AccountId(Box::new(t.0)))),
11160            ),
11161            TypeVariant::ContractId => Box::new(
11162                ReadXdrIter::<_, Frame<ContractId>>::new(&mut r.inner, r.limits.clone())
11163                    .map(|r| r.map(|t| Self::ContractId(Box::new(t.0)))),
11164            ),
11165            TypeVariant::Curve25519Secret => Box::new(
11166                ReadXdrIter::<_, Frame<Curve25519Secret>>::new(&mut r.inner, r.limits.clone())
11167                    .map(|r| r.map(|t| Self::Curve25519Secret(Box::new(t.0)))),
11168            ),
11169            TypeVariant::Curve25519Public => Box::new(
11170                ReadXdrIter::<_, Frame<Curve25519Public>>::new(&mut r.inner, r.limits.clone())
11171                    .map(|r| r.map(|t| Self::Curve25519Public(Box::new(t.0)))),
11172            ),
11173            TypeVariant::HmacSha256Key => Box::new(
11174                ReadXdrIter::<_, Frame<HmacSha256Key>>::new(&mut r.inner, r.limits.clone())
11175                    .map(|r| r.map(|t| Self::HmacSha256Key(Box::new(t.0)))),
11176            ),
11177            TypeVariant::HmacSha256Mac => Box::new(
11178                ReadXdrIter::<_, Frame<HmacSha256Mac>>::new(&mut r.inner, r.limits.clone())
11179                    .map(|r| r.map(|t| Self::HmacSha256Mac(Box::new(t.0)))),
11180            ),
11181            TypeVariant::ShortHashSeed => Box::new(
11182                ReadXdrIter::<_, Frame<ShortHashSeed>>::new(&mut r.inner, r.limits.clone())
11183                    .map(|r| r.map(|t| Self::ShortHashSeed(Box::new(t.0)))),
11184            ),
11185            TypeVariant::BinaryFuseFilterType => Box::new(
11186                ReadXdrIter::<_, Frame<BinaryFuseFilterType>>::new(&mut r.inner, r.limits.clone())
11187                    .map(|r| r.map(|t| Self::BinaryFuseFilterType(Box::new(t.0)))),
11188            ),
11189            TypeVariant::SerializedBinaryFuseFilter => Box::new(
11190                ReadXdrIter::<_, Frame<SerializedBinaryFuseFilter>>::new(
11191                    &mut r.inner,
11192                    r.limits.clone(),
11193                )
11194                .map(|r| r.map(|t| Self::SerializedBinaryFuseFilter(Box::new(t.0)))),
11195            ),
11196            TypeVariant::PoolId => Box::new(
11197                ReadXdrIter::<_, Frame<PoolId>>::new(&mut r.inner, r.limits.clone())
11198                    .map(|r| r.map(|t| Self::PoolId(Box::new(t.0)))),
11199            ),
11200            TypeVariant::ClaimableBalanceIdType => Box::new(
11201                ReadXdrIter::<_, Frame<ClaimableBalanceIdType>>::new(
11202                    &mut r.inner,
11203                    r.limits.clone(),
11204                )
11205                .map(|r| r.map(|t| Self::ClaimableBalanceIdType(Box::new(t.0)))),
11206            ),
11207            TypeVariant::ClaimableBalanceId => Box::new(
11208                ReadXdrIter::<_, Frame<ClaimableBalanceId>>::new(&mut r.inner, r.limits.clone())
11209                    .map(|r| r.map(|t| Self::ClaimableBalanceId(Box::new(t.0)))),
11210            ),
11211            #[cfg(feature = "test_feature")]
11212            TypeVariant::TestNextType => Box::new(
11213                ReadXdrIter::<_, Frame<TestNextType>>::new(&mut r.inner, r.limits.clone())
11214                    .map(|r| r.map(|t| Self::TestNextType(Box::new(t.0)))),
11215            ),
11216        }
11217    }
11218
11219    #[cfg(feature = "base64")]
11220    #[allow(clippy::too_many_lines)]
11221    pub fn read_xdr_base64_iter<R: Read>(
11222        v: TypeVariant,
11223        r: &mut Limited<R>,
11224    ) -> Box<dyn Iterator<Item = Result<Self, Error>> + '_> {
11225        let dec = base64::read::DecoderReader::new(
11226            SkipWhitespace::new(&mut r.inner),
11227            &base64::engine::general_purpose::STANDARD,
11228        );
11229        match v {
11230            TypeVariant::Value => Box::new(
11231                ReadXdrIter::<_, Value>::new(dec, r.limits.clone())
11232                    .map(|r| r.map(|t| Self::Value(Box::new(t)))),
11233            ),
11234            TypeVariant::ScpBallot => Box::new(
11235                ReadXdrIter::<_, ScpBallot>::new(dec, r.limits.clone())
11236                    .map(|r| r.map(|t| Self::ScpBallot(Box::new(t)))),
11237            ),
11238            TypeVariant::ScpStatementType => Box::new(
11239                ReadXdrIter::<_, ScpStatementType>::new(dec, r.limits.clone())
11240                    .map(|r| r.map(|t| Self::ScpStatementType(Box::new(t)))),
11241            ),
11242            TypeVariant::ScpNomination => Box::new(
11243                ReadXdrIter::<_, ScpNomination>::new(dec, r.limits.clone())
11244                    .map(|r| r.map(|t| Self::ScpNomination(Box::new(t)))),
11245            ),
11246            TypeVariant::ScpStatement => Box::new(
11247                ReadXdrIter::<_, ScpStatement>::new(dec, r.limits.clone())
11248                    .map(|r| r.map(|t| Self::ScpStatement(Box::new(t)))),
11249            ),
11250            TypeVariant::ScpStatementPledges => Box::new(
11251                ReadXdrIter::<_, ScpStatementPledges>::new(dec, r.limits.clone())
11252                    .map(|r| r.map(|t| Self::ScpStatementPledges(Box::new(t)))),
11253            ),
11254            TypeVariant::ScpStatementPrepare => Box::new(
11255                ReadXdrIter::<_, ScpStatementPrepare>::new(dec, r.limits.clone())
11256                    .map(|r| r.map(|t| Self::ScpStatementPrepare(Box::new(t)))),
11257            ),
11258            TypeVariant::ScpStatementConfirm => Box::new(
11259                ReadXdrIter::<_, ScpStatementConfirm>::new(dec, r.limits.clone())
11260                    .map(|r| r.map(|t| Self::ScpStatementConfirm(Box::new(t)))),
11261            ),
11262            TypeVariant::ScpStatementExternalize => Box::new(
11263                ReadXdrIter::<_, ScpStatementExternalize>::new(dec, r.limits.clone())
11264                    .map(|r| r.map(|t| Self::ScpStatementExternalize(Box::new(t)))),
11265            ),
11266            TypeVariant::ScpEnvelope => Box::new(
11267                ReadXdrIter::<_, ScpEnvelope>::new(dec, r.limits.clone())
11268                    .map(|r| r.map(|t| Self::ScpEnvelope(Box::new(t)))),
11269            ),
11270            TypeVariant::ScpQuorumSet => Box::new(
11271                ReadXdrIter::<_, ScpQuorumSet>::new(dec, r.limits.clone())
11272                    .map(|r| r.map(|t| Self::ScpQuorumSet(Box::new(t)))),
11273            ),
11274            TypeVariant::EncodedLedgerKey => Box::new(
11275                ReadXdrIter::<_, EncodedLedgerKey>::new(dec, r.limits.clone())
11276                    .map(|r| r.map(|t| Self::EncodedLedgerKey(Box::new(t)))),
11277            ),
11278            TypeVariant::ConfigSettingContractExecutionLanesV0 => Box::new(
11279                ReadXdrIter::<_, ConfigSettingContractExecutionLanesV0>::new(dec, r.limits.clone())
11280                    .map(|r| r.map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t)))),
11281            ),
11282            TypeVariant::ConfigSettingContractComputeV0 => Box::new(
11283                ReadXdrIter::<_, ConfigSettingContractComputeV0>::new(dec, r.limits.clone())
11284                    .map(|r| r.map(|t| Self::ConfigSettingContractComputeV0(Box::new(t)))),
11285            ),
11286            TypeVariant::ConfigSettingContractParallelComputeV0 => Box::new(
11287                ReadXdrIter::<_, ConfigSettingContractParallelComputeV0>::new(
11288                    dec,
11289                    r.limits.clone(),
11290                )
11291                .map(|r| r.map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t)))),
11292            ),
11293            TypeVariant::ConfigSettingContractLedgerCostV0 => Box::new(
11294                ReadXdrIter::<_, ConfigSettingContractLedgerCostV0>::new(dec, r.limits.clone())
11295                    .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t)))),
11296            ),
11297            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Box::new(
11298                ReadXdrIter::<_, ConfigSettingContractLedgerCostExtV0>::new(dec, r.limits.clone())
11299                    .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t)))),
11300            ),
11301            TypeVariant::ConfigSettingContractHistoricalDataV0 => Box::new(
11302                ReadXdrIter::<_, ConfigSettingContractHistoricalDataV0>::new(dec, r.limits.clone())
11303                    .map(|r| r.map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t)))),
11304            ),
11305            TypeVariant::ConfigSettingContractEventsV0 => Box::new(
11306                ReadXdrIter::<_, ConfigSettingContractEventsV0>::new(dec, r.limits.clone())
11307                    .map(|r| r.map(|t| Self::ConfigSettingContractEventsV0(Box::new(t)))),
11308            ),
11309            TypeVariant::ConfigSettingContractBandwidthV0 => Box::new(
11310                ReadXdrIter::<_, ConfigSettingContractBandwidthV0>::new(dec, r.limits.clone())
11311                    .map(|r| r.map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t)))),
11312            ),
11313            TypeVariant::ContractCostType => Box::new(
11314                ReadXdrIter::<_, ContractCostType>::new(dec, r.limits.clone())
11315                    .map(|r| r.map(|t| Self::ContractCostType(Box::new(t)))),
11316            ),
11317            TypeVariant::ContractCostParamEntry => Box::new(
11318                ReadXdrIter::<_, ContractCostParamEntry>::new(dec, r.limits.clone())
11319                    .map(|r| r.map(|t| Self::ContractCostParamEntry(Box::new(t)))),
11320            ),
11321            TypeVariant::StateArchivalSettings => Box::new(
11322                ReadXdrIter::<_, StateArchivalSettings>::new(dec, r.limits.clone())
11323                    .map(|r| r.map(|t| Self::StateArchivalSettings(Box::new(t)))),
11324            ),
11325            TypeVariant::EvictionIterator => Box::new(
11326                ReadXdrIter::<_, EvictionIterator>::new(dec, r.limits.clone())
11327                    .map(|r| r.map(|t| Self::EvictionIterator(Box::new(t)))),
11328            ),
11329            TypeVariant::ConfigSettingScpTiming => Box::new(
11330                ReadXdrIter::<_, ConfigSettingScpTiming>::new(dec, r.limits.clone())
11331                    .map(|r| r.map(|t| Self::ConfigSettingScpTiming(Box::new(t)))),
11332            ),
11333            TypeVariant::FrozenLedgerKeys => Box::new(
11334                ReadXdrIter::<_, FrozenLedgerKeys>::new(dec, r.limits.clone())
11335                    .map(|r| r.map(|t| Self::FrozenLedgerKeys(Box::new(t)))),
11336            ),
11337            TypeVariant::FrozenLedgerKeysDelta => Box::new(
11338                ReadXdrIter::<_, FrozenLedgerKeysDelta>::new(dec, r.limits.clone())
11339                    .map(|r| r.map(|t| Self::FrozenLedgerKeysDelta(Box::new(t)))),
11340            ),
11341            TypeVariant::FreezeBypassTxs => Box::new(
11342                ReadXdrIter::<_, FreezeBypassTxs>::new(dec, r.limits.clone())
11343                    .map(|r| r.map(|t| Self::FreezeBypassTxs(Box::new(t)))),
11344            ),
11345            TypeVariant::FreezeBypassTxsDelta => Box::new(
11346                ReadXdrIter::<_, FreezeBypassTxsDelta>::new(dec, r.limits.clone())
11347                    .map(|r| r.map(|t| Self::FreezeBypassTxsDelta(Box::new(t)))),
11348            ),
11349            TypeVariant::ContractCostParams => Box::new(
11350                ReadXdrIter::<_, ContractCostParams>::new(dec, r.limits.clone())
11351                    .map(|r| r.map(|t| Self::ContractCostParams(Box::new(t)))),
11352            ),
11353            TypeVariant::ConfigSettingId => Box::new(
11354                ReadXdrIter::<_, ConfigSettingId>::new(dec, r.limits.clone())
11355                    .map(|r| r.map(|t| Self::ConfigSettingId(Box::new(t)))),
11356            ),
11357            TypeVariant::ConfigSettingEntry => Box::new(
11358                ReadXdrIter::<_, ConfigSettingEntry>::new(dec, r.limits.clone())
11359                    .map(|r| r.map(|t| Self::ConfigSettingEntry(Box::new(t)))),
11360            ),
11361            TypeVariant::ScEnvMetaKind => Box::new(
11362                ReadXdrIter::<_, ScEnvMetaKind>::new(dec, r.limits.clone())
11363                    .map(|r| r.map(|t| Self::ScEnvMetaKind(Box::new(t)))),
11364            ),
11365            TypeVariant::ScEnvMetaEntry => Box::new(
11366                ReadXdrIter::<_, ScEnvMetaEntry>::new(dec, r.limits.clone())
11367                    .map(|r| r.map(|t| Self::ScEnvMetaEntry(Box::new(t)))),
11368            ),
11369            TypeVariant::ScEnvMetaEntryInterfaceVersion => Box::new(
11370                ReadXdrIter::<_, ScEnvMetaEntryInterfaceVersion>::new(dec, r.limits.clone())
11371                    .map(|r| r.map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t)))),
11372            ),
11373            TypeVariant::ScMetaV0 => Box::new(
11374                ReadXdrIter::<_, ScMetaV0>::new(dec, r.limits.clone())
11375                    .map(|r| r.map(|t| Self::ScMetaV0(Box::new(t)))),
11376            ),
11377            TypeVariant::ScMetaKind => Box::new(
11378                ReadXdrIter::<_, ScMetaKind>::new(dec, r.limits.clone())
11379                    .map(|r| r.map(|t| Self::ScMetaKind(Box::new(t)))),
11380            ),
11381            TypeVariant::ScMetaEntry => Box::new(
11382                ReadXdrIter::<_, ScMetaEntry>::new(dec, r.limits.clone())
11383                    .map(|r| r.map(|t| Self::ScMetaEntry(Box::new(t)))),
11384            ),
11385            TypeVariant::ScSpecType => Box::new(
11386                ReadXdrIter::<_, ScSpecType>::new(dec, r.limits.clone())
11387                    .map(|r| r.map(|t| Self::ScSpecType(Box::new(t)))),
11388            ),
11389            TypeVariant::ScSpecTypeOption => Box::new(
11390                ReadXdrIter::<_, ScSpecTypeOption>::new(dec, r.limits.clone())
11391                    .map(|r| r.map(|t| Self::ScSpecTypeOption(Box::new(t)))),
11392            ),
11393            TypeVariant::ScSpecTypeResult => Box::new(
11394                ReadXdrIter::<_, ScSpecTypeResult>::new(dec, r.limits.clone())
11395                    .map(|r| r.map(|t| Self::ScSpecTypeResult(Box::new(t)))),
11396            ),
11397            TypeVariant::ScSpecTypeVec => Box::new(
11398                ReadXdrIter::<_, ScSpecTypeVec>::new(dec, r.limits.clone())
11399                    .map(|r| r.map(|t| Self::ScSpecTypeVec(Box::new(t)))),
11400            ),
11401            TypeVariant::ScSpecTypeMap => Box::new(
11402                ReadXdrIter::<_, ScSpecTypeMap>::new(dec, r.limits.clone())
11403                    .map(|r| r.map(|t| Self::ScSpecTypeMap(Box::new(t)))),
11404            ),
11405            TypeVariant::ScSpecTypeTuple => Box::new(
11406                ReadXdrIter::<_, ScSpecTypeTuple>::new(dec, r.limits.clone())
11407                    .map(|r| r.map(|t| Self::ScSpecTypeTuple(Box::new(t)))),
11408            ),
11409            TypeVariant::ScSpecTypeBytesN => Box::new(
11410                ReadXdrIter::<_, ScSpecTypeBytesN>::new(dec, r.limits.clone())
11411                    .map(|r| r.map(|t| Self::ScSpecTypeBytesN(Box::new(t)))),
11412            ),
11413            TypeVariant::ScSpecTypeUdt => Box::new(
11414                ReadXdrIter::<_, ScSpecTypeUdt>::new(dec, r.limits.clone())
11415                    .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t)))),
11416            ),
11417            TypeVariant::ScSpecTypeDef => Box::new(
11418                ReadXdrIter::<_, ScSpecTypeDef>::new(dec, r.limits.clone())
11419                    .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t)))),
11420            ),
11421            TypeVariant::ScSpecUdtStructFieldV0 => Box::new(
11422                ReadXdrIter::<_, ScSpecUdtStructFieldV0>::new(dec, r.limits.clone())
11423                    .map(|r| r.map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t)))),
11424            ),
11425            TypeVariant::ScSpecUdtStructV0 => Box::new(
11426                ReadXdrIter::<_, ScSpecUdtStructV0>::new(dec, r.limits.clone())
11427                    .map(|r| r.map(|t| Self::ScSpecUdtStructV0(Box::new(t)))),
11428            ),
11429            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Box::new(
11430                ReadXdrIter::<_, ScSpecUdtUnionCaseVoidV0>::new(dec, r.limits.clone())
11431                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t)))),
11432            ),
11433            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Box::new(
11434                ReadXdrIter::<_, ScSpecUdtUnionCaseTupleV0>::new(dec, r.limits.clone())
11435                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t)))),
11436            ),
11437            TypeVariant::ScSpecUdtUnionCaseV0Kind => Box::new(
11438                ReadXdrIter::<_, ScSpecUdtUnionCaseV0Kind>::new(dec, r.limits.clone())
11439                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t)))),
11440            ),
11441            TypeVariant::ScSpecUdtUnionCaseV0 => Box::new(
11442                ReadXdrIter::<_, ScSpecUdtUnionCaseV0>::new(dec, r.limits.clone())
11443                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t)))),
11444            ),
11445            TypeVariant::ScSpecUdtUnionV0 => Box::new(
11446                ReadXdrIter::<_, ScSpecUdtUnionV0>::new(dec, r.limits.clone())
11447                    .map(|r| r.map(|t| Self::ScSpecUdtUnionV0(Box::new(t)))),
11448            ),
11449            TypeVariant::ScSpecUdtEnumCaseV0 => Box::new(
11450                ReadXdrIter::<_, ScSpecUdtEnumCaseV0>::new(dec, r.limits.clone())
11451                    .map(|r| r.map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t)))),
11452            ),
11453            TypeVariant::ScSpecUdtEnumV0 => Box::new(
11454                ReadXdrIter::<_, ScSpecUdtEnumV0>::new(dec, r.limits.clone())
11455                    .map(|r| r.map(|t| Self::ScSpecUdtEnumV0(Box::new(t)))),
11456            ),
11457            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Box::new(
11458                ReadXdrIter::<_, ScSpecUdtErrorEnumCaseV0>::new(dec, r.limits.clone())
11459                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t)))),
11460            ),
11461            TypeVariant::ScSpecUdtErrorEnumV0 => Box::new(
11462                ReadXdrIter::<_, ScSpecUdtErrorEnumV0>::new(dec, r.limits.clone())
11463                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t)))),
11464            ),
11465            TypeVariant::ScSpecFunctionInputV0 => Box::new(
11466                ReadXdrIter::<_, ScSpecFunctionInputV0>::new(dec, r.limits.clone())
11467                    .map(|r| r.map(|t| Self::ScSpecFunctionInputV0(Box::new(t)))),
11468            ),
11469            TypeVariant::ScSpecFunctionV0 => Box::new(
11470                ReadXdrIter::<_, ScSpecFunctionV0>::new(dec, r.limits.clone())
11471                    .map(|r| r.map(|t| Self::ScSpecFunctionV0(Box::new(t)))),
11472            ),
11473            TypeVariant::ScSpecEventParamLocationV0 => Box::new(
11474                ReadXdrIter::<_, ScSpecEventParamLocationV0>::new(dec, r.limits.clone())
11475                    .map(|r| r.map(|t| Self::ScSpecEventParamLocationV0(Box::new(t)))),
11476            ),
11477            TypeVariant::ScSpecEventParamV0 => Box::new(
11478                ReadXdrIter::<_, ScSpecEventParamV0>::new(dec, r.limits.clone())
11479                    .map(|r| r.map(|t| Self::ScSpecEventParamV0(Box::new(t)))),
11480            ),
11481            TypeVariant::ScSpecEventDataFormat => Box::new(
11482                ReadXdrIter::<_, ScSpecEventDataFormat>::new(dec, r.limits.clone())
11483                    .map(|r| r.map(|t| Self::ScSpecEventDataFormat(Box::new(t)))),
11484            ),
11485            TypeVariant::ScSpecEventV0 => Box::new(
11486                ReadXdrIter::<_, ScSpecEventV0>::new(dec, r.limits.clone())
11487                    .map(|r| r.map(|t| Self::ScSpecEventV0(Box::new(t)))),
11488            ),
11489            TypeVariant::ScSpecEntryKind => Box::new(
11490                ReadXdrIter::<_, ScSpecEntryKind>::new(dec, r.limits.clone())
11491                    .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t)))),
11492            ),
11493            TypeVariant::ScSpecEntry => Box::new(
11494                ReadXdrIter::<_, ScSpecEntry>::new(dec, r.limits.clone())
11495                    .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t)))),
11496            ),
11497            TypeVariant::ScValType => Box::new(
11498                ReadXdrIter::<_, ScValType>::new(dec, r.limits.clone())
11499                    .map(|r| r.map(|t| Self::ScValType(Box::new(t)))),
11500            ),
11501            TypeVariant::ScErrorType => Box::new(
11502                ReadXdrIter::<_, ScErrorType>::new(dec, r.limits.clone())
11503                    .map(|r| r.map(|t| Self::ScErrorType(Box::new(t)))),
11504            ),
11505            TypeVariant::ScErrorCode => Box::new(
11506                ReadXdrIter::<_, ScErrorCode>::new(dec, r.limits.clone())
11507                    .map(|r| r.map(|t| Self::ScErrorCode(Box::new(t)))),
11508            ),
11509            TypeVariant::ScError => Box::new(
11510                ReadXdrIter::<_, ScError>::new(dec, r.limits.clone())
11511                    .map(|r| r.map(|t| Self::ScError(Box::new(t)))),
11512            ),
11513            TypeVariant::UInt128Parts => Box::new(
11514                ReadXdrIter::<_, UInt128Parts>::new(dec, r.limits.clone())
11515                    .map(|r| r.map(|t| Self::UInt128Parts(Box::new(t)))),
11516            ),
11517            TypeVariant::Int128Parts => Box::new(
11518                ReadXdrIter::<_, Int128Parts>::new(dec, r.limits.clone())
11519                    .map(|r| r.map(|t| Self::Int128Parts(Box::new(t)))),
11520            ),
11521            TypeVariant::UInt256Parts => Box::new(
11522                ReadXdrIter::<_, UInt256Parts>::new(dec, r.limits.clone())
11523                    .map(|r| r.map(|t| Self::UInt256Parts(Box::new(t)))),
11524            ),
11525            TypeVariant::Int256Parts => Box::new(
11526                ReadXdrIter::<_, Int256Parts>::new(dec, r.limits.clone())
11527                    .map(|r| r.map(|t| Self::Int256Parts(Box::new(t)))),
11528            ),
11529            TypeVariant::ContractExecutableType => Box::new(
11530                ReadXdrIter::<_, ContractExecutableType>::new(dec, r.limits.clone())
11531                    .map(|r| r.map(|t| Self::ContractExecutableType(Box::new(t)))),
11532            ),
11533            TypeVariant::ContractExecutable => Box::new(
11534                ReadXdrIter::<_, ContractExecutable>::new(dec, r.limits.clone())
11535                    .map(|r| r.map(|t| Self::ContractExecutable(Box::new(t)))),
11536            ),
11537            TypeVariant::ScAddressType => Box::new(
11538                ReadXdrIter::<_, ScAddressType>::new(dec, r.limits.clone())
11539                    .map(|r| r.map(|t| Self::ScAddressType(Box::new(t)))),
11540            ),
11541            TypeVariant::MuxedEd25519Account => Box::new(
11542                ReadXdrIter::<_, MuxedEd25519Account>::new(dec, r.limits.clone())
11543                    .map(|r| r.map(|t| Self::MuxedEd25519Account(Box::new(t)))),
11544            ),
11545            TypeVariant::ScAddress => Box::new(
11546                ReadXdrIter::<_, ScAddress>::new(dec, r.limits.clone())
11547                    .map(|r| r.map(|t| Self::ScAddress(Box::new(t)))),
11548            ),
11549            TypeVariant::ScVec => Box::new(
11550                ReadXdrIter::<_, ScVec>::new(dec, r.limits.clone())
11551                    .map(|r| r.map(|t| Self::ScVec(Box::new(t)))),
11552            ),
11553            TypeVariant::ScMap => Box::new(
11554                ReadXdrIter::<_, ScMap>::new(dec, r.limits.clone())
11555                    .map(|r| r.map(|t| Self::ScMap(Box::new(t)))),
11556            ),
11557            TypeVariant::ScBytes => Box::new(
11558                ReadXdrIter::<_, ScBytes>::new(dec, r.limits.clone())
11559                    .map(|r| r.map(|t| Self::ScBytes(Box::new(t)))),
11560            ),
11561            TypeVariant::ScString => Box::new(
11562                ReadXdrIter::<_, ScString>::new(dec, r.limits.clone())
11563                    .map(|r| r.map(|t| Self::ScString(Box::new(t)))),
11564            ),
11565            TypeVariant::ScSymbol => Box::new(
11566                ReadXdrIter::<_, ScSymbol>::new(dec, r.limits.clone())
11567                    .map(|r| r.map(|t| Self::ScSymbol(Box::new(t)))),
11568            ),
11569            TypeVariant::ScNonceKey => Box::new(
11570                ReadXdrIter::<_, ScNonceKey>::new(dec, r.limits.clone())
11571                    .map(|r| r.map(|t| Self::ScNonceKey(Box::new(t)))),
11572            ),
11573            TypeVariant::ScContractInstance => Box::new(
11574                ReadXdrIter::<_, ScContractInstance>::new(dec, r.limits.clone())
11575                    .map(|r| r.map(|t| Self::ScContractInstance(Box::new(t)))),
11576            ),
11577            TypeVariant::ScVal => Box::new(
11578                ReadXdrIter::<_, ScVal>::new(dec, r.limits.clone())
11579                    .map(|r| r.map(|t| Self::ScVal(Box::new(t)))),
11580            ),
11581            TypeVariant::ScMapEntry => Box::new(
11582                ReadXdrIter::<_, ScMapEntry>::new(dec, r.limits.clone())
11583                    .map(|r| r.map(|t| Self::ScMapEntry(Box::new(t)))),
11584            ),
11585            TypeVariant::LedgerCloseMetaBatch => Box::new(
11586                ReadXdrIter::<_, LedgerCloseMetaBatch>::new(dec, r.limits.clone())
11587                    .map(|r| r.map(|t| Self::LedgerCloseMetaBatch(Box::new(t)))),
11588            ),
11589            TypeVariant::StoredTransactionSet => Box::new(
11590                ReadXdrIter::<_, StoredTransactionSet>::new(dec, r.limits.clone())
11591                    .map(|r| r.map(|t| Self::StoredTransactionSet(Box::new(t)))),
11592            ),
11593            TypeVariant::StoredDebugTransactionSet => Box::new(
11594                ReadXdrIter::<_, StoredDebugTransactionSet>::new(dec, r.limits.clone())
11595                    .map(|r| r.map(|t| Self::StoredDebugTransactionSet(Box::new(t)))),
11596            ),
11597            TypeVariant::PersistedScpStateV0 => Box::new(
11598                ReadXdrIter::<_, PersistedScpStateV0>::new(dec, r.limits.clone())
11599                    .map(|r| r.map(|t| Self::PersistedScpStateV0(Box::new(t)))),
11600            ),
11601            TypeVariant::PersistedScpStateV1 => Box::new(
11602                ReadXdrIter::<_, PersistedScpStateV1>::new(dec, r.limits.clone())
11603                    .map(|r| r.map(|t| Self::PersistedScpStateV1(Box::new(t)))),
11604            ),
11605            TypeVariant::PersistedScpState => Box::new(
11606                ReadXdrIter::<_, PersistedScpState>::new(dec, r.limits.clone())
11607                    .map(|r| r.map(|t| Self::PersistedScpState(Box::new(t)))),
11608            ),
11609            TypeVariant::Thresholds => Box::new(
11610                ReadXdrIter::<_, Thresholds>::new(dec, r.limits.clone())
11611                    .map(|r| r.map(|t| Self::Thresholds(Box::new(t)))),
11612            ),
11613            TypeVariant::String32 => Box::new(
11614                ReadXdrIter::<_, String32>::new(dec, r.limits.clone())
11615                    .map(|r| r.map(|t| Self::String32(Box::new(t)))),
11616            ),
11617            TypeVariant::String64 => Box::new(
11618                ReadXdrIter::<_, String64>::new(dec, r.limits.clone())
11619                    .map(|r| r.map(|t| Self::String64(Box::new(t)))),
11620            ),
11621            TypeVariant::SequenceNumber => Box::new(
11622                ReadXdrIter::<_, SequenceNumber>::new(dec, r.limits.clone())
11623                    .map(|r| r.map(|t| Self::SequenceNumber(Box::new(t)))),
11624            ),
11625            TypeVariant::DataValue => Box::new(
11626                ReadXdrIter::<_, DataValue>::new(dec, r.limits.clone())
11627                    .map(|r| r.map(|t| Self::DataValue(Box::new(t)))),
11628            ),
11629            TypeVariant::AssetCode4 => Box::new(
11630                ReadXdrIter::<_, AssetCode4>::new(dec, r.limits.clone())
11631                    .map(|r| r.map(|t| Self::AssetCode4(Box::new(t)))),
11632            ),
11633            TypeVariant::AssetCode12 => Box::new(
11634                ReadXdrIter::<_, AssetCode12>::new(dec, r.limits.clone())
11635                    .map(|r| r.map(|t| Self::AssetCode12(Box::new(t)))),
11636            ),
11637            TypeVariant::AssetType => Box::new(
11638                ReadXdrIter::<_, AssetType>::new(dec, r.limits.clone())
11639                    .map(|r| r.map(|t| Self::AssetType(Box::new(t)))),
11640            ),
11641            TypeVariant::AssetCode => Box::new(
11642                ReadXdrIter::<_, AssetCode>::new(dec, r.limits.clone())
11643                    .map(|r| r.map(|t| Self::AssetCode(Box::new(t)))),
11644            ),
11645            TypeVariant::AlphaNum4 => Box::new(
11646                ReadXdrIter::<_, AlphaNum4>::new(dec, r.limits.clone())
11647                    .map(|r| r.map(|t| Self::AlphaNum4(Box::new(t)))),
11648            ),
11649            TypeVariant::AlphaNum12 => Box::new(
11650                ReadXdrIter::<_, AlphaNum12>::new(dec, r.limits.clone())
11651                    .map(|r| r.map(|t| Self::AlphaNum12(Box::new(t)))),
11652            ),
11653            TypeVariant::Asset => Box::new(
11654                ReadXdrIter::<_, Asset>::new(dec, r.limits.clone())
11655                    .map(|r| r.map(|t| Self::Asset(Box::new(t)))),
11656            ),
11657            TypeVariant::Price => Box::new(
11658                ReadXdrIter::<_, Price>::new(dec, r.limits.clone())
11659                    .map(|r| r.map(|t| Self::Price(Box::new(t)))),
11660            ),
11661            TypeVariant::Liabilities => Box::new(
11662                ReadXdrIter::<_, Liabilities>::new(dec, r.limits.clone())
11663                    .map(|r| r.map(|t| Self::Liabilities(Box::new(t)))),
11664            ),
11665            TypeVariant::ThresholdIndexes => Box::new(
11666                ReadXdrIter::<_, ThresholdIndexes>::new(dec, r.limits.clone())
11667                    .map(|r| r.map(|t| Self::ThresholdIndexes(Box::new(t)))),
11668            ),
11669            TypeVariant::LedgerEntryType => Box::new(
11670                ReadXdrIter::<_, LedgerEntryType>::new(dec, r.limits.clone())
11671                    .map(|r| r.map(|t| Self::LedgerEntryType(Box::new(t)))),
11672            ),
11673            TypeVariant::Signer => Box::new(
11674                ReadXdrIter::<_, Signer>::new(dec, r.limits.clone())
11675                    .map(|r| r.map(|t| Self::Signer(Box::new(t)))),
11676            ),
11677            TypeVariant::AccountFlags => Box::new(
11678                ReadXdrIter::<_, AccountFlags>::new(dec, r.limits.clone())
11679                    .map(|r| r.map(|t| Self::AccountFlags(Box::new(t)))),
11680            ),
11681            TypeVariant::SponsorshipDescriptor => Box::new(
11682                ReadXdrIter::<_, SponsorshipDescriptor>::new(dec, r.limits.clone())
11683                    .map(|r| r.map(|t| Self::SponsorshipDescriptor(Box::new(t)))),
11684            ),
11685            TypeVariant::AccountEntryExtensionV3 => Box::new(
11686                ReadXdrIter::<_, AccountEntryExtensionV3>::new(dec, r.limits.clone())
11687                    .map(|r| r.map(|t| Self::AccountEntryExtensionV3(Box::new(t)))),
11688            ),
11689            TypeVariant::AccountEntryExtensionV2 => Box::new(
11690                ReadXdrIter::<_, AccountEntryExtensionV2>::new(dec, r.limits.clone())
11691                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2(Box::new(t)))),
11692            ),
11693            TypeVariant::AccountEntryExtensionV2Ext => Box::new(
11694                ReadXdrIter::<_, AccountEntryExtensionV2Ext>::new(dec, r.limits.clone())
11695                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t)))),
11696            ),
11697            TypeVariant::AccountEntryExtensionV1 => Box::new(
11698                ReadXdrIter::<_, AccountEntryExtensionV1>::new(dec, r.limits.clone())
11699                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1(Box::new(t)))),
11700            ),
11701            TypeVariant::AccountEntryExtensionV1Ext => Box::new(
11702                ReadXdrIter::<_, AccountEntryExtensionV1Ext>::new(dec, r.limits.clone())
11703                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t)))),
11704            ),
11705            TypeVariant::AccountEntry => Box::new(
11706                ReadXdrIter::<_, AccountEntry>::new(dec, r.limits.clone())
11707                    .map(|r| r.map(|t| Self::AccountEntry(Box::new(t)))),
11708            ),
11709            TypeVariant::AccountEntryExt => Box::new(
11710                ReadXdrIter::<_, AccountEntryExt>::new(dec, r.limits.clone())
11711                    .map(|r| r.map(|t| Self::AccountEntryExt(Box::new(t)))),
11712            ),
11713            TypeVariant::TrustLineFlags => Box::new(
11714                ReadXdrIter::<_, TrustLineFlags>::new(dec, r.limits.clone())
11715                    .map(|r| r.map(|t| Self::TrustLineFlags(Box::new(t)))),
11716            ),
11717            TypeVariant::LiquidityPoolType => Box::new(
11718                ReadXdrIter::<_, LiquidityPoolType>::new(dec, r.limits.clone())
11719                    .map(|r| r.map(|t| Self::LiquidityPoolType(Box::new(t)))),
11720            ),
11721            TypeVariant::TrustLineAsset => Box::new(
11722                ReadXdrIter::<_, TrustLineAsset>::new(dec, r.limits.clone())
11723                    .map(|r| r.map(|t| Self::TrustLineAsset(Box::new(t)))),
11724            ),
11725            TypeVariant::TrustLineEntryExtensionV2 => Box::new(
11726                ReadXdrIter::<_, TrustLineEntryExtensionV2>::new(dec, r.limits.clone())
11727                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2(Box::new(t)))),
11728            ),
11729            TypeVariant::TrustLineEntryExtensionV2Ext => Box::new(
11730                ReadXdrIter::<_, TrustLineEntryExtensionV2Ext>::new(dec, r.limits.clone())
11731                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t)))),
11732            ),
11733            TypeVariant::TrustLineEntry => Box::new(
11734                ReadXdrIter::<_, TrustLineEntry>::new(dec, r.limits.clone())
11735                    .map(|r| r.map(|t| Self::TrustLineEntry(Box::new(t)))),
11736            ),
11737            TypeVariant::TrustLineEntryExt => Box::new(
11738                ReadXdrIter::<_, TrustLineEntryExt>::new(dec, r.limits.clone())
11739                    .map(|r| r.map(|t| Self::TrustLineEntryExt(Box::new(t)))),
11740            ),
11741            TypeVariant::TrustLineEntryV1 => Box::new(
11742                ReadXdrIter::<_, TrustLineEntryV1>::new(dec, r.limits.clone())
11743                    .map(|r| r.map(|t| Self::TrustLineEntryV1(Box::new(t)))),
11744            ),
11745            TypeVariant::TrustLineEntryV1Ext => Box::new(
11746                ReadXdrIter::<_, TrustLineEntryV1Ext>::new(dec, r.limits.clone())
11747                    .map(|r| r.map(|t| Self::TrustLineEntryV1Ext(Box::new(t)))),
11748            ),
11749            TypeVariant::OfferEntryFlags => Box::new(
11750                ReadXdrIter::<_, OfferEntryFlags>::new(dec, r.limits.clone())
11751                    .map(|r| r.map(|t| Self::OfferEntryFlags(Box::new(t)))),
11752            ),
11753            TypeVariant::OfferEntry => Box::new(
11754                ReadXdrIter::<_, OfferEntry>::new(dec, r.limits.clone())
11755                    .map(|r| r.map(|t| Self::OfferEntry(Box::new(t)))),
11756            ),
11757            TypeVariant::OfferEntryExt => Box::new(
11758                ReadXdrIter::<_, OfferEntryExt>::new(dec, r.limits.clone())
11759                    .map(|r| r.map(|t| Self::OfferEntryExt(Box::new(t)))),
11760            ),
11761            TypeVariant::DataEntry => Box::new(
11762                ReadXdrIter::<_, DataEntry>::new(dec, r.limits.clone())
11763                    .map(|r| r.map(|t| Self::DataEntry(Box::new(t)))),
11764            ),
11765            TypeVariant::DataEntryExt => Box::new(
11766                ReadXdrIter::<_, DataEntryExt>::new(dec, r.limits.clone())
11767                    .map(|r| r.map(|t| Self::DataEntryExt(Box::new(t)))),
11768            ),
11769            TypeVariant::ClaimPredicateType => Box::new(
11770                ReadXdrIter::<_, ClaimPredicateType>::new(dec, r.limits.clone())
11771                    .map(|r| r.map(|t| Self::ClaimPredicateType(Box::new(t)))),
11772            ),
11773            TypeVariant::ClaimPredicate => Box::new(
11774                ReadXdrIter::<_, ClaimPredicate>::new(dec, r.limits.clone())
11775                    .map(|r| r.map(|t| Self::ClaimPredicate(Box::new(t)))),
11776            ),
11777            TypeVariant::ClaimantType => Box::new(
11778                ReadXdrIter::<_, ClaimantType>::new(dec, r.limits.clone())
11779                    .map(|r| r.map(|t| Self::ClaimantType(Box::new(t)))),
11780            ),
11781            TypeVariant::Claimant => Box::new(
11782                ReadXdrIter::<_, Claimant>::new(dec, r.limits.clone())
11783                    .map(|r| r.map(|t| Self::Claimant(Box::new(t)))),
11784            ),
11785            TypeVariant::ClaimantV0 => Box::new(
11786                ReadXdrIter::<_, ClaimantV0>::new(dec, r.limits.clone())
11787                    .map(|r| r.map(|t| Self::ClaimantV0(Box::new(t)))),
11788            ),
11789            TypeVariant::ClaimableBalanceFlags => Box::new(
11790                ReadXdrIter::<_, ClaimableBalanceFlags>::new(dec, r.limits.clone())
11791                    .map(|r| r.map(|t| Self::ClaimableBalanceFlags(Box::new(t)))),
11792            ),
11793            TypeVariant::ClaimableBalanceEntryExtensionV1 => Box::new(
11794                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1>::new(dec, r.limits.clone())
11795                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t)))),
11796            ),
11797            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Box::new(
11798                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1Ext>::new(dec, r.limits.clone())
11799                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t)))),
11800            ),
11801            TypeVariant::ClaimableBalanceEntry => Box::new(
11802                ReadXdrIter::<_, ClaimableBalanceEntry>::new(dec, r.limits.clone())
11803                    .map(|r| r.map(|t| Self::ClaimableBalanceEntry(Box::new(t)))),
11804            ),
11805            TypeVariant::ClaimableBalanceEntryExt => Box::new(
11806                ReadXdrIter::<_, ClaimableBalanceEntryExt>::new(dec, r.limits.clone())
11807                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExt(Box::new(t)))),
11808            ),
11809            TypeVariant::LiquidityPoolConstantProductParameters => Box::new(
11810                ReadXdrIter::<_, LiquidityPoolConstantProductParameters>::new(
11811                    dec,
11812                    r.limits.clone(),
11813                )
11814                .map(|r| r.map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t)))),
11815            ),
11816            TypeVariant::LiquidityPoolEntry => Box::new(
11817                ReadXdrIter::<_, LiquidityPoolEntry>::new(dec, r.limits.clone())
11818                    .map(|r| r.map(|t| Self::LiquidityPoolEntry(Box::new(t)))),
11819            ),
11820            TypeVariant::LiquidityPoolEntryBody => Box::new(
11821                ReadXdrIter::<_, LiquidityPoolEntryBody>::new(dec, r.limits.clone())
11822                    .map(|r| r.map(|t| Self::LiquidityPoolEntryBody(Box::new(t)))),
11823            ),
11824            TypeVariant::LiquidityPoolEntryConstantProduct => Box::new(
11825                ReadXdrIter::<_, LiquidityPoolEntryConstantProduct>::new(dec, r.limits.clone())
11826                    .map(|r| r.map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t)))),
11827            ),
11828            TypeVariant::ContractDataDurability => Box::new(
11829                ReadXdrIter::<_, ContractDataDurability>::new(dec, r.limits.clone())
11830                    .map(|r| r.map(|t| Self::ContractDataDurability(Box::new(t)))),
11831            ),
11832            TypeVariant::ContractDataEntry => Box::new(
11833                ReadXdrIter::<_, ContractDataEntry>::new(dec, r.limits.clone())
11834                    .map(|r| r.map(|t| Self::ContractDataEntry(Box::new(t)))),
11835            ),
11836            TypeVariant::ContractCodeCostInputs => Box::new(
11837                ReadXdrIter::<_, ContractCodeCostInputs>::new(dec, r.limits.clone())
11838                    .map(|r| r.map(|t| Self::ContractCodeCostInputs(Box::new(t)))),
11839            ),
11840            TypeVariant::ContractCodeEntry => Box::new(
11841                ReadXdrIter::<_, ContractCodeEntry>::new(dec, r.limits.clone())
11842                    .map(|r| r.map(|t| Self::ContractCodeEntry(Box::new(t)))),
11843            ),
11844            TypeVariant::ContractCodeEntryExt => Box::new(
11845                ReadXdrIter::<_, ContractCodeEntryExt>::new(dec, r.limits.clone())
11846                    .map(|r| r.map(|t| Self::ContractCodeEntryExt(Box::new(t)))),
11847            ),
11848            TypeVariant::ContractCodeEntryV1 => Box::new(
11849                ReadXdrIter::<_, ContractCodeEntryV1>::new(dec, r.limits.clone())
11850                    .map(|r| r.map(|t| Self::ContractCodeEntryV1(Box::new(t)))),
11851            ),
11852            TypeVariant::TtlEntry => Box::new(
11853                ReadXdrIter::<_, TtlEntry>::new(dec, r.limits.clone())
11854                    .map(|r| r.map(|t| Self::TtlEntry(Box::new(t)))),
11855            ),
11856            TypeVariant::LedgerEntryExtensionV1 => Box::new(
11857                ReadXdrIter::<_, LedgerEntryExtensionV1>::new(dec, r.limits.clone())
11858                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1(Box::new(t)))),
11859            ),
11860            TypeVariant::LedgerEntryExtensionV1Ext => Box::new(
11861                ReadXdrIter::<_, LedgerEntryExtensionV1Ext>::new(dec, r.limits.clone())
11862                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t)))),
11863            ),
11864            TypeVariant::LedgerEntry => Box::new(
11865                ReadXdrIter::<_, LedgerEntry>::new(dec, r.limits.clone())
11866                    .map(|r| r.map(|t| Self::LedgerEntry(Box::new(t)))),
11867            ),
11868            TypeVariant::LedgerEntryData => Box::new(
11869                ReadXdrIter::<_, LedgerEntryData>::new(dec, r.limits.clone())
11870                    .map(|r| r.map(|t| Self::LedgerEntryData(Box::new(t)))),
11871            ),
11872            TypeVariant::LedgerEntryExt => Box::new(
11873                ReadXdrIter::<_, LedgerEntryExt>::new(dec, r.limits.clone())
11874                    .map(|r| r.map(|t| Self::LedgerEntryExt(Box::new(t)))),
11875            ),
11876            TypeVariant::LedgerKey => Box::new(
11877                ReadXdrIter::<_, LedgerKey>::new(dec, r.limits.clone())
11878                    .map(|r| r.map(|t| Self::LedgerKey(Box::new(t)))),
11879            ),
11880            TypeVariant::LedgerKeyAccount => Box::new(
11881                ReadXdrIter::<_, LedgerKeyAccount>::new(dec, r.limits.clone())
11882                    .map(|r| r.map(|t| Self::LedgerKeyAccount(Box::new(t)))),
11883            ),
11884            TypeVariant::LedgerKeyTrustLine => Box::new(
11885                ReadXdrIter::<_, LedgerKeyTrustLine>::new(dec, r.limits.clone())
11886                    .map(|r| r.map(|t| Self::LedgerKeyTrustLine(Box::new(t)))),
11887            ),
11888            TypeVariant::LedgerKeyOffer => Box::new(
11889                ReadXdrIter::<_, LedgerKeyOffer>::new(dec, r.limits.clone())
11890                    .map(|r| r.map(|t| Self::LedgerKeyOffer(Box::new(t)))),
11891            ),
11892            TypeVariant::LedgerKeyData => Box::new(
11893                ReadXdrIter::<_, LedgerKeyData>::new(dec, r.limits.clone())
11894                    .map(|r| r.map(|t| Self::LedgerKeyData(Box::new(t)))),
11895            ),
11896            TypeVariant::LedgerKeyClaimableBalance => Box::new(
11897                ReadXdrIter::<_, LedgerKeyClaimableBalance>::new(dec, r.limits.clone())
11898                    .map(|r| r.map(|t| Self::LedgerKeyClaimableBalance(Box::new(t)))),
11899            ),
11900            TypeVariant::LedgerKeyLiquidityPool => Box::new(
11901                ReadXdrIter::<_, LedgerKeyLiquidityPool>::new(dec, r.limits.clone())
11902                    .map(|r| r.map(|t| Self::LedgerKeyLiquidityPool(Box::new(t)))),
11903            ),
11904            TypeVariant::LedgerKeyContractData => Box::new(
11905                ReadXdrIter::<_, LedgerKeyContractData>::new(dec, r.limits.clone())
11906                    .map(|r| r.map(|t| Self::LedgerKeyContractData(Box::new(t)))),
11907            ),
11908            TypeVariant::LedgerKeyContractCode => Box::new(
11909                ReadXdrIter::<_, LedgerKeyContractCode>::new(dec, r.limits.clone())
11910                    .map(|r| r.map(|t| Self::LedgerKeyContractCode(Box::new(t)))),
11911            ),
11912            TypeVariant::LedgerKeyConfigSetting => Box::new(
11913                ReadXdrIter::<_, LedgerKeyConfigSetting>::new(dec, r.limits.clone())
11914                    .map(|r| r.map(|t| Self::LedgerKeyConfigSetting(Box::new(t)))),
11915            ),
11916            TypeVariant::LedgerKeyTtl => Box::new(
11917                ReadXdrIter::<_, LedgerKeyTtl>::new(dec, r.limits.clone())
11918                    .map(|r| r.map(|t| Self::LedgerKeyTtl(Box::new(t)))),
11919            ),
11920            TypeVariant::EnvelopeType => Box::new(
11921                ReadXdrIter::<_, EnvelopeType>::new(dec, r.limits.clone())
11922                    .map(|r| r.map(|t| Self::EnvelopeType(Box::new(t)))),
11923            ),
11924            TypeVariant::BucketListType => Box::new(
11925                ReadXdrIter::<_, BucketListType>::new(dec, r.limits.clone())
11926                    .map(|r| r.map(|t| Self::BucketListType(Box::new(t)))),
11927            ),
11928            TypeVariant::BucketEntryType => Box::new(
11929                ReadXdrIter::<_, BucketEntryType>::new(dec, r.limits.clone())
11930                    .map(|r| r.map(|t| Self::BucketEntryType(Box::new(t)))),
11931            ),
11932            TypeVariant::HotArchiveBucketEntryType => Box::new(
11933                ReadXdrIter::<_, HotArchiveBucketEntryType>::new(dec, r.limits.clone())
11934                    .map(|r| r.map(|t| Self::HotArchiveBucketEntryType(Box::new(t)))),
11935            ),
11936            TypeVariant::BucketMetadata => Box::new(
11937                ReadXdrIter::<_, BucketMetadata>::new(dec, r.limits.clone())
11938                    .map(|r| r.map(|t| Self::BucketMetadata(Box::new(t)))),
11939            ),
11940            TypeVariant::BucketMetadataExt => Box::new(
11941                ReadXdrIter::<_, BucketMetadataExt>::new(dec, r.limits.clone())
11942                    .map(|r| r.map(|t| Self::BucketMetadataExt(Box::new(t)))),
11943            ),
11944            TypeVariant::BucketEntry => Box::new(
11945                ReadXdrIter::<_, BucketEntry>::new(dec, r.limits.clone())
11946                    .map(|r| r.map(|t| Self::BucketEntry(Box::new(t)))),
11947            ),
11948            TypeVariant::HotArchiveBucketEntry => Box::new(
11949                ReadXdrIter::<_, HotArchiveBucketEntry>::new(dec, r.limits.clone())
11950                    .map(|r| r.map(|t| Self::HotArchiveBucketEntry(Box::new(t)))),
11951            ),
11952            TypeVariant::UpgradeType => Box::new(
11953                ReadXdrIter::<_, UpgradeType>::new(dec, r.limits.clone())
11954                    .map(|r| r.map(|t| Self::UpgradeType(Box::new(t)))),
11955            ),
11956            TypeVariant::StellarValueType => Box::new(
11957                ReadXdrIter::<_, StellarValueType>::new(dec, r.limits.clone())
11958                    .map(|r| r.map(|t| Self::StellarValueType(Box::new(t)))),
11959            ),
11960            TypeVariant::LedgerCloseValueSignature => Box::new(
11961                ReadXdrIter::<_, LedgerCloseValueSignature>::new(dec, r.limits.clone())
11962                    .map(|r| r.map(|t| Self::LedgerCloseValueSignature(Box::new(t)))),
11963            ),
11964            TypeVariant::StellarValue => Box::new(
11965                ReadXdrIter::<_, StellarValue>::new(dec, r.limits.clone())
11966                    .map(|r| r.map(|t| Self::StellarValue(Box::new(t)))),
11967            ),
11968            TypeVariant::StellarValueExt => Box::new(
11969                ReadXdrIter::<_, StellarValueExt>::new(dec, r.limits.clone())
11970                    .map(|r| r.map(|t| Self::StellarValueExt(Box::new(t)))),
11971            ),
11972            #[cfg(feature = "cap_0083")]
11973            TypeVariant::StellarValueProposedValue => Box::new(
11974                ReadXdrIter::<_, StellarValueProposedValue>::new(dec, r.limits.clone())
11975                    .map(|r| r.map(|t| Self::StellarValueProposedValue(Box::new(t)))),
11976            ),
11977            TypeVariant::LedgerHeaderFlags => Box::new(
11978                ReadXdrIter::<_, LedgerHeaderFlags>::new(dec, r.limits.clone())
11979                    .map(|r| r.map(|t| Self::LedgerHeaderFlags(Box::new(t)))),
11980            ),
11981            TypeVariant::LedgerHeaderExtensionV1 => Box::new(
11982                ReadXdrIter::<_, LedgerHeaderExtensionV1>::new(dec, r.limits.clone())
11983                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1(Box::new(t)))),
11984            ),
11985            TypeVariant::LedgerHeaderExtensionV1Ext => Box::new(
11986                ReadXdrIter::<_, LedgerHeaderExtensionV1Ext>::new(dec, r.limits.clone())
11987                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t)))),
11988            ),
11989            TypeVariant::LedgerHeader => Box::new(
11990                ReadXdrIter::<_, LedgerHeader>::new(dec, r.limits.clone())
11991                    .map(|r| r.map(|t| Self::LedgerHeader(Box::new(t)))),
11992            ),
11993            TypeVariant::LedgerHeaderExt => Box::new(
11994                ReadXdrIter::<_, LedgerHeaderExt>::new(dec, r.limits.clone())
11995                    .map(|r| r.map(|t| Self::LedgerHeaderExt(Box::new(t)))),
11996            ),
11997            TypeVariant::LedgerUpgradeType => Box::new(
11998                ReadXdrIter::<_, LedgerUpgradeType>::new(dec, r.limits.clone())
11999                    .map(|r| r.map(|t| Self::LedgerUpgradeType(Box::new(t)))),
12000            ),
12001            TypeVariant::ConfigUpgradeSetKey => Box::new(
12002                ReadXdrIter::<_, ConfigUpgradeSetKey>::new(dec, r.limits.clone())
12003                    .map(|r| r.map(|t| Self::ConfigUpgradeSetKey(Box::new(t)))),
12004            ),
12005            TypeVariant::LedgerUpgrade => Box::new(
12006                ReadXdrIter::<_, LedgerUpgrade>::new(dec, r.limits.clone())
12007                    .map(|r| r.map(|t| Self::LedgerUpgrade(Box::new(t)))),
12008            ),
12009            TypeVariant::ConfigUpgradeSet => Box::new(
12010                ReadXdrIter::<_, ConfigUpgradeSet>::new(dec, r.limits.clone())
12011                    .map(|r| r.map(|t| Self::ConfigUpgradeSet(Box::new(t)))),
12012            ),
12013            TypeVariant::TxSetComponentType => Box::new(
12014                ReadXdrIter::<_, TxSetComponentType>::new(dec, r.limits.clone())
12015                    .map(|r| r.map(|t| Self::TxSetComponentType(Box::new(t)))),
12016            ),
12017            TypeVariant::DependentTxCluster => Box::new(
12018                ReadXdrIter::<_, DependentTxCluster>::new(dec, r.limits.clone())
12019                    .map(|r| r.map(|t| Self::DependentTxCluster(Box::new(t)))),
12020            ),
12021            TypeVariant::ParallelTxExecutionStage => Box::new(
12022                ReadXdrIter::<_, ParallelTxExecutionStage>::new(dec, r.limits.clone())
12023                    .map(|r| r.map(|t| Self::ParallelTxExecutionStage(Box::new(t)))),
12024            ),
12025            TypeVariant::ParallelTxsComponent => Box::new(
12026                ReadXdrIter::<_, ParallelTxsComponent>::new(dec, r.limits.clone())
12027                    .map(|r| r.map(|t| Self::ParallelTxsComponent(Box::new(t)))),
12028            ),
12029            TypeVariant::TxSetComponent => Box::new(
12030                ReadXdrIter::<_, TxSetComponent>::new(dec, r.limits.clone())
12031                    .map(|r| r.map(|t| Self::TxSetComponent(Box::new(t)))),
12032            ),
12033            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Box::new(
12034                ReadXdrIter::<_, TxSetComponentTxsMaybeDiscountedFee>::new(dec, r.limits.clone())
12035                    .map(|r| r.map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t)))),
12036            ),
12037            TypeVariant::TransactionPhase => Box::new(
12038                ReadXdrIter::<_, TransactionPhase>::new(dec, r.limits.clone())
12039                    .map(|r| r.map(|t| Self::TransactionPhase(Box::new(t)))),
12040            ),
12041            TypeVariant::TransactionSet => Box::new(
12042                ReadXdrIter::<_, TransactionSet>::new(dec, r.limits.clone())
12043                    .map(|r| r.map(|t| Self::TransactionSet(Box::new(t)))),
12044            ),
12045            TypeVariant::TransactionSetV1 => Box::new(
12046                ReadXdrIter::<_, TransactionSetV1>::new(dec, r.limits.clone())
12047                    .map(|r| r.map(|t| Self::TransactionSetV1(Box::new(t)))),
12048            ),
12049            TypeVariant::GeneralizedTransactionSet => Box::new(
12050                ReadXdrIter::<_, GeneralizedTransactionSet>::new(dec, r.limits.clone())
12051                    .map(|r| r.map(|t| Self::GeneralizedTransactionSet(Box::new(t)))),
12052            ),
12053            TypeVariant::TransactionResultPair => Box::new(
12054                ReadXdrIter::<_, TransactionResultPair>::new(dec, r.limits.clone())
12055                    .map(|r| r.map(|t| Self::TransactionResultPair(Box::new(t)))),
12056            ),
12057            TypeVariant::TransactionResultSet => Box::new(
12058                ReadXdrIter::<_, TransactionResultSet>::new(dec, r.limits.clone())
12059                    .map(|r| r.map(|t| Self::TransactionResultSet(Box::new(t)))),
12060            ),
12061            TypeVariant::TransactionHistoryEntry => Box::new(
12062                ReadXdrIter::<_, TransactionHistoryEntry>::new(dec, r.limits.clone())
12063                    .map(|r| r.map(|t| Self::TransactionHistoryEntry(Box::new(t)))),
12064            ),
12065            TypeVariant::TransactionHistoryEntryExt => Box::new(
12066                ReadXdrIter::<_, TransactionHistoryEntryExt>::new(dec, r.limits.clone())
12067                    .map(|r| r.map(|t| Self::TransactionHistoryEntryExt(Box::new(t)))),
12068            ),
12069            TypeVariant::TransactionHistoryResultEntry => Box::new(
12070                ReadXdrIter::<_, TransactionHistoryResultEntry>::new(dec, r.limits.clone())
12071                    .map(|r| r.map(|t| Self::TransactionHistoryResultEntry(Box::new(t)))),
12072            ),
12073            TypeVariant::TransactionHistoryResultEntryExt => Box::new(
12074                ReadXdrIter::<_, TransactionHistoryResultEntryExt>::new(dec, r.limits.clone())
12075                    .map(|r| r.map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t)))),
12076            ),
12077            TypeVariant::LedgerHeaderHistoryEntry => Box::new(
12078                ReadXdrIter::<_, LedgerHeaderHistoryEntry>::new(dec, r.limits.clone())
12079                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t)))),
12080            ),
12081            TypeVariant::LedgerHeaderHistoryEntryExt => Box::new(
12082                ReadXdrIter::<_, LedgerHeaderHistoryEntryExt>::new(dec, r.limits.clone())
12083                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t)))),
12084            ),
12085            TypeVariant::LedgerScpMessages => Box::new(
12086                ReadXdrIter::<_, LedgerScpMessages>::new(dec, r.limits.clone())
12087                    .map(|r| r.map(|t| Self::LedgerScpMessages(Box::new(t)))),
12088            ),
12089            TypeVariant::ScpHistoryEntryV0 => Box::new(
12090                ReadXdrIter::<_, ScpHistoryEntryV0>::new(dec, r.limits.clone())
12091                    .map(|r| r.map(|t| Self::ScpHistoryEntryV0(Box::new(t)))),
12092            ),
12093            TypeVariant::ScpHistoryEntry => Box::new(
12094                ReadXdrIter::<_, ScpHistoryEntry>::new(dec, r.limits.clone())
12095                    .map(|r| r.map(|t| Self::ScpHistoryEntry(Box::new(t)))),
12096            ),
12097            TypeVariant::LedgerEntryChangeType => Box::new(
12098                ReadXdrIter::<_, LedgerEntryChangeType>::new(dec, r.limits.clone())
12099                    .map(|r| r.map(|t| Self::LedgerEntryChangeType(Box::new(t)))),
12100            ),
12101            TypeVariant::LedgerEntryChange => Box::new(
12102                ReadXdrIter::<_, LedgerEntryChange>::new(dec, r.limits.clone())
12103                    .map(|r| r.map(|t| Self::LedgerEntryChange(Box::new(t)))),
12104            ),
12105            TypeVariant::LedgerEntryChanges => Box::new(
12106                ReadXdrIter::<_, LedgerEntryChanges>::new(dec, r.limits.clone())
12107                    .map(|r| r.map(|t| Self::LedgerEntryChanges(Box::new(t)))),
12108            ),
12109            TypeVariant::OperationMeta => Box::new(
12110                ReadXdrIter::<_, OperationMeta>::new(dec, r.limits.clone())
12111                    .map(|r| r.map(|t| Self::OperationMeta(Box::new(t)))),
12112            ),
12113            TypeVariant::TransactionMetaV1 => Box::new(
12114                ReadXdrIter::<_, TransactionMetaV1>::new(dec, r.limits.clone())
12115                    .map(|r| r.map(|t| Self::TransactionMetaV1(Box::new(t)))),
12116            ),
12117            TypeVariant::TransactionMetaV2 => Box::new(
12118                ReadXdrIter::<_, TransactionMetaV2>::new(dec, r.limits.clone())
12119                    .map(|r| r.map(|t| Self::TransactionMetaV2(Box::new(t)))),
12120            ),
12121            TypeVariant::ContractEventType => Box::new(
12122                ReadXdrIter::<_, ContractEventType>::new(dec, r.limits.clone())
12123                    .map(|r| r.map(|t| Self::ContractEventType(Box::new(t)))),
12124            ),
12125            TypeVariant::ContractEvent => Box::new(
12126                ReadXdrIter::<_, ContractEvent>::new(dec, r.limits.clone())
12127                    .map(|r| r.map(|t| Self::ContractEvent(Box::new(t)))),
12128            ),
12129            TypeVariant::ContractEventBody => Box::new(
12130                ReadXdrIter::<_, ContractEventBody>::new(dec, r.limits.clone())
12131                    .map(|r| r.map(|t| Self::ContractEventBody(Box::new(t)))),
12132            ),
12133            TypeVariant::ContractEventV0 => Box::new(
12134                ReadXdrIter::<_, ContractEventV0>::new(dec, r.limits.clone())
12135                    .map(|r| r.map(|t| Self::ContractEventV0(Box::new(t)))),
12136            ),
12137            TypeVariant::DiagnosticEvent => Box::new(
12138                ReadXdrIter::<_, DiagnosticEvent>::new(dec, r.limits.clone())
12139                    .map(|r| r.map(|t| Self::DiagnosticEvent(Box::new(t)))),
12140            ),
12141            TypeVariant::SorobanTransactionMetaExtV1 => Box::new(
12142                ReadXdrIter::<_, SorobanTransactionMetaExtV1>::new(dec, r.limits.clone())
12143                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t)))),
12144            ),
12145            TypeVariant::SorobanTransactionMetaExt => Box::new(
12146                ReadXdrIter::<_, SorobanTransactionMetaExt>::new(dec, r.limits.clone())
12147                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExt(Box::new(t)))),
12148            ),
12149            TypeVariant::SorobanTransactionMeta => Box::new(
12150                ReadXdrIter::<_, SorobanTransactionMeta>::new(dec, r.limits.clone())
12151                    .map(|r| r.map(|t| Self::SorobanTransactionMeta(Box::new(t)))),
12152            ),
12153            TypeVariant::TransactionMetaV3 => Box::new(
12154                ReadXdrIter::<_, TransactionMetaV3>::new(dec, r.limits.clone())
12155                    .map(|r| r.map(|t| Self::TransactionMetaV3(Box::new(t)))),
12156            ),
12157            TypeVariant::OperationMetaV2 => Box::new(
12158                ReadXdrIter::<_, OperationMetaV2>::new(dec, r.limits.clone())
12159                    .map(|r| r.map(|t| Self::OperationMetaV2(Box::new(t)))),
12160            ),
12161            TypeVariant::SorobanTransactionMetaV2 => Box::new(
12162                ReadXdrIter::<_, SorobanTransactionMetaV2>::new(dec, r.limits.clone())
12163                    .map(|r| r.map(|t| Self::SorobanTransactionMetaV2(Box::new(t)))),
12164            ),
12165            TypeVariant::TransactionEventStage => Box::new(
12166                ReadXdrIter::<_, TransactionEventStage>::new(dec, r.limits.clone())
12167                    .map(|r| r.map(|t| Self::TransactionEventStage(Box::new(t)))),
12168            ),
12169            TypeVariant::TransactionEvent => Box::new(
12170                ReadXdrIter::<_, TransactionEvent>::new(dec, r.limits.clone())
12171                    .map(|r| r.map(|t| Self::TransactionEvent(Box::new(t)))),
12172            ),
12173            TypeVariant::TransactionMetaV4 => Box::new(
12174                ReadXdrIter::<_, TransactionMetaV4>::new(dec, r.limits.clone())
12175                    .map(|r| r.map(|t| Self::TransactionMetaV4(Box::new(t)))),
12176            ),
12177            TypeVariant::InvokeHostFunctionSuccessPreImage => Box::new(
12178                ReadXdrIter::<_, InvokeHostFunctionSuccessPreImage>::new(dec, r.limits.clone())
12179                    .map(|r| r.map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t)))),
12180            ),
12181            TypeVariant::TransactionMeta => Box::new(
12182                ReadXdrIter::<_, TransactionMeta>::new(dec, r.limits.clone())
12183                    .map(|r| r.map(|t| Self::TransactionMeta(Box::new(t)))),
12184            ),
12185            TypeVariant::TransactionResultMeta => Box::new(
12186                ReadXdrIter::<_, TransactionResultMeta>::new(dec, r.limits.clone())
12187                    .map(|r| r.map(|t| Self::TransactionResultMeta(Box::new(t)))),
12188            ),
12189            TypeVariant::TransactionResultMetaV1 => Box::new(
12190                ReadXdrIter::<_, TransactionResultMetaV1>::new(dec, r.limits.clone())
12191                    .map(|r| r.map(|t| Self::TransactionResultMetaV1(Box::new(t)))),
12192            ),
12193            TypeVariant::UpgradeEntryMeta => Box::new(
12194                ReadXdrIter::<_, UpgradeEntryMeta>::new(dec, r.limits.clone())
12195                    .map(|r| r.map(|t| Self::UpgradeEntryMeta(Box::new(t)))),
12196            ),
12197            TypeVariant::LedgerCloseMetaV0 => Box::new(
12198                ReadXdrIter::<_, LedgerCloseMetaV0>::new(dec, r.limits.clone())
12199                    .map(|r| r.map(|t| Self::LedgerCloseMetaV0(Box::new(t)))),
12200            ),
12201            TypeVariant::LedgerCloseMetaExtV1 => Box::new(
12202                ReadXdrIter::<_, LedgerCloseMetaExtV1>::new(dec, r.limits.clone())
12203                    .map(|r| r.map(|t| Self::LedgerCloseMetaExtV1(Box::new(t)))),
12204            ),
12205            TypeVariant::LedgerCloseMetaExt => Box::new(
12206                ReadXdrIter::<_, LedgerCloseMetaExt>::new(dec, r.limits.clone())
12207                    .map(|r| r.map(|t| Self::LedgerCloseMetaExt(Box::new(t)))),
12208            ),
12209            TypeVariant::LedgerCloseMetaV1 => Box::new(
12210                ReadXdrIter::<_, LedgerCloseMetaV1>::new(dec, r.limits.clone())
12211                    .map(|r| r.map(|t| Self::LedgerCloseMetaV1(Box::new(t)))),
12212            ),
12213            TypeVariant::LedgerCloseMetaV2 => Box::new(
12214                ReadXdrIter::<_, LedgerCloseMetaV2>::new(dec, r.limits.clone())
12215                    .map(|r| r.map(|t| Self::LedgerCloseMetaV2(Box::new(t)))),
12216            ),
12217            TypeVariant::LedgerCloseMeta => Box::new(
12218                ReadXdrIter::<_, LedgerCloseMeta>::new(dec, r.limits.clone())
12219                    .map(|r| r.map(|t| Self::LedgerCloseMeta(Box::new(t)))),
12220            ),
12221            TypeVariant::ErrorCode => Box::new(
12222                ReadXdrIter::<_, ErrorCode>::new(dec, r.limits.clone())
12223                    .map(|r| r.map(|t| Self::ErrorCode(Box::new(t)))),
12224            ),
12225            TypeVariant::SError => Box::new(
12226                ReadXdrIter::<_, SError>::new(dec, r.limits.clone())
12227                    .map(|r| r.map(|t| Self::SError(Box::new(t)))),
12228            ),
12229            TypeVariant::SendMore => Box::new(
12230                ReadXdrIter::<_, SendMore>::new(dec, r.limits.clone())
12231                    .map(|r| r.map(|t| Self::SendMore(Box::new(t)))),
12232            ),
12233            TypeVariant::SendMoreExtended => Box::new(
12234                ReadXdrIter::<_, SendMoreExtended>::new(dec, r.limits.clone())
12235                    .map(|r| r.map(|t| Self::SendMoreExtended(Box::new(t)))),
12236            ),
12237            TypeVariant::AuthCert => Box::new(
12238                ReadXdrIter::<_, AuthCert>::new(dec, r.limits.clone())
12239                    .map(|r| r.map(|t| Self::AuthCert(Box::new(t)))),
12240            ),
12241            TypeVariant::Hello => Box::new(
12242                ReadXdrIter::<_, Hello>::new(dec, r.limits.clone())
12243                    .map(|r| r.map(|t| Self::Hello(Box::new(t)))),
12244            ),
12245            TypeVariant::Auth => Box::new(
12246                ReadXdrIter::<_, Auth>::new(dec, r.limits.clone())
12247                    .map(|r| r.map(|t| Self::Auth(Box::new(t)))),
12248            ),
12249            TypeVariant::IpAddrType => Box::new(
12250                ReadXdrIter::<_, IpAddrType>::new(dec, r.limits.clone())
12251                    .map(|r| r.map(|t| Self::IpAddrType(Box::new(t)))),
12252            ),
12253            TypeVariant::PeerAddress => Box::new(
12254                ReadXdrIter::<_, PeerAddress>::new(dec, r.limits.clone())
12255                    .map(|r| r.map(|t| Self::PeerAddress(Box::new(t)))),
12256            ),
12257            TypeVariant::PeerAddressIp => Box::new(
12258                ReadXdrIter::<_, PeerAddressIp>::new(dec, r.limits.clone())
12259                    .map(|r| r.map(|t| Self::PeerAddressIp(Box::new(t)))),
12260            ),
12261            TypeVariant::MessageType => Box::new(
12262                ReadXdrIter::<_, MessageType>::new(dec, r.limits.clone())
12263                    .map(|r| r.map(|t| Self::MessageType(Box::new(t)))),
12264            ),
12265            TypeVariant::DontHave => Box::new(
12266                ReadXdrIter::<_, DontHave>::new(dec, r.limits.clone())
12267                    .map(|r| r.map(|t| Self::DontHave(Box::new(t)))),
12268            ),
12269            TypeVariant::SurveyMessageCommandType => Box::new(
12270                ReadXdrIter::<_, SurveyMessageCommandType>::new(dec, r.limits.clone())
12271                    .map(|r| r.map(|t| Self::SurveyMessageCommandType(Box::new(t)))),
12272            ),
12273            TypeVariant::SurveyMessageResponseType => Box::new(
12274                ReadXdrIter::<_, SurveyMessageResponseType>::new(dec, r.limits.clone())
12275                    .map(|r| r.map(|t| Self::SurveyMessageResponseType(Box::new(t)))),
12276            ),
12277            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Box::new(
12278                ReadXdrIter::<_, TimeSlicedSurveyStartCollectingMessage>::new(
12279                    dec,
12280                    r.limits.clone(),
12281                )
12282                .map(|r| r.map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t)))),
12283            ),
12284            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => Box::new(
12285                ReadXdrIter::<_, SignedTimeSlicedSurveyStartCollectingMessage>::new(
12286                    dec,
12287                    r.limits.clone(),
12288                )
12289                .map(|r| {
12290                    r.map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t)))
12291                }),
12292            ),
12293            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Box::new(
12294                ReadXdrIter::<_, TimeSlicedSurveyStopCollectingMessage>::new(dec, r.limits.clone())
12295                    .map(|r| r.map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
12296            ),
12297            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => Box::new(
12298                ReadXdrIter::<_, SignedTimeSlicedSurveyStopCollectingMessage>::new(
12299                    dec,
12300                    r.limits.clone(),
12301                )
12302                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
12303            ),
12304            TypeVariant::SurveyRequestMessage => Box::new(
12305                ReadXdrIter::<_, SurveyRequestMessage>::new(dec, r.limits.clone())
12306                    .map(|r| r.map(|t| Self::SurveyRequestMessage(Box::new(t)))),
12307            ),
12308            TypeVariant::TimeSlicedSurveyRequestMessage => Box::new(
12309                ReadXdrIter::<_, TimeSlicedSurveyRequestMessage>::new(dec, r.limits.clone())
12310                    .map(|r| r.map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t)))),
12311            ),
12312            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Box::new(
12313                ReadXdrIter::<_, SignedTimeSlicedSurveyRequestMessage>::new(dec, r.limits.clone())
12314                    .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t)))),
12315            ),
12316            TypeVariant::EncryptedBody => Box::new(
12317                ReadXdrIter::<_, EncryptedBody>::new(dec, r.limits.clone())
12318                    .map(|r| r.map(|t| Self::EncryptedBody(Box::new(t)))),
12319            ),
12320            TypeVariant::SurveyResponseMessage => Box::new(
12321                ReadXdrIter::<_, SurveyResponseMessage>::new(dec, r.limits.clone())
12322                    .map(|r| r.map(|t| Self::SurveyResponseMessage(Box::new(t)))),
12323            ),
12324            TypeVariant::TimeSlicedSurveyResponseMessage => Box::new(
12325                ReadXdrIter::<_, TimeSlicedSurveyResponseMessage>::new(dec, r.limits.clone())
12326                    .map(|r| r.map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t)))),
12327            ),
12328            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Box::new(
12329                ReadXdrIter::<_, SignedTimeSlicedSurveyResponseMessage>::new(dec, r.limits.clone())
12330                    .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t)))),
12331            ),
12332            TypeVariant::PeerStats => Box::new(
12333                ReadXdrIter::<_, PeerStats>::new(dec, r.limits.clone())
12334                    .map(|r| r.map(|t| Self::PeerStats(Box::new(t)))),
12335            ),
12336            TypeVariant::TimeSlicedNodeData => Box::new(
12337                ReadXdrIter::<_, TimeSlicedNodeData>::new(dec, r.limits.clone())
12338                    .map(|r| r.map(|t| Self::TimeSlicedNodeData(Box::new(t)))),
12339            ),
12340            TypeVariant::TimeSlicedPeerData => Box::new(
12341                ReadXdrIter::<_, TimeSlicedPeerData>::new(dec, r.limits.clone())
12342                    .map(|r| r.map(|t| Self::TimeSlicedPeerData(Box::new(t)))),
12343            ),
12344            TypeVariant::TimeSlicedPeerDataList => Box::new(
12345                ReadXdrIter::<_, TimeSlicedPeerDataList>::new(dec, r.limits.clone())
12346                    .map(|r| r.map(|t| Self::TimeSlicedPeerDataList(Box::new(t)))),
12347            ),
12348            TypeVariant::TopologyResponseBodyV2 => Box::new(
12349                ReadXdrIter::<_, TopologyResponseBodyV2>::new(dec, r.limits.clone())
12350                    .map(|r| r.map(|t| Self::TopologyResponseBodyV2(Box::new(t)))),
12351            ),
12352            TypeVariant::SurveyResponseBody => Box::new(
12353                ReadXdrIter::<_, SurveyResponseBody>::new(dec, r.limits.clone())
12354                    .map(|r| r.map(|t| Self::SurveyResponseBody(Box::new(t)))),
12355            ),
12356            TypeVariant::TxAdvertVector => Box::new(
12357                ReadXdrIter::<_, TxAdvertVector>::new(dec, r.limits.clone())
12358                    .map(|r| r.map(|t| Self::TxAdvertVector(Box::new(t)))),
12359            ),
12360            TypeVariant::FloodAdvert => Box::new(
12361                ReadXdrIter::<_, FloodAdvert>::new(dec, r.limits.clone())
12362                    .map(|r| r.map(|t| Self::FloodAdvert(Box::new(t)))),
12363            ),
12364            TypeVariant::TxDemandVector => Box::new(
12365                ReadXdrIter::<_, TxDemandVector>::new(dec, r.limits.clone())
12366                    .map(|r| r.map(|t| Self::TxDemandVector(Box::new(t)))),
12367            ),
12368            TypeVariant::FloodDemand => Box::new(
12369                ReadXdrIter::<_, FloodDemand>::new(dec, r.limits.clone())
12370                    .map(|r| r.map(|t| Self::FloodDemand(Box::new(t)))),
12371            ),
12372            TypeVariant::StellarMessage => Box::new(
12373                ReadXdrIter::<_, StellarMessage>::new(dec, r.limits.clone())
12374                    .map(|r| r.map(|t| Self::StellarMessage(Box::new(t)))),
12375            ),
12376            TypeVariant::AuthenticatedMessage => Box::new(
12377                ReadXdrIter::<_, AuthenticatedMessage>::new(dec, r.limits.clone())
12378                    .map(|r| r.map(|t| Self::AuthenticatedMessage(Box::new(t)))),
12379            ),
12380            TypeVariant::AuthenticatedMessageV0 => Box::new(
12381                ReadXdrIter::<_, AuthenticatedMessageV0>::new(dec, r.limits.clone())
12382                    .map(|r| r.map(|t| Self::AuthenticatedMessageV0(Box::new(t)))),
12383            ),
12384            TypeVariant::LiquidityPoolParameters => Box::new(
12385                ReadXdrIter::<_, LiquidityPoolParameters>::new(dec, r.limits.clone())
12386                    .map(|r| r.map(|t| Self::LiquidityPoolParameters(Box::new(t)))),
12387            ),
12388            TypeVariant::MuxedAccount => Box::new(
12389                ReadXdrIter::<_, MuxedAccount>::new(dec, r.limits.clone())
12390                    .map(|r| r.map(|t| Self::MuxedAccount(Box::new(t)))),
12391            ),
12392            TypeVariant::MuxedAccountMed25519 => Box::new(
12393                ReadXdrIter::<_, MuxedAccountMed25519>::new(dec, r.limits.clone())
12394                    .map(|r| r.map(|t| Self::MuxedAccountMed25519(Box::new(t)))),
12395            ),
12396            TypeVariant::DecoratedSignature => Box::new(
12397                ReadXdrIter::<_, DecoratedSignature>::new(dec, r.limits.clone())
12398                    .map(|r| r.map(|t| Self::DecoratedSignature(Box::new(t)))),
12399            ),
12400            TypeVariant::OperationType => Box::new(
12401                ReadXdrIter::<_, OperationType>::new(dec, r.limits.clone())
12402                    .map(|r| r.map(|t| Self::OperationType(Box::new(t)))),
12403            ),
12404            TypeVariant::CreateAccountOp => Box::new(
12405                ReadXdrIter::<_, CreateAccountOp>::new(dec, r.limits.clone())
12406                    .map(|r| r.map(|t| Self::CreateAccountOp(Box::new(t)))),
12407            ),
12408            TypeVariant::PaymentOp => Box::new(
12409                ReadXdrIter::<_, PaymentOp>::new(dec, r.limits.clone())
12410                    .map(|r| r.map(|t| Self::PaymentOp(Box::new(t)))),
12411            ),
12412            TypeVariant::PathPaymentStrictReceiveOp => Box::new(
12413                ReadXdrIter::<_, PathPaymentStrictReceiveOp>::new(dec, r.limits.clone())
12414                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t)))),
12415            ),
12416            TypeVariant::PathPaymentStrictSendOp => Box::new(
12417                ReadXdrIter::<_, PathPaymentStrictSendOp>::new(dec, r.limits.clone())
12418                    .map(|r| r.map(|t| Self::PathPaymentStrictSendOp(Box::new(t)))),
12419            ),
12420            TypeVariant::ManageSellOfferOp => Box::new(
12421                ReadXdrIter::<_, ManageSellOfferOp>::new(dec, r.limits.clone())
12422                    .map(|r| r.map(|t| Self::ManageSellOfferOp(Box::new(t)))),
12423            ),
12424            TypeVariant::ManageBuyOfferOp => Box::new(
12425                ReadXdrIter::<_, ManageBuyOfferOp>::new(dec, r.limits.clone())
12426                    .map(|r| r.map(|t| Self::ManageBuyOfferOp(Box::new(t)))),
12427            ),
12428            TypeVariant::CreatePassiveSellOfferOp => Box::new(
12429                ReadXdrIter::<_, CreatePassiveSellOfferOp>::new(dec, r.limits.clone())
12430                    .map(|r| r.map(|t| Self::CreatePassiveSellOfferOp(Box::new(t)))),
12431            ),
12432            TypeVariant::SetOptionsOp => Box::new(
12433                ReadXdrIter::<_, SetOptionsOp>::new(dec, r.limits.clone())
12434                    .map(|r| r.map(|t| Self::SetOptionsOp(Box::new(t)))),
12435            ),
12436            TypeVariant::ChangeTrustAsset => Box::new(
12437                ReadXdrIter::<_, ChangeTrustAsset>::new(dec, r.limits.clone())
12438                    .map(|r| r.map(|t| Self::ChangeTrustAsset(Box::new(t)))),
12439            ),
12440            TypeVariant::ChangeTrustOp => Box::new(
12441                ReadXdrIter::<_, ChangeTrustOp>::new(dec, r.limits.clone())
12442                    .map(|r| r.map(|t| Self::ChangeTrustOp(Box::new(t)))),
12443            ),
12444            TypeVariant::AllowTrustOp => Box::new(
12445                ReadXdrIter::<_, AllowTrustOp>::new(dec, r.limits.clone())
12446                    .map(|r| r.map(|t| Self::AllowTrustOp(Box::new(t)))),
12447            ),
12448            TypeVariant::ManageDataOp => Box::new(
12449                ReadXdrIter::<_, ManageDataOp>::new(dec, r.limits.clone())
12450                    .map(|r| r.map(|t| Self::ManageDataOp(Box::new(t)))),
12451            ),
12452            TypeVariant::BumpSequenceOp => Box::new(
12453                ReadXdrIter::<_, BumpSequenceOp>::new(dec, r.limits.clone())
12454                    .map(|r| r.map(|t| Self::BumpSequenceOp(Box::new(t)))),
12455            ),
12456            TypeVariant::CreateClaimableBalanceOp => Box::new(
12457                ReadXdrIter::<_, CreateClaimableBalanceOp>::new(dec, r.limits.clone())
12458                    .map(|r| r.map(|t| Self::CreateClaimableBalanceOp(Box::new(t)))),
12459            ),
12460            TypeVariant::ClaimClaimableBalanceOp => Box::new(
12461                ReadXdrIter::<_, ClaimClaimableBalanceOp>::new(dec, r.limits.clone())
12462                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceOp(Box::new(t)))),
12463            ),
12464            TypeVariant::BeginSponsoringFutureReservesOp => Box::new(
12465                ReadXdrIter::<_, BeginSponsoringFutureReservesOp>::new(dec, r.limits.clone())
12466                    .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t)))),
12467            ),
12468            TypeVariant::RevokeSponsorshipType => Box::new(
12469                ReadXdrIter::<_, RevokeSponsorshipType>::new(dec, r.limits.clone())
12470                    .map(|r| r.map(|t| Self::RevokeSponsorshipType(Box::new(t)))),
12471            ),
12472            TypeVariant::RevokeSponsorshipOp => Box::new(
12473                ReadXdrIter::<_, RevokeSponsorshipOp>::new(dec, r.limits.clone())
12474                    .map(|r| r.map(|t| Self::RevokeSponsorshipOp(Box::new(t)))),
12475            ),
12476            TypeVariant::RevokeSponsorshipOpSigner => Box::new(
12477                ReadXdrIter::<_, RevokeSponsorshipOpSigner>::new(dec, r.limits.clone())
12478                    .map(|r| r.map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t)))),
12479            ),
12480            TypeVariant::ClawbackOp => Box::new(
12481                ReadXdrIter::<_, ClawbackOp>::new(dec, r.limits.clone())
12482                    .map(|r| r.map(|t| Self::ClawbackOp(Box::new(t)))),
12483            ),
12484            TypeVariant::ClawbackClaimableBalanceOp => Box::new(
12485                ReadXdrIter::<_, ClawbackClaimableBalanceOp>::new(dec, r.limits.clone())
12486                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t)))),
12487            ),
12488            TypeVariant::SetTrustLineFlagsOp => Box::new(
12489                ReadXdrIter::<_, SetTrustLineFlagsOp>::new(dec, r.limits.clone())
12490                    .map(|r| r.map(|t| Self::SetTrustLineFlagsOp(Box::new(t)))),
12491            ),
12492            TypeVariant::LiquidityPoolDepositOp => Box::new(
12493                ReadXdrIter::<_, LiquidityPoolDepositOp>::new(dec, r.limits.clone())
12494                    .map(|r| r.map(|t| Self::LiquidityPoolDepositOp(Box::new(t)))),
12495            ),
12496            TypeVariant::LiquidityPoolWithdrawOp => Box::new(
12497                ReadXdrIter::<_, LiquidityPoolWithdrawOp>::new(dec, r.limits.clone())
12498                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t)))),
12499            ),
12500            TypeVariant::HostFunctionType => Box::new(
12501                ReadXdrIter::<_, HostFunctionType>::new(dec, r.limits.clone())
12502                    .map(|r| r.map(|t| Self::HostFunctionType(Box::new(t)))),
12503            ),
12504            TypeVariant::ContractIdPreimageType => Box::new(
12505                ReadXdrIter::<_, ContractIdPreimageType>::new(dec, r.limits.clone())
12506                    .map(|r| r.map(|t| Self::ContractIdPreimageType(Box::new(t)))),
12507            ),
12508            TypeVariant::ContractIdPreimage => Box::new(
12509                ReadXdrIter::<_, ContractIdPreimage>::new(dec, r.limits.clone())
12510                    .map(|r| r.map(|t| Self::ContractIdPreimage(Box::new(t)))),
12511            ),
12512            TypeVariant::ContractIdPreimageFromAddress => Box::new(
12513                ReadXdrIter::<_, ContractIdPreimageFromAddress>::new(dec, r.limits.clone())
12514                    .map(|r| r.map(|t| Self::ContractIdPreimageFromAddress(Box::new(t)))),
12515            ),
12516            TypeVariant::CreateContractArgs => Box::new(
12517                ReadXdrIter::<_, CreateContractArgs>::new(dec, r.limits.clone())
12518                    .map(|r| r.map(|t| Self::CreateContractArgs(Box::new(t)))),
12519            ),
12520            TypeVariant::CreateContractArgsV2 => Box::new(
12521                ReadXdrIter::<_, CreateContractArgsV2>::new(dec, r.limits.clone())
12522                    .map(|r| r.map(|t| Self::CreateContractArgsV2(Box::new(t)))),
12523            ),
12524            TypeVariant::InvokeContractArgs => Box::new(
12525                ReadXdrIter::<_, InvokeContractArgs>::new(dec, r.limits.clone())
12526                    .map(|r| r.map(|t| Self::InvokeContractArgs(Box::new(t)))),
12527            ),
12528            TypeVariant::HostFunction => Box::new(
12529                ReadXdrIter::<_, HostFunction>::new(dec, r.limits.clone())
12530                    .map(|r| r.map(|t| Self::HostFunction(Box::new(t)))),
12531            ),
12532            TypeVariant::SorobanAuthorizedFunctionType => Box::new(
12533                ReadXdrIter::<_, SorobanAuthorizedFunctionType>::new(dec, r.limits.clone())
12534                    .map(|r| r.map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t)))),
12535            ),
12536            TypeVariant::SorobanAuthorizedFunction => Box::new(
12537                ReadXdrIter::<_, SorobanAuthorizedFunction>::new(dec, r.limits.clone())
12538                    .map(|r| r.map(|t| Self::SorobanAuthorizedFunction(Box::new(t)))),
12539            ),
12540            TypeVariant::SorobanAuthorizedInvocation => Box::new(
12541                ReadXdrIter::<_, SorobanAuthorizedInvocation>::new(dec, r.limits.clone())
12542                    .map(|r| r.map(|t| Self::SorobanAuthorizedInvocation(Box::new(t)))),
12543            ),
12544            TypeVariant::SorobanAddressCredentials => Box::new(
12545                ReadXdrIter::<_, SorobanAddressCredentials>::new(dec, r.limits.clone())
12546                    .map(|r| r.map(|t| Self::SorobanAddressCredentials(Box::new(t)))),
12547            ),
12548            TypeVariant::SorobanDelegateSignature => Box::new(
12549                ReadXdrIter::<_, SorobanDelegateSignature>::new(dec, r.limits.clone())
12550                    .map(|r| r.map(|t| Self::SorobanDelegateSignature(Box::new(t)))),
12551            ),
12552            TypeVariant::SorobanAddressCredentialsWithDelegates => Box::new(
12553                ReadXdrIter::<_, SorobanAddressCredentialsWithDelegates>::new(
12554                    dec,
12555                    r.limits.clone(),
12556                )
12557                .map(|r| r.map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t)))),
12558            ),
12559            TypeVariant::SorobanCredentialsType => Box::new(
12560                ReadXdrIter::<_, SorobanCredentialsType>::new(dec, r.limits.clone())
12561                    .map(|r| r.map(|t| Self::SorobanCredentialsType(Box::new(t)))),
12562            ),
12563            TypeVariant::SorobanCredentials => Box::new(
12564                ReadXdrIter::<_, SorobanCredentials>::new(dec, r.limits.clone())
12565                    .map(|r| r.map(|t| Self::SorobanCredentials(Box::new(t)))),
12566            ),
12567            TypeVariant::SorobanAuthorizationEntry => Box::new(
12568                ReadXdrIter::<_, SorobanAuthorizationEntry>::new(dec, r.limits.clone())
12569                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntry(Box::new(t)))),
12570            ),
12571            TypeVariant::SorobanAuthorizationEntries => Box::new(
12572                ReadXdrIter::<_, SorobanAuthorizationEntries>::new(dec, r.limits.clone())
12573                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntries(Box::new(t)))),
12574            ),
12575            TypeVariant::InvokeHostFunctionOp => Box::new(
12576                ReadXdrIter::<_, InvokeHostFunctionOp>::new(dec, r.limits.clone())
12577                    .map(|r| r.map(|t| Self::InvokeHostFunctionOp(Box::new(t)))),
12578            ),
12579            TypeVariant::ExtendFootprintTtlOp => Box::new(
12580                ReadXdrIter::<_, ExtendFootprintTtlOp>::new(dec, r.limits.clone())
12581                    .map(|r| r.map(|t| Self::ExtendFootprintTtlOp(Box::new(t)))),
12582            ),
12583            TypeVariant::RestoreFootprintOp => Box::new(
12584                ReadXdrIter::<_, RestoreFootprintOp>::new(dec, r.limits.clone())
12585                    .map(|r| r.map(|t| Self::RestoreFootprintOp(Box::new(t)))),
12586            ),
12587            TypeVariant::Operation => Box::new(
12588                ReadXdrIter::<_, Operation>::new(dec, r.limits.clone())
12589                    .map(|r| r.map(|t| Self::Operation(Box::new(t)))),
12590            ),
12591            TypeVariant::OperationBody => Box::new(
12592                ReadXdrIter::<_, OperationBody>::new(dec, r.limits.clone())
12593                    .map(|r| r.map(|t| Self::OperationBody(Box::new(t)))),
12594            ),
12595            TypeVariant::HashIdPreimage => Box::new(
12596                ReadXdrIter::<_, HashIdPreimage>::new(dec, r.limits.clone())
12597                    .map(|r| r.map(|t| Self::HashIdPreimage(Box::new(t)))),
12598            ),
12599            TypeVariant::HashIdPreimageOperationId => Box::new(
12600                ReadXdrIter::<_, HashIdPreimageOperationId>::new(dec, r.limits.clone())
12601                    .map(|r| r.map(|t| Self::HashIdPreimageOperationId(Box::new(t)))),
12602            ),
12603            TypeVariant::HashIdPreimageRevokeId => Box::new(
12604                ReadXdrIter::<_, HashIdPreimageRevokeId>::new(dec, r.limits.clone())
12605                    .map(|r| r.map(|t| Self::HashIdPreimageRevokeId(Box::new(t)))),
12606            ),
12607            TypeVariant::HashIdPreimageContractId => Box::new(
12608                ReadXdrIter::<_, HashIdPreimageContractId>::new(dec, r.limits.clone())
12609                    .map(|r| r.map(|t| Self::HashIdPreimageContractId(Box::new(t)))),
12610            ),
12611            TypeVariant::HashIdPreimageSorobanAuthorization => Box::new(
12612                ReadXdrIter::<_, HashIdPreimageSorobanAuthorization>::new(dec, r.limits.clone())
12613                    .map(|r| r.map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t)))),
12614            ),
12615            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => Box::new(
12616                ReadXdrIter::<_, HashIdPreimageSorobanAuthorizationWithAddress>::new(
12617                    dec,
12618                    r.limits.clone(),
12619                )
12620                .map(|r| {
12621                    r.map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t)))
12622                }),
12623            ),
12624            TypeVariant::MemoType => Box::new(
12625                ReadXdrIter::<_, MemoType>::new(dec, r.limits.clone())
12626                    .map(|r| r.map(|t| Self::MemoType(Box::new(t)))),
12627            ),
12628            TypeVariant::Memo => Box::new(
12629                ReadXdrIter::<_, Memo>::new(dec, r.limits.clone())
12630                    .map(|r| r.map(|t| Self::Memo(Box::new(t)))),
12631            ),
12632            TypeVariant::TimeBounds => Box::new(
12633                ReadXdrIter::<_, TimeBounds>::new(dec, r.limits.clone())
12634                    .map(|r| r.map(|t| Self::TimeBounds(Box::new(t)))),
12635            ),
12636            TypeVariant::LedgerBounds => Box::new(
12637                ReadXdrIter::<_, LedgerBounds>::new(dec, r.limits.clone())
12638                    .map(|r| r.map(|t| Self::LedgerBounds(Box::new(t)))),
12639            ),
12640            TypeVariant::PreconditionsV2 => Box::new(
12641                ReadXdrIter::<_, PreconditionsV2>::new(dec, r.limits.clone())
12642                    .map(|r| r.map(|t| Self::PreconditionsV2(Box::new(t)))),
12643            ),
12644            TypeVariant::PreconditionType => Box::new(
12645                ReadXdrIter::<_, PreconditionType>::new(dec, r.limits.clone())
12646                    .map(|r| r.map(|t| Self::PreconditionType(Box::new(t)))),
12647            ),
12648            TypeVariant::Preconditions => Box::new(
12649                ReadXdrIter::<_, Preconditions>::new(dec, r.limits.clone())
12650                    .map(|r| r.map(|t| Self::Preconditions(Box::new(t)))),
12651            ),
12652            TypeVariant::LedgerFootprint => Box::new(
12653                ReadXdrIter::<_, LedgerFootprint>::new(dec, r.limits.clone())
12654                    .map(|r| r.map(|t| Self::LedgerFootprint(Box::new(t)))),
12655            ),
12656            TypeVariant::SorobanResources => Box::new(
12657                ReadXdrIter::<_, SorobanResources>::new(dec, r.limits.clone())
12658                    .map(|r| r.map(|t| Self::SorobanResources(Box::new(t)))),
12659            ),
12660            TypeVariant::SorobanResourcesExtV0 => Box::new(
12661                ReadXdrIter::<_, SorobanResourcesExtV0>::new(dec, r.limits.clone())
12662                    .map(|r| r.map(|t| Self::SorobanResourcesExtV0(Box::new(t)))),
12663            ),
12664            TypeVariant::SorobanTransactionData => Box::new(
12665                ReadXdrIter::<_, SorobanTransactionData>::new(dec, r.limits.clone())
12666                    .map(|r| r.map(|t| Self::SorobanTransactionData(Box::new(t)))),
12667            ),
12668            TypeVariant::SorobanTransactionDataExt => Box::new(
12669                ReadXdrIter::<_, SorobanTransactionDataExt>::new(dec, r.limits.clone())
12670                    .map(|r| r.map(|t| Self::SorobanTransactionDataExt(Box::new(t)))),
12671            ),
12672            TypeVariant::TransactionV0 => Box::new(
12673                ReadXdrIter::<_, TransactionV0>::new(dec, r.limits.clone())
12674                    .map(|r| r.map(|t| Self::TransactionV0(Box::new(t)))),
12675            ),
12676            TypeVariant::TransactionV0Ext => Box::new(
12677                ReadXdrIter::<_, TransactionV0Ext>::new(dec, r.limits.clone())
12678                    .map(|r| r.map(|t| Self::TransactionV0Ext(Box::new(t)))),
12679            ),
12680            TypeVariant::TransactionV0Envelope => Box::new(
12681                ReadXdrIter::<_, TransactionV0Envelope>::new(dec, r.limits.clone())
12682                    .map(|r| r.map(|t| Self::TransactionV0Envelope(Box::new(t)))),
12683            ),
12684            TypeVariant::Transaction => Box::new(
12685                ReadXdrIter::<_, Transaction>::new(dec, r.limits.clone())
12686                    .map(|r| r.map(|t| Self::Transaction(Box::new(t)))),
12687            ),
12688            TypeVariant::TransactionExt => Box::new(
12689                ReadXdrIter::<_, TransactionExt>::new(dec, r.limits.clone())
12690                    .map(|r| r.map(|t| Self::TransactionExt(Box::new(t)))),
12691            ),
12692            TypeVariant::TransactionV1Envelope => Box::new(
12693                ReadXdrIter::<_, TransactionV1Envelope>::new(dec, r.limits.clone())
12694                    .map(|r| r.map(|t| Self::TransactionV1Envelope(Box::new(t)))),
12695            ),
12696            TypeVariant::FeeBumpTransaction => Box::new(
12697                ReadXdrIter::<_, FeeBumpTransaction>::new(dec, r.limits.clone())
12698                    .map(|r| r.map(|t| Self::FeeBumpTransaction(Box::new(t)))),
12699            ),
12700            TypeVariant::FeeBumpTransactionInnerTx => Box::new(
12701                ReadXdrIter::<_, FeeBumpTransactionInnerTx>::new(dec, r.limits.clone())
12702                    .map(|r| r.map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t)))),
12703            ),
12704            TypeVariant::FeeBumpTransactionExt => Box::new(
12705                ReadXdrIter::<_, FeeBumpTransactionExt>::new(dec, r.limits.clone())
12706                    .map(|r| r.map(|t| Self::FeeBumpTransactionExt(Box::new(t)))),
12707            ),
12708            TypeVariant::FeeBumpTransactionEnvelope => Box::new(
12709                ReadXdrIter::<_, FeeBumpTransactionEnvelope>::new(dec, r.limits.clone())
12710                    .map(|r| r.map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t)))),
12711            ),
12712            TypeVariant::TransactionEnvelope => Box::new(
12713                ReadXdrIter::<_, TransactionEnvelope>::new(dec, r.limits.clone())
12714                    .map(|r| r.map(|t| Self::TransactionEnvelope(Box::new(t)))),
12715            ),
12716            TypeVariant::TransactionSignaturePayload => Box::new(
12717                ReadXdrIter::<_, TransactionSignaturePayload>::new(dec, r.limits.clone())
12718                    .map(|r| r.map(|t| Self::TransactionSignaturePayload(Box::new(t)))),
12719            ),
12720            TypeVariant::TransactionSignaturePayloadTaggedTransaction => Box::new(
12721                ReadXdrIter::<_, TransactionSignaturePayloadTaggedTransaction>::new(
12722                    dec,
12723                    r.limits.clone(),
12724                )
12725                .map(|r| {
12726                    r.map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t)))
12727                }),
12728            ),
12729            TypeVariant::ClaimAtomType => Box::new(
12730                ReadXdrIter::<_, ClaimAtomType>::new(dec, r.limits.clone())
12731                    .map(|r| r.map(|t| Self::ClaimAtomType(Box::new(t)))),
12732            ),
12733            TypeVariant::ClaimOfferAtomV0 => Box::new(
12734                ReadXdrIter::<_, ClaimOfferAtomV0>::new(dec, r.limits.clone())
12735                    .map(|r| r.map(|t| Self::ClaimOfferAtomV0(Box::new(t)))),
12736            ),
12737            TypeVariant::ClaimOfferAtom => Box::new(
12738                ReadXdrIter::<_, ClaimOfferAtom>::new(dec, r.limits.clone())
12739                    .map(|r| r.map(|t| Self::ClaimOfferAtom(Box::new(t)))),
12740            ),
12741            TypeVariant::ClaimLiquidityAtom => Box::new(
12742                ReadXdrIter::<_, ClaimLiquidityAtom>::new(dec, r.limits.clone())
12743                    .map(|r| r.map(|t| Self::ClaimLiquidityAtom(Box::new(t)))),
12744            ),
12745            TypeVariant::ClaimAtom => Box::new(
12746                ReadXdrIter::<_, ClaimAtom>::new(dec, r.limits.clone())
12747                    .map(|r| r.map(|t| Self::ClaimAtom(Box::new(t)))),
12748            ),
12749            TypeVariant::CreateAccountResultCode => Box::new(
12750                ReadXdrIter::<_, CreateAccountResultCode>::new(dec, r.limits.clone())
12751                    .map(|r| r.map(|t| Self::CreateAccountResultCode(Box::new(t)))),
12752            ),
12753            TypeVariant::CreateAccountResult => Box::new(
12754                ReadXdrIter::<_, CreateAccountResult>::new(dec, r.limits.clone())
12755                    .map(|r| r.map(|t| Self::CreateAccountResult(Box::new(t)))),
12756            ),
12757            TypeVariant::PaymentResultCode => Box::new(
12758                ReadXdrIter::<_, PaymentResultCode>::new(dec, r.limits.clone())
12759                    .map(|r| r.map(|t| Self::PaymentResultCode(Box::new(t)))),
12760            ),
12761            TypeVariant::PaymentResult => Box::new(
12762                ReadXdrIter::<_, PaymentResult>::new(dec, r.limits.clone())
12763                    .map(|r| r.map(|t| Self::PaymentResult(Box::new(t)))),
12764            ),
12765            TypeVariant::PathPaymentStrictReceiveResultCode => Box::new(
12766                ReadXdrIter::<_, PathPaymentStrictReceiveResultCode>::new(dec, r.limits.clone())
12767                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t)))),
12768            ),
12769            TypeVariant::SimplePaymentResult => Box::new(
12770                ReadXdrIter::<_, SimplePaymentResult>::new(dec, r.limits.clone())
12771                    .map(|r| r.map(|t| Self::SimplePaymentResult(Box::new(t)))),
12772            ),
12773            TypeVariant::PathPaymentStrictReceiveResult => Box::new(
12774                ReadXdrIter::<_, PathPaymentStrictReceiveResult>::new(dec, r.limits.clone())
12775                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t)))),
12776            ),
12777            TypeVariant::PathPaymentStrictReceiveResultSuccess => Box::new(
12778                ReadXdrIter::<_, PathPaymentStrictReceiveResultSuccess>::new(dec, r.limits.clone())
12779                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t)))),
12780            ),
12781            TypeVariant::PathPaymentStrictSendResultCode => Box::new(
12782                ReadXdrIter::<_, PathPaymentStrictSendResultCode>::new(dec, r.limits.clone())
12783                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t)))),
12784            ),
12785            TypeVariant::PathPaymentStrictSendResult => Box::new(
12786                ReadXdrIter::<_, PathPaymentStrictSendResult>::new(dec, r.limits.clone())
12787                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResult(Box::new(t)))),
12788            ),
12789            TypeVariant::PathPaymentStrictSendResultSuccess => Box::new(
12790                ReadXdrIter::<_, PathPaymentStrictSendResultSuccess>::new(dec, r.limits.clone())
12791                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t)))),
12792            ),
12793            TypeVariant::ManageSellOfferResultCode => Box::new(
12794                ReadXdrIter::<_, ManageSellOfferResultCode>::new(dec, r.limits.clone())
12795                    .map(|r| r.map(|t| Self::ManageSellOfferResultCode(Box::new(t)))),
12796            ),
12797            TypeVariant::ManageOfferEffect => Box::new(
12798                ReadXdrIter::<_, ManageOfferEffect>::new(dec, r.limits.clone())
12799                    .map(|r| r.map(|t| Self::ManageOfferEffect(Box::new(t)))),
12800            ),
12801            TypeVariant::ManageOfferSuccessResult => Box::new(
12802                ReadXdrIter::<_, ManageOfferSuccessResult>::new(dec, r.limits.clone())
12803                    .map(|r| r.map(|t| Self::ManageOfferSuccessResult(Box::new(t)))),
12804            ),
12805            TypeVariant::ManageOfferSuccessResultOffer => Box::new(
12806                ReadXdrIter::<_, ManageOfferSuccessResultOffer>::new(dec, r.limits.clone())
12807                    .map(|r| r.map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t)))),
12808            ),
12809            TypeVariant::ManageSellOfferResult => Box::new(
12810                ReadXdrIter::<_, ManageSellOfferResult>::new(dec, r.limits.clone())
12811                    .map(|r| r.map(|t| Self::ManageSellOfferResult(Box::new(t)))),
12812            ),
12813            TypeVariant::ManageBuyOfferResultCode => Box::new(
12814                ReadXdrIter::<_, ManageBuyOfferResultCode>::new(dec, r.limits.clone())
12815                    .map(|r| r.map(|t| Self::ManageBuyOfferResultCode(Box::new(t)))),
12816            ),
12817            TypeVariant::ManageBuyOfferResult => Box::new(
12818                ReadXdrIter::<_, ManageBuyOfferResult>::new(dec, r.limits.clone())
12819                    .map(|r| r.map(|t| Self::ManageBuyOfferResult(Box::new(t)))),
12820            ),
12821            TypeVariant::SetOptionsResultCode => Box::new(
12822                ReadXdrIter::<_, SetOptionsResultCode>::new(dec, r.limits.clone())
12823                    .map(|r| r.map(|t| Self::SetOptionsResultCode(Box::new(t)))),
12824            ),
12825            TypeVariant::SetOptionsResult => Box::new(
12826                ReadXdrIter::<_, SetOptionsResult>::new(dec, r.limits.clone())
12827                    .map(|r| r.map(|t| Self::SetOptionsResult(Box::new(t)))),
12828            ),
12829            TypeVariant::ChangeTrustResultCode => Box::new(
12830                ReadXdrIter::<_, ChangeTrustResultCode>::new(dec, r.limits.clone())
12831                    .map(|r| r.map(|t| Self::ChangeTrustResultCode(Box::new(t)))),
12832            ),
12833            TypeVariant::ChangeTrustResult => Box::new(
12834                ReadXdrIter::<_, ChangeTrustResult>::new(dec, r.limits.clone())
12835                    .map(|r| r.map(|t| Self::ChangeTrustResult(Box::new(t)))),
12836            ),
12837            TypeVariant::AllowTrustResultCode => Box::new(
12838                ReadXdrIter::<_, AllowTrustResultCode>::new(dec, r.limits.clone())
12839                    .map(|r| r.map(|t| Self::AllowTrustResultCode(Box::new(t)))),
12840            ),
12841            TypeVariant::AllowTrustResult => Box::new(
12842                ReadXdrIter::<_, AllowTrustResult>::new(dec, r.limits.clone())
12843                    .map(|r| r.map(|t| Self::AllowTrustResult(Box::new(t)))),
12844            ),
12845            TypeVariant::AccountMergeResultCode => Box::new(
12846                ReadXdrIter::<_, AccountMergeResultCode>::new(dec, r.limits.clone())
12847                    .map(|r| r.map(|t| Self::AccountMergeResultCode(Box::new(t)))),
12848            ),
12849            TypeVariant::AccountMergeResult => Box::new(
12850                ReadXdrIter::<_, AccountMergeResult>::new(dec, r.limits.clone())
12851                    .map(|r| r.map(|t| Self::AccountMergeResult(Box::new(t)))),
12852            ),
12853            TypeVariant::InflationResultCode => Box::new(
12854                ReadXdrIter::<_, InflationResultCode>::new(dec, r.limits.clone())
12855                    .map(|r| r.map(|t| Self::InflationResultCode(Box::new(t)))),
12856            ),
12857            TypeVariant::InflationPayout => Box::new(
12858                ReadXdrIter::<_, InflationPayout>::new(dec, r.limits.clone())
12859                    .map(|r| r.map(|t| Self::InflationPayout(Box::new(t)))),
12860            ),
12861            TypeVariant::InflationResult => Box::new(
12862                ReadXdrIter::<_, InflationResult>::new(dec, r.limits.clone())
12863                    .map(|r| r.map(|t| Self::InflationResult(Box::new(t)))),
12864            ),
12865            TypeVariant::ManageDataResultCode => Box::new(
12866                ReadXdrIter::<_, ManageDataResultCode>::new(dec, r.limits.clone())
12867                    .map(|r| r.map(|t| Self::ManageDataResultCode(Box::new(t)))),
12868            ),
12869            TypeVariant::ManageDataResult => Box::new(
12870                ReadXdrIter::<_, ManageDataResult>::new(dec, r.limits.clone())
12871                    .map(|r| r.map(|t| Self::ManageDataResult(Box::new(t)))),
12872            ),
12873            TypeVariant::BumpSequenceResultCode => Box::new(
12874                ReadXdrIter::<_, BumpSequenceResultCode>::new(dec, r.limits.clone())
12875                    .map(|r| r.map(|t| Self::BumpSequenceResultCode(Box::new(t)))),
12876            ),
12877            TypeVariant::BumpSequenceResult => Box::new(
12878                ReadXdrIter::<_, BumpSequenceResult>::new(dec, r.limits.clone())
12879                    .map(|r| r.map(|t| Self::BumpSequenceResult(Box::new(t)))),
12880            ),
12881            TypeVariant::CreateClaimableBalanceResultCode => Box::new(
12882                ReadXdrIter::<_, CreateClaimableBalanceResultCode>::new(dec, r.limits.clone())
12883                    .map(|r| r.map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t)))),
12884            ),
12885            TypeVariant::CreateClaimableBalanceResult => Box::new(
12886                ReadXdrIter::<_, CreateClaimableBalanceResult>::new(dec, r.limits.clone())
12887                    .map(|r| r.map(|t| Self::CreateClaimableBalanceResult(Box::new(t)))),
12888            ),
12889            TypeVariant::ClaimClaimableBalanceResultCode => Box::new(
12890                ReadXdrIter::<_, ClaimClaimableBalanceResultCode>::new(dec, r.limits.clone())
12891                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t)))),
12892            ),
12893            TypeVariant::ClaimClaimableBalanceResult => Box::new(
12894                ReadXdrIter::<_, ClaimClaimableBalanceResult>::new(dec, r.limits.clone())
12895                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceResult(Box::new(t)))),
12896            ),
12897            TypeVariant::BeginSponsoringFutureReservesResultCode => Box::new(
12898                ReadXdrIter::<_, BeginSponsoringFutureReservesResultCode>::new(
12899                    dec,
12900                    r.limits.clone(),
12901                )
12902                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t)))),
12903            ),
12904            TypeVariant::BeginSponsoringFutureReservesResult => Box::new(
12905                ReadXdrIter::<_, BeginSponsoringFutureReservesResult>::new(dec, r.limits.clone())
12906                    .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t)))),
12907            ),
12908            TypeVariant::EndSponsoringFutureReservesResultCode => Box::new(
12909                ReadXdrIter::<_, EndSponsoringFutureReservesResultCode>::new(dec, r.limits.clone())
12910                    .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t)))),
12911            ),
12912            TypeVariant::EndSponsoringFutureReservesResult => Box::new(
12913                ReadXdrIter::<_, EndSponsoringFutureReservesResult>::new(dec, r.limits.clone())
12914                    .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t)))),
12915            ),
12916            TypeVariant::RevokeSponsorshipResultCode => Box::new(
12917                ReadXdrIter::<_, RevokeSponsorshipResultCode>::new(dec, r.limits.clone())
12918                    .map(|r| r.map(|t| Self::RevokeSponsorshipResultCode(Box::new(t)))),
12919            ),
12920            TypeVariant::RevokeSponsorshipResult => Box::new(
12921                ReadXdrIter::<_, RevokeSponsorshipResult>::new(dec, r.limits.clone())
12922                    .map(|r| r.map(|t| Self::RevokeSponsorshipResult(Box::new(t)))),
12923            ),
12924            TypeVariant::ClawbackResultCode => Box::new(
12925                ReadXdrIter::<_, ClawbackResultCode>::new(dec, r.limits.clone())
12926                    .map(|r| r.map(|t| Self::ClawbackResultCode(Box::new(t)))),
12927            ),
12928            TypeVariant::ClawbackResult => Box::new(
12929                ReadXdrIter::<_, ClawbackResult>::new(dec, r.limits.clone())
12930                    .map(|r| r.map(|t| Self::ClawbackResult(Box::new(t)))),
12931            ),
12932            TypeVariant::ClawbackClaimableBalanceResultCode => Box::new(
12933                ReadXdrIter::<_, ClawbackClaimableBalanceResultCode>::new(dec, r.limits.clone())
12934                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t)))),
12935            ),
12936            TypeVariant::ClawbackClaimableBalanceResult => Box::new(
12937                ReadXdrIter::<_, ClawbackClaimableBalanceResult>::new(dec, r.limits.clone())
12938                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t)))),
12939            ),
12940            TypeVariant::SetTrustLineFlagsResultCode => Box::new(
12941                ReadXdrIter::<_, SetTrustLineFlagsResultCode>::new(dec, r.limits.clone())
12942                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t)))),
12943            ),
12944            TypeVariant::SetTrustLineFlagsResult => Box::new(
12945                ReadXdrIter::<_, SetTrustLineFlagsResult>::new(dec, r.limits.clone())
12946                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResult(Box::new(t)))),
12947            ),
12948            TypeVariant::LiquidityPoolDepositResultCode => Box::new(
12949                ReadXdrIter::<_, LiquidityPoolDepositResultCode>::new(dec, r.limits.clone())
12950                    .map(|r| r.map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t)))),
12951            ),
12952            TypeVariant::LiquidityPoolDepositResult => Box::new(
12953                ReadXdrIter::<_, LiquidityPoolDepositResult>::new(dec, r.limits.clone())
12954                    .map(|r| r.map(|t| Self::LiquidityPoolDepositResult(Box::new(t)))),
12955            ),
12956            TypeVariant::LiquidityPoolWithdrawResultCode => Box::new(
12957                ReadXdrIter::<_, LiquidityPoolWithdrawResultCode>::new(dec, r.limits.clone())
12958                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t)))),
12959            ),
12960            TypeVariant::LiquidityPoolWithdrawResult => Box::new(
12961                ReadXdrIter::<_, LiquidityPoolWithdrawResult>::new(dec, r.limits.clone())
12962                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t)))),
12963            ),
12964            TypeVariant::InvokeHostFunctionResultCode => Box::new(
12965                ReadXdrIter::<_, InvokeHostFunctionResultCode>::new(dec, r.limits.clone())
12966                    .map(|r| r.map(|t| Self::InvokeHostFunctionResultCode(Box::new(t)))),
12967            ),
12968            TypeVariant::InvokeHostFunctionResult => Box::new(
12969                ReadXdrIter::<_, InvokeHostFunctionResult>::new(dec, r.limits.clone())
12970                    .map(|r| r.map(|t| Self::InvokeHostFunctionResult(Box::new(t)))),
12971            ),
12972            TypeVariant::ExtendFootprintTtlResultCode => Box::new(
12973                ReadXdrIter::<_, ExtendFootprintTtlResultCode>::new(dec, r.limits.clone())
12974                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t)))),
12975            ),
12976            TypeVariant::ExtendFootprintTtlResult => Box::new(
12977                ReadXdrIter::<_, ExtendFootprintTtlResult>::new(dec, r.limits.clone())
12978                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResult(Box::new(t)))),
12979            ),
12980            TypeVariant::RestoreFootprintResultCode => Box::new(
12981                ReadXdrIter::<_, RestoreFootprintResultCode>::new(dec, r.limits.clone())
12982                    .map(|r| r.map(|t| Self::RestoreFootprintResultCode(Box::new(t)))),
12983            ),
12984            TypeVariant::RestoreFootprintResult => Box::new(
12985                ReadXdrIter::<_, RestoreFootprintResult>::new(dec, r.limits.clone())
12986                    .map(|r| r.map(|t| Self::RestoreFootprintResult(Box::new(t)))),
12987            ),
12988            TypeVariant::OperationResultCode => Box::new(
12989                ReadXdrIter::<_, OperationResultCode>::new(dec, r.limits.clone())
12990                    .map(|r| r.map(|t| Self::OperationResultCode(Box::new(t)))),
12991            ),
12992            TypeVariant::OperationResult => Box::new(
12993                ReadXdrIter::<_, OperationResult>::new(dec, r.limits.clone())
12994                    .map(|r| r.map(|t| Self::OperationResult(Box::new(t)))),
12995            ),
12996            TypeVariant::OperationResultTr => Box::new(
12997                ReadXdrIter::<_, OperationResultTr>::new(dec, r.limits.clone())
12998                    .map(|r| r.map(|t| Self::OperationResultTr(Box::new(t)))),
12999            ),
13000            TypeVariant::TransactionResultCode => Box::new(
13001                ReadXdrIter::<_, TransactionResultCode>::new(dec, r.limits.clone())
13002                    .map(|r| r.map(|t| Self::TransactionResultCode(Box::new(t)))),
13003            ),
13004            TypeVariant::InnerTransactionResult => Box::new(
13005                ReadXdrIter::<_, InnerTransactionResult>::new(dec, r.limits.clone())
13006                    .map(|r| r.map(|t| Self::InnerTransactionResult(Box::new(t)))),
13007            ),
13008            TypeVariant::InnerTransactionResultResult => Box::new(
13009                ReadXdrIter::<_, InnerTransactionResultResult>::new(dec, r.limits.clone())
13010                    .map(|r| r.map(|t| Self::InnerTransactionResultResult(Box::new(t)))),
13011            ),
13012            TypeVariant::InnerTransactionResultExt => Box::new(
13013                ReadXdrIter::<_, InnerTransactionResultExt>::new(dec, r.limits.clone())
13014                    .map(|r| r.map(|t| Self::InnerTransactionResultExt(Box::new(t)))),
13015            ),
13016            TypeVariant::InnerTransactionResultPair => Box::new(
13017                ReadXdrIter::<_, InnerTransactionResultPair>::new(dec, r.limits.clone())
13018                    .map(|r| r.map(|t| Self::InnerTransactionResultPair(Box::new(t)))),
13019            ),
13020            TypeVariant::TransactionResult => Box::new(
13021                ReadXdrIter::<_, TransactionResult>::new(dec, r.limits.clone())
13022                    .map(|r| r.map(|t| Self::TransactionResult(Box::new(t)))),
13023            ),
13024            TypeVariant::TransactionResultResult => Box::new(
13025                ReadXdrIter::<_, TransactionResultResult>::new(dec, r.limits.clone())
13026                    .map(|r| r.map(|t| Self::TransactionResultResult(Box::new(t)))),
13027            ),
13028            TypeVariant::TransactionResultExt => Box::new(
13029                ReadXdrIter::<_, TransactionResultExt>::new(dec, r.limits.clone())
13030                    .map(|r| r.map(|t| Self::TransactionResultExt(Box::new(t)))),
13031            ),
13032            TypeVariant::Hash => Box::new(
13033                ReadXdrIter::<_, Hash>::new(dec, r.limits.clone())
13034                    .map(|r| r.map(|t| Self::Hash(Box::new(t)))),
13035            ),
13036            TypeVariant::Uint256 => Box::new(
13037                ReadXdrIter::<_, Uint256>::new(dec, r.limits.clone())
13038                    .map(|r| r.map(|t| Self::Uint256(Box::new(t)))),
13039            ),
13040            TypeVariant::Uint32 => Box::new(
13041                ReadXdrIter::<_, Uint32>::new(dec, r.limits.clone())
13042                    .map(|r| r.map(|t| Self::Uint32(Box::new(t)))),
13043            ),
13044            TypeVariant::Int32 => Box::new(
13045                ReadXdrIter::<_, Int32>::new(dec, r.limits.clone())
13046                    .map(|r| r.map(|t| Self::Int32(Box::new(t)))),
13047            ),
13048            TypeVariant::Uint64 => Box::new(
13049                ReadXdrIter::<_, Uint64>::new(dec, r.limits.clone())
13050                    .map(|r| r.map(|t| Self::Uint64(Box::new(t)))),
13051            ),
13052            TypeVariant::Int64 => Box::new(
13053                ReadXdrIter::<_, Int64>::new(dec, r.limits.clone())
13054                    .map(|r| r.map(|t| Self::Int64(Box::new(t)))),
13055            ),
13056            TypeVariant::TimePoint => Box::new(
13057                ReadXdrIter::<_, TimePoint>::new(dec, r.limits.clone())
13058                    .map(|r| r.map(|t| Self::TimePoint(Box::new(t)))),
13059            ),
13060            TypeVariant::Duration => Box::new(
13061                ReadXdrIter::<_, Duration>::new(dec, r.limits.clone())
13062                    .map(|r| r.map(|t| Self::Duration(Box::new(t)))),
13063            ),
13064            TypeVariant::ExtensionPoint => Box::new(
13065                ReadXdrIter::<_, ExtensionPoint>::new(dec, r.limits.clone())
13066                    .map(|r| r.map(|t| Self::ExtensionPoint(Box::new(t)))),
13067            ),
13068            TypeVariant::CryptoKeyType => Box::new(
13069                ReadXdrIter::<_, CryptoKeyType>::new(dec, r.limits.clone())
13070                    .map(|r| r.map(|t| Self::CryptoKeyType(Box::new(t)))),
13071            ),
13072            TypeVariant::PublicKeyType => Box::new(
13073                ReadXdrIter::<_, PublicKeyType>::new(dec, r.limits.clone())
13074                    .map(|r| r.map(|t| Self::PublicKeyType(Box::new(t)))),
13075            ),
13076            TypeVariant::SignerKeyType => Box::new(
13077                ReadXdrIter::<_, SignerKeyType>::new(dec, r.limits.clone())
13078                    .map(|r| r.map(|t| Self::SignerKeyType(Box::new(t)))),
13079            ),
13080            TypeVariant::PublicKey => Box::new(
13081                ReadXdrIter::<_, PublicKey>::new(dec, r.limits.clone())
13082                    .map(|r| r.map(|t| Self::PublicKey(Box::new(t)))),
13083            ),
13084            TypeVariant::SignerKey => Box::new(
13085                ReadXdrIter::<_, SignerKey>::new(dec, r.limits.clone())
13086                    .map(|r| r.map(|t| Self::SignerKey(Box::new(t)))),
13087            ),
13088            TypeVariant::SignerKeyEd25519SignedPayload => Box::new(
13089                ReadXdrIter::<_, SignerKeyEd25519SignedPayload>::new(dec, r.limits.clone())
13090                    .map(|r| r.map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t)))),
13091            ),
13092            TypeVariant::Signature => Box::new(
13093                ReadXdrIter::<_, Signature>::new(dec, r.limits.clone())
13094                    .map(|r| r.map(|t| Self::Signature(Box::new(t)))),
13095            ),
13096            TypeVariant::SignatureHint => Box::new(
13097                ReadXdrIter::<_, SignatureHint>::new(dec, r.limits.clone())
13098                    .map(|r| r.map(|t| Self::SignatureHint(Box::new(t)))),
13099            ),
13100            TypeVariant::NodeId => Box::new(
13101                ReadXdrIter::<_, NodeId>::new(dec, r.limits.clone())
13102                    .map(|r| r.map(|t| Self::NodeId(Box::new(t)))),
13103            ),
13104            TypeVariant::AccountId => Box::new(
13105                ReadXdrIter::<_, AccountId>::new(dec, r.limits.clone())
13106                    .map(|r| r.map(|t| Self::AccountId(Box::new(t)))),
13107            ),
13108            TypeVariant::ContractId => Box::new(
13109                ReadXdrIter::<_, ContractId>::new(dec, r.limits.clone())
13110                    .map(|r| r.map(|t| Self::ContractId(Box::new(t)))),
13111            ),
13112            TypeVariant::Curve25519Secret => Box::new(
13113                ReadXdrIter::<_, Curve25519Secret>::new(dec, r.limits.clone())
13114                    .map(|r| r.map(|t| Self::Curve25519Secret(Box::new(t)))),
13115            ),
13116            TypeVariant::Curve25519Public => Box::new(
13117                ReadXdrIter::<_, Curve25519Public>::new(dec, r.limits.clone())
13118                    .map(|r| r.map(|t| Self::Curve25519Public(Box::new(t)))),
13119            ),
13120            TypeVariant::HmacSha256Key => Box::new(
13121                ReadXdrIter::<_, HmacSha256Key>::new(dec, r.limits.clone())
13122                    .map(|r| r.map(|t| Self::HmacSha256Key(Box::new(t)))),
13123            ),
13124            TypeVariant::HmacSha256Mac => Box::new(
13125                ReadXdrIter::<_, HmacSha256Mac>::new(dec, r.limits.clone())
13126                    .map(|r| r.map(|t| Self::HmacSha256Mac(Box::new(t)))),
13127            ),
13128            TypeVariant::ShortHashSeed => Box::new(
13129                ReadXdrIter::<_, ShortHashSeed>::new(dec, r.limits.clone())
13130                    .map(|r| r.map(|t| Self::ShortHashSeed(Box::new(t)))),
13131            ),
13132            TypeVariant::BinaryFuseFilterType => Box::new(
13133                ReadXdrIter::<_, BinaryFuseFilterType>::new(dec, r.limits.clone())
13134                    .map(|r| r.map(|t| Self::BinaryFuseFilterType(Box::new(t)))),
13135            ),
13136            TypeVariant::SerializedBinaryFuseFilter => Box::new(
13137                ReadXdrIter::<_, SerializedBinaryFuseFilter>::new(dec, r.limits.clone())
13138                    .map(|r| r.map(|t| Self::SerializedBinaryFuseFilter(Box::new(t)))),
13139            ),
13140            TypeVariant::PoolId => Box::new(
13141                ReadXdrIter::<_, PoolId>::new(dec, r.limits.clone())
13142                    .map(|r| r.map(|t| Self::PoolId(Box::new(t)))),
13143            ),
13144            TypeVariant::ClaimableBalanceIdType => Box::new(
13145                ReadXdrIter::<_, ClaimableBalanceIdType>::new(dec, r.limits.clone())
13146                    .map(|r| r.map(|t| Self::ClaimableBalanceIdType(Box::new(t)))),
13147            ),
13148            TypeVariant::ClaimableBalanceId => Box::new(
13149                ReadXdrIter::<_, ClaimableBalanceId>::new(dec, r.limits.clone())
13150                    .map(|r| r.map(|t| Self::ClaimableBalanceId(Box::new(t)))),
13151            ),
13152            #[cfg(feature = "test_feature")]
13153            TypeVariant::TestNextType => Box::new(
13154                ReadXdrIter::<_, TestNextType>::new(dec, r.limits.clone())
13155                    .map(|r| r.map(|t| Self::TestNextType(Box::new(t)))),
13156            ),
13157        }
13158    }
13159
13160    #[cfg(feature = "std")]
13161    pub fn from_xdr<B: AsRef<[u8]>>(
13162        v: TypeVariant,
13163        bytes: B,
13164        limits: Limits,
13165    ) -> Result<Self, Error> {
13166        let mut cursor = Limited::new(Cursor::new(bytes.as_ref()), limits);
13167        let t = Self::read_xdr_to_end(v, &mut cursor)?;
13168        Ok(t)
13169    }
13170
13171    #[cfg(feature = "base64")]
13172    pub fn from_xdr_base64(
13173        v: TypeVariant,
13174        b64: impl AsRef<[u8]>,
13175        limits: Limits,
13176    ) -> Result<Self, Error> {
13177        let mut dec = Limited::new(
13178            base64::read::DecoderReader::new(
13179                SkipWhitespace::new(Cursor::new(b64)),
13180                &base64::engine::general_purpose::STANDARD,
13181            ),
13182            limits,
13183        );
13184        let t = Self::read_xdr_to_end(v, &mut dec)?;
13185        Ok(t)
13186    }
13187
13188    #[cfg(all(feature = "std", feature = "serde_json"))]
13189    #[deprecated(note = "use from_json")]
13190    pub fn read_json(v: TypeVariant, r: impl Read) -> Result<Self, Error> {
13191        Self::from_json(v, r)
13192    }
13193
13194    #[cfg(all(feature = "std", feature = "serde_json"))]
13195    #[allow(clippy::too_many_lines)]
13196    pub fn from_json(v: TypeVariant, r: impl Read) -> Result<Self, Error> {
13197        match v {
13198            TypeVariant::Value => Ok(Self::Value(Box::new(serde_json::from_reader(r)?))),
13199            TypeVariant::ScpBallot => Ok(Self::ScpBallot(Box::new(serde_json::from_reader(r)?))),
13200            TypeVariant::ScpStatementType => Ok(Self::ScpStatementType(Box::new(
13201                serde_json::from_reader(r)?,
13202            ))),
13203            TypeVariant::ScpNomination => {
13204                Ok(Self::ScpNomination(Box::new(serde_json::from_reader(r)?)))
13205            }
13206            TypeVariant::ScpStatement => {
13207                Ok(Self::ScpStatement(Box::new(serde_json::from_reader(r)?)))
13208            }
13209            TypeVariant::ScpStatementPledges => Ok(Self::ScpStatementPledges(Box::new(
13210                serde_json::from_reader(r)?,
13211            ))),
13212            TypeVariant::ScpStatementPrepare => Ok(Self::ScpStatementPrepare(Box::new(
13213                serde_json::from_reader(r)?,
13214            ))),
13215            TypeVariant::ScpStatementConfirm => Ok(Self::ScpStatementConfirm(Box::new(
13216                serde_json::from_reader(r)?,
13217            ))),
13218            TypeVariant::ScpStatementExternalize => Ok(Self::ScpStatementExternalize(Box::new(
13219                serde_json::from_reader(r)?,
13220            ))),
13221            TypeVariant::ScpEnvelope => {
13222                Ok(Self::ScpEnvelope(Box::new(serde_json::from_reader(r)?)))
13223            }
13224            TypeVariant::ScpQuorumSet => {
13225                Ok(Self::ScpQuorumSet(Box::new(serde_json::from_reader(r)?)))
13226            }
13227            TypeVariant::EncodedLedgerKey => Ok(Self::EncodedLedgerKey(Box::new(
13228                serde_json::from_reader(r)?,
13229            ))),
13230            TypeVariant::ConfigSettingContractExecutionLanesV0 => Ok(
13231                Self::ConfigSettingContractExecutionLanesV0(Box::new(serde_json::from_reader(r)?)),
13232            ),
13233            TypeVariant::ConfigSettingContractComputeV0 => Ok(
13234                Self::ConfigSettingContractComputeV0(Box::new(serde_json::from_reader(r)?)),
13235            ),
13236            TypeVariant::ConfigSettingContractParallelComputeV0 => Ok(
13237                Self::ConfigSettingContractParallelComputeV0(Box::new(serde_json::from_reader(r)?)),
13238            ),
13239            TypeVariant::ConfigSettingContractLedgerCostV0 => Ok(
13240                Self::ConfigSettingContractLedgerCostV0(Box::new(serde_json::from_reader(r)?)),
13241            ),
13242            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Ok(
13243                Self::ConfigSettingContractLedgerCostExtV0(Box::new(serde_json::from_reader(r)?)),
13244            ),
13245            TypeVariant::ConfigSettingContractHistoricalDataV0 => Ok(
13246                Self::ConfigSettingContractHistoricalDataV0(Box::new(serde_json::from_reader(r)?)),
13247            ),
13248            TypeVariant::ConfigSettingContractEventsV0 => Ok(Self::ConfigSettingContractEventsV0(
13249                Box::new(serde_json::from_reader(r)?),
13250            )),
13251            TypeVariant::ConfigSettingContractBandwidthV0 => Ok(
13252                Self::ConfigSettingContractBandwidthV0(Box::new(serde_json::from_reader(r)?)),
13253            ),
13254            TypeVariant::ContractCostType => Ok(Self::ContractCostType(Box::new(
13255                serde_json::from_reader(r)?,
13256            ))),
13257            TypeVariant::ContractCostParamEntry => Ok(Self::ContractCostParamEntry(Box::new(
13258                serde_json::from_reader(r)?,
13259            ))),
13260            TypeVariant::StateArchivalSettings => Ok(Self::StateArchivalSettings(Box::new(
13261                serde_json::from_reader(r)?,
13262            ))),
13263            TypeVariant::EvictionIterator => Ok(Self::EvictionIterator(Box::new(
13264                serde_json::from_reader(r)?,
13265            ))),
13266            TypeVariant::ConfigSettingScpTiming => Ok(Self::ConfigSettingScpTiming(Box::new(
13267                serde_json::from_reader(r)?,
13268            ))),
13269            TypeVariant::FrozenLedgerKeys => Ok(Self::FrozenLedgerKeys(Box::new(
13270                serde_json::from_reader(r)?,
13271            ))),
13272            TypeVariant::FrozenLedgerKeysDelta => Ok(Self::FrozenLedgerKeysDelta(Box::new(
13273                serde_json::from_reader(r)?,
13274            ))),
13275            TypeVariant::FreezeBypassTxs => {
13276                Ok(Self::FreezeBypassTxs(Box::new(serde_json::from_reader(r)?)))
13277            }
13278            TypeVariant::FreezeBypassTxsDelta => Ok(Self::FreezeBypassTxsDelta(Box::new(
13279                serde_json::from_reader(r)?,
13280            ))),
13281            TypeVariant::ContractCostParams => Ok(Self::ContractCostParams(Box::new(
13282                serde_json::from_reader(r)?,
13283            ))),
13284            TypeVariant::ConfigSettingId => {
13285                Ok(Self::ConfigSettingId(Box::new(serde_json::from_reader(r)?)))
13286            }
13287            TypeVariant::ConfigSettingEntry => Ok(Self::ConfigSettingEntry(Box::new(
13288                serde_json::from_reader(r)?,
13289            ))),
13290            TypeVariant::ScEnvMetaKind => {
13291                Ok(Self::ScEnvMetaKind(Box::new(serde_json::from_reader(r)?)))
13292            }
13293            TypeVariant::ScEnvMetaEntry => {
13294                Ok(Self::ScEnvMetaEntry(Box::new(serde_json::from_reader(r)?)))
13295            }
13296            TypeVariant::ScEnvMetaEntryInterfaceVersion => Ok(
13297                Self::ScEnvMetaEntryInterfaceVersion(Box::new(serde_json::from_reader(r)?)),
13298            ),
13299            TypeVariant::ScMetaV0 => Ok(Self::ScMetaV0(Box::new(serde_json::from_reader(r)?))),
13300            TypeVariant::ScMetaKind => Ok(Self::ScMetaKind(Box::new(serde_json::from_reader(r)?))),
13301            TypeVariant::ScMetaEntry => {
13302                Ok(Self::ScMetaEntry(Box::new(serde_json::from_reader(r)?)))
13303            }
13304            TypeVariant::ScSpecType => Ok(Self::ScSpecType(Box::new(serde_json::from_reader(r)?))),
13305            TypeVariant::ScSpecTypeOption => Ok(Self::ScSpecTypeOption(Box::new(
13306                serde_json::from_reader(r)?,
13307            ))),
13308            TypeVariant::ScSpecTypeResult => Ok(Self::ScSpecTypeResult(Box::new(
13309                serde_json::from_reader(r)?,
13310            ))),
13311            TypeVariant::ScSpecTypeVec => {
13312                Ok(Self::ScSpecTypeVec(Box::new(serde_json::from_reader(r)?)))
13313            }
13314            TypeVariant::ScSpecTypeMap => {
13315                Ok(Self::ScSpecTypeMap(Box::new(serde_json::from_reader(r)?)))
13316            }
13317            TypeVariant::ScSpecTypeTuple => {
13318                Ok(Self::ScSpecTypeTuple(Box::new(serde_json::from_reader(r)?)))
13319            }
13320            TypeVariant::ScSpecTypeBytesN => Ok(Self::ScSpecTypeBytesN(Box::new(
13321                serde_json::from_reader(r)?,
13322            ))),
13323            TypeVariant::ScSpecTypeUdt => {
13324                Ok(Self::ScSpecTypeUdt(Box::new(serde_json::from_reader(r)?)))
13325            }
13326            TypeVariant::ScSpecTypeDef => {
13327                Ok(Self::ScSpecTypeDef(Box::new(serde_json::from_reader(r)?)))
13328            }
13329            TypeVariant::ScSpecUdtStructFieldV0 => Ok(Self::ScSpecUdtStructFieldV0(Box::new(
13330                serde_json::from_reader(r)?,
13331            ))),
13332            TypeVariant::ScSpecUdtStructV0 => Ok(Self::ScSpecUdtStructV0(Box::new(
13333                serde_json::from_reader(r)?,
13334            ))),
13335            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
13336                serde_json::from_reader(r)?,
13337            ))),
13338            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Ok(Self::ScSpecUdtUnionCaseTupleV0(
13339                Box::new(serde_json::from_reader(r)?),
13340            )),
13341            TypeVariant::ScSpecUdtUnionCaseV0Kind => Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
13342                serde_json::from_reader(r)?,
13343            ))),
13344            TypeVariant::ScSpecUdtUnionCaseV0 => Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
13345                serde_json::from_reader(r)?,
13346            ))),
13347            TypeVariant::ScSpecUdtUnionV0 => Ok(Self::ScSpecUdtUnionV0(Box::new(
13348                serde_json::from_reader(r)?,
13349            ))),
13350            TypeVariant::ScSpecUdtEnumCaseV0 => Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
13351                serde_json::from_reader(r)?,
13352            ))),
13353            TypeVariant::ScSpecUdtEnumV0 => {
13354                Ok(Self::ScSpecUdtEnumV0(Box::new(serde_json::from_reader(r)?)))
13355            }
13356            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
13357                serde_json::from_reader(r)?,
13358            ))),
13359            TypeVariant::ScSpecUdtErrorEnumV0 => Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
13360                serde_json::from_reader(r)?,
13361            ))),
13362            TypeVariant::ScSpecFunctionInputV0 => Ok(Self::ScSpecFunctionInputV0(Box::new(
13363                serde_json::from_reader(r)?,
13364            ))),
13365            TypeVariant::ScSpecFunctionV0 => Ok(Self::ScSpecFunctionV0(Box::new(
13366                serde_json::from_reader(r)?,
13367            ))),
13368            TypeVariant::ScSpecEventParamLocationV0 => Ok(Self::ScSpecEventParamLocationV0(
13369                Box::new(serde_json::from_reader(r)?),
13370            )),
13371            TypeVariant::ScSpecEventParamV0 => Ok(Self::ScSpecEventParamV0(Box::new(
13372                serde_json::from_reader(r)?,
13373            ))),
13374            TypeVariant::ScSpecEventDataFormat => Ok(Self::ScSpecEventDataFormat(Box::new(
13375                serde_json::from_reader(r)?,
13376            ))),
13377            TypeVariant::ScSpecEventV0 => {
13378                Ok(Self::ScSpecEventV0(Box::new(serde_json::from_reader(r)?)))
13379            }
13380            TypeVariant::ScSpecEntryKind => {
13381                Ok(Self::ScSpecEntryKind(Box::new(serde_json::from_reader(r)?)))
13382            }
13383            TypeVariant::ScSpecEntry => {
13384                Ok(Self::ScSpecEntry(Box::new(serde_json::from_reader(r)?)))
13385            }
13386            TypeVariant::ScValType => Ok(Self::ScValType(Box::new(serde_json::from_reader(r)?))),
13387            TypeVariant::ScErrorType => {
13388                Ok(Self::ScErrorType(Box::new(serde_json::from_reader(r)?)))
13389            }
13390            TypeVariant::ScErrorCode => {
13391                Ok(Self::ScErrorCode(Box::new(serde_json::from_reader(r)?)))
13392            }
13393            TypeVariant::ScError => Ok(Self::ScError(Box::new(serde_json::from_reader(r)?))),
13394            TypeVariant::UInt128Parts => {
13395                Ok(Self::UInt128Parts(Box::new(serde_json::from_reader(r)?)))
13396            }
13397            TypeVariant::Int128Parts => {
13398                Ok(Self::Int128Parts(Box::new(serde_json::from_reader(r)?)))
13399            }
13400            TypeVariant::UInt256Parts => {
13401                Ok(Self::UInt256Parts(Box::new(serde_json::from_reader(r)?)))
13402            }
13403            TypeVariant::Int256Parts => {
13404                Ok(Self::Int256Parts(Box::new(serde_json::from_reader(r)?)))
13405            }
13406            TypeVariant::ContractExecutableType => Ok(Self::ContractExecutableType(Box::new(
13407                serde_json::from_reader(r)?,
13408            ))),
13409            TypeVariant::ContractExecutable => Ok(Self::ContractExecutable(Box::new(
13410                serde_json::from_reader(r)?,
13411            ))),
13412            TypeVariant::ScAddressType => {
13413                Ok(Self::ScAddressType(Box::new(serde_json::from_reader(r)?)))
13414            }
13415            TypeVariant::MuxedEd25519Account => Ok(Self::MuxedEd25519Account(Box::new(
13416                serde_json::from_reader(r)?,
13417            ))),
13418            TypeVariant::ScAddress => Ok(Self::ScAddress(Box::new(serde_json::from_reader(r)?))),
13419            TypeVariant::ScVec => Ok(Self::ScVec(Box::new(serde_json::from_reader(r)?))),
13420            TypeVariant::ScMap => Ok(Self::ScMap(Box::new(serde_json::from_reader(r)?))),
13421            TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(serde_json::from_reader(r)?))),
13422            TypeVariant::ScString => Ok(Self::ScString(Box::new(serde_json::from_reader(r)?))),
13423            TypeVariant::ScSymbol => Ok(Self::ScSymbol(Box::new(serde_json::from_reader(r)?))),
13424            TypeVariant::ScNonceKey => Ok(Self::ScNonceKey(Box::new(serde_json::from_reader(r)?))),
13425            TypeVariant::ScContractInstance => Ok(Self::ScContractInstance(Box::new(
13426                serde_json::from_reader(r)?,
13427            ))),
13428            TypeVariant::ScVal => Ok(Self::ScVal(Box::new(serde_json::from_reader(r)?))),
13429            TypeVariant::ScMapEntry => Ok(Self::ScMapEntry(Box::new(serde_json::from_reader(r)?))),
13430            TypeVariant::LedgerCloseMetaBatch => Ok(Self::LedgerCloseMetaBatch(Box::new(
13431                serde_json::from_reader(r)?,
13432            ))),
13433            TypeVariant::StoredTransactionSet => Ok(Self::StoredTransactionSet(Box::new(
13434                serde_json::from_reader(r)?,
13435            ))),
13436            TypeVariant::StoredDebugTransactionSet => Ok(Self::StoredDebugTransactionSet(
13437                Box::new(serde_json::from_reader(r)?),
13438            )),
13439            TypeVariant::PersistedScpStateV0 => Ok(Self::PersistedScpStateV0(Box::new(
13440                serde_json::from_reader(r)?,
13441            ))),
13442            TypeVariant::PersistedScpStateV1 => Ok(Self::PersistedScpStateV1(Box::new(
13443                serde_json::from_reader(r)?,
13444            ))),
13445            TypeVariant::PersistedScpState => Ok(Self::PersistedScpState(Box::new(
13446                serde_json::from_reader(r)?,
13447            ))),
13448            TypeVariant::Thresholds => Ok(Self::Thresholds(Box::new(serde_json::from_reader(r)?))),
13449            TypeVariant::String32 => Ok(Self::String32(Box::new(serde_json::from_reader(r)?))),
13450            TypeVariant::String64 => Ok(Self::String64(Box::new(serde_json::from_reader(r)?))),
13451            TypeVariant::SequenceNumber => {
13452                Ok(Self::SequenceNumber(Box::new(serde_json::from_reader(r)?)))
13453            }
13454            TypeVariant::DataValue => Ok(Self::DataValue(Box::new(serde_json::from_reader(r)?))),
13455            TypeVariant::AssetCode4 => Ok(Self::AssetCode4(Box::new(serde_json::from_reader(r)?))),
13456            TypeVariant::AssetCode12 => {
13457                Ok(Self::AssetCode12(Box::new(serde_json::from_reader(r)?)))
13458            }
13459            TypeVariant::AssetType => Ok(Self::AssetType(Box::new(serde_json::from_reader(r)?))),
13460            TypeVariant::AssetCode => Ok(Self::AssetCode(Box::new(serde_json::from_reader(r)?))),
13461            TypeVariant::AlphaNum4 => Ok(Self::AlphaNum4(Box::new(serde_json::from_reader(r)?))),
13462            TypeVariant::AlphaNum12 => Ok(Self::AlphaNum12(Box::new(serde_json::from_reader(r)?))),
13463            TypeVariant::Asset => Ok(Self::Asset(Box::new(serde_json::from_reader(r)?))),
13464            TypeVariant::Price => Ok(Self::Price(Box::new(serde_json::from_reader(r)?))),
13465            TypeVariant::Liabilities => {
13466                Ok(Self::Liabilities(Box::new(serde_json::from_reader(r)?)))
13467            }
13468            TypeVariant::ThresholdIndexes => Ok(Self::ThresholdIndexes(Box::new(
13469                serde_json::from_reader(r)?,
13470            ))),
13471            TypeVariant::LedgerEntryType => {
13472                Ok(Self::LedgerEntryType(Box::new(serde_json::from_reader(r)?)))
13473            }
13474            TypeVariant::Signer => Ok(Self::Signer(Box::new(serde_json::from_reader(r)?))),
13475            TypeVariant::AccountFlags => {
13476                Ok(Self::AccountFlags(Box::new(serde_json::from_reader(r)?)))
13477            }
13478            TypeVariant::SponsorshipDescriptor => Ok(Self::SponsorshipDescriptor(Box::new(
13479                serde_json::from_reader(r)?,
13480            ))),
13481            TypeVariant::AccountEntryExtensionV3 => Ok(Self::AccountEntryExtensionV3(Box::new(
13482                serde_json::from_reader(r)?,
13483            ))),
13484            TypeVariant::AccountEntryExtensionV2 => Ok(Self::AccountEntryExtensionV2(Box::new(
13485                serde_json::from_reader(r)?,
13486            ))),
13487            TypeVariant::AccountEntryExtensionV2Ext => Ok(Self::AccountEntryExtensionV2Ext(
13488                Box::new(serde_json::from_reader(r)?),
13489            )),
13490            TypeVariant::AccountEntryExtensionV1 => Ok(Self::AccountEntryExtensionV1(Box::new(
13491                serde_json::from_reader(r)?,
13492            ))),
13493            TypeVariant::AccountEntryExtensionV1Ext => Ok(Self::AccountEntryExtensionV1Ext(
13494                Box::new(serde_json::from_reader(r)?),
13495            )),
13496            TypeVariant::AccountEntry => {
13497                Ok(Self::AccountEntry(Box::new(serde_json::from_reader(r)?)))
13498            }
13499            TypeVariant::AccountEntryExt => {
13500                Ok(Self::AccountEntryExt(Box::new(serde_json::from_reader(r)?)))
13501            }
13502            TypeVariant::TrustLineFlags => {
13503                Ok(Self::TrustLineFlags(Box::new(serde_json::from_reader(r)?)))
13504            }
13505            TypeVariant::LiquidityPoolType => Ok(Self::LiquidityPoolType(Box::new(
13506                serde_json::from_reader(r)?,
13507            ))),
13508            TypeVariant::TrustLineAsset => {
13509                Ok(Self::TrustLineAsset(Box::new(serde_json::from_reader(r)?)))
13510            }
13511            TypeVariant::TrustLineEntryExtensionV2 => Ok(Self::TrustLineEntryExtensionV2(
13512                Box::new(serde_json::from_reader(r)?),
13513            )),
13514            TypeVariant::TrustLineEntryExtensionV2Ext => Ok(Self::TrustLineEntryExtensionV2Ext(
13515                Box::new(serde_json::from_reader(r)?),
13516            )),
13517            TypeVariant::TrustLineEntry => {
13518                Ok(Self::TrustLineEntry(Box::new(serde_json::from_reader(r)?)))
13519            }
13520            TypeVariant::TrustLineEntryExt => Ok(Self::TrustLineEntryExt(Box::new(
13521                serde_json::from_reader(r)?,
13522            ))),
13523            TypeVariant::TrustLineEntryV1 => Ok(Self::TrustLineEntryV1(Box::new(
13524                serde_json::from_reader(r)?,
13525            ))),
13526            TypeVariant::TrustLineEntryV1Ext => Ok(Self::TrustLineEntryV1Ext(Box::new(
13527                serde_json::from_reader(r)?,
13528            ))),
13529            TypeVariant::OfferEntryFlags => {
13530                Ok(Self::OfferEntryFlags(Box::new(serde_json::from_reader(r)?)))
13531            }
13532            TypeVariant::OfferEntry => Ok(Self::OfferEntry(Box::new(serde_json::from_reader(r)?))),
13533            TypeVariant::OfferEntryExt => {
13534                Ok(Self::OfferEntryExt(Box::new(serde_json::from_reader(r)?)))
13535            }
13536            TypeVariant::DataEntry => Ok(Self::DataEntry(Box::new(serde_json::from_reader(r)?))),
13537            TypeVariant::DataEntryExt => {
13538                Ok(Self::DataEntryExt(Box::new(serde_json::from_reader(r)?)))
13539            }
13540            TypeVariant::ClaimPredicateType => Ok(Self::ClaimPredicateType(Box::new(
13541                serde_json::from_reader(r)?,
13542            ))),
13543            TypeVariant::ClaimPredicate => {
13544                Ok(Self::ClaimPredicate(Box::new(serde_json::from_reader(r)?)))
13545            }
13546            TypeVariant::ClaimantType => {
13547                Ok(Self::ClaimantType(Box::new(serde_json::from_reader(r)?)))
13548            }
13549            TypeVariant::Claimant => Ok(Self::Claimant(Box::new(serde_json::from_reader(r)?))),
13550            TypeVariant::ClaimantV0 => Ok(Self::ClaimantV0(Box::new(serde_json::from_reader(r)?))),
13551            TypeVariant::ClaimableBalanceFlags => Ok(Self::ClaimableBalanceFlags(Box::new(
13552                serde_json::from_reader(r)?,
13553            ))),
13554            TypeVariant::ClaimableBalanceEntryExtensionV1 => Ok(
13555                Self::ClaimableBalanceEntryExtensionV1(Box::new(serde_json::from_reader(r)?)),
13556            ),
13557            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Ok(
13558                Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(serde_json::from_reader(r)?)),
13559            ),
13560            TypeVariant::ClaimableBalanceEntry => Ok(Self::ClaimableBalanceEntry(Box::new(
13561                serde_json::from_reader(r)?,
13562            ))),
13563            TypeVariant::ClaimableBalanceEntryExt => Ok(Self::ClaimableBalanceEntryExt(Box::new(
13564                serde_json::from_reader(r)?,
13565            ))),
13566            TypeVariant::LiquidityPoolConstantProductParameters => Ok(
13567                Self::LiquidityPoolConstantProductParameters(Box::new(serde_json::from_reader(r)?)),
13568            ),
13569            TypeVariant::LiquidityPoolEntry => Ok(Self::LiquidityPoolEntry(Box::new(
13570                serde_json::from_reader(r)?,
13571            ))),
13572            TypeVariant::LiquidityPoolEntryBody => Ok(Self::LiquidityPoolEntryBody(Box::new(
13573                serde_json::from_reader(r)?,
13574            ))),
13575            TypeVariant::LiquidityPoolEntryConstantProduct => Ok(
13576                Self::LiquidityPoolEntryConstantProduct(Box::new(serde_json::from_reader(r)?)),
13577            ),
13578            TypeVariant::ContractDataDurability => Ok(Self::ContractDataDurability(Box::new(
13579                serde_json::from_reader(r)?,
13580            ))),
13581            TypeVariant::ContractDataEntry => Ok(Self::ContractDataEntry(Box::new(
13582                serde_json::from_reader(r)?,
13583            ))),
13584            TypeVariant::ContractCodeCostInputs => Ok(Self::ContractCodeCostInputs(Box::new(
13585                serde_json::from_reader(r)?,
13586            ))),
13587            TypeVariant::ContractCodeEntry => Ok(Self::ContractCodeEntry(Box::new(
13588                serde_json::from_reader(r)?,
13589            ))),
13590            TypeVariant::ContractCodeEntryExt => Ok(Self::ContractCodeEntryExt(Box::new(
13591                serde_json::from_reader(r)?,
13592            ))),
13593            TypeVariant::ContractCodeEntryV1 => Ok(Self::ContractCodeEntryV1(Box::new(
13594                serde_json::from_reader(r)?,
13595            ))),
13596            TypeVariant::TtlEntry => Ok(Self::TtlEntry(Box::new(serde_json::from_reader(r)?))),
13597            TypeVariant::LedgerEntryExtensionV1 => Ok(Self::LedgerEntryExtensionV1(Box::new(
13598                serde_json::from_reader(r)?,
13599            ))),
13600            TypeVariant::LedgerEntryExtensionV1Ext => Ok(Self::LedgerEntryExtensionV1Ext(
13601                Box::new(serde_json::from_reader(r)?),
13602            )),
13603            TypeVariant::LedgerEntry => {
13604                Ok(Self::LedgerEntry(Box::new(serde_json::from_reader(r)?)))
13605            }
13606            TypeVariant::LedgerEntryData => {
13607                Ok(Self::LedgerEntryData(Box::new(serde_json::from_reader(r)?)))
13608            }
13609            TypeVariant::LedgerEntryExt => {
13610                Ok(Self::LedgerEntryExt(Box::new(serde_json::from_reader(r)?)))
13611            }
13612            TypeVariant::LedgerKey => Ok(Self::LedgerKey(Box::new(serde_json::from_reader(r)?))),
13613            TypeVariant::LedgerKeyAccount => Ok(Self::LedgerKeyAccount(Box::new(
13614                serde_json::from_reader(r)?,
13615            ))),
13616            TypeVariant::LedgerKeyTrustLine => Ok(Self::LedgerKeyTrustLine(Box::new(
13617                serde_json::from_reader(r)?,
13618            ))),
13619            TypeVariant::LedgerKeyOffer => {
13620                Ok(Self::LedgerKeyOffer(Box::new(serde_json::from_reader(r)?)))
13621            }
13622            TypeVariant::LedgerKeyData => {
13623                Ok(Self::LedgerKeyData(Box::new(serde_json::from_reader(r)?)))
13624            }
13625            TypeVariant::LedgerKeyClaimableBalance => Ok(Self::LedgerKeyClaimableBalance(
13626                Box::new(serde_json::from_reader(r)?),
13627            )),
13628            TypeVariant::LedgerKeyLiquidityPool => Ok(Self::LedgerKeyLiquidityPool(Box::new(
13629                serde_json::from_reader(r)?,
13630            ))),
13631            TypeVariant::LedgerKeyContractData => Ok(Self::LedgerKeyContractData(Box::new(
13632                serde_json::from_reader(r)?,
13633            ))),
13634            TypeVariant::LedgerKeyContractCode => Ok(Self::LedgerKeyContractCode(Box::new(
13635                serde_json::from_reader(r)?,
13636            ))),
13637            TypeVariant::LedgerKeyConfigSetting => Ok(Self::LedgerKeyConfigSetting(Box::new(
13638                serde_json::from_reader(r)?,
13639            ))),
13640            TypeVariant::LedgerKeyTtl => {
13641                Ok(Self::LedgerKeyTtl(Box::new(serde_json::from_reader(r)?)))
13642            }
13643            TypeVariant::EnvelopeType => {
13644                Ok(Self::EnvelopeType(Box::new(serde_json::from_reader(r)?)))
13645            }
13646            TypeVariant::BucketListType => {
13647                Ok(Self::BucketListType(Box::new(serde_json::from_reader(r)?)))
13648            }
13649            TypeVariant::BucketEntryType => {
13650                Ok(Self::BucketEntryType(Box::new(serde_json::from_reader(r)?)))
13651            }
13652            TypeVariant::HotArchiveBucketEntryType => Ok(Self::HotArchiveBucketEntryType(
13653                Box::new(serde_json::from_reader(r)?),
13654            )),
13655            TypeVariant::BucketMetadata => {
13656                Ok(Self::BucketMetadata(Box::new(serde_json::from_reader(r)?)))
13657            }
13658            TypeVariant::BucketMetadataExt => Ok(Self::BucketMetadataExt(Box::new(
13659                serde_json::from_reader(r)?,
13660            ))),
13661            TypeVariant::BucketEntry => {
13662                Ok(Self::BucketEntry(Box::new(serde_json::from_reader(r)?)))
13663            }
13664            TypeVariant::HotArchiveBucketEntry => Ok(Self::HotArchiveBucketEntry(Box::new(
13665                serde_json::from_reader(r)?,
13666            ))),
13667            TypeVariant::UpgradeType => {
13668                Ok(Self::UpgradeType(Box::new(serde_json::from_reader(r)?)))
13669            }
13670            TypeVariant::StellarValueType => Ok(Self::StellarValueType(Box::new(
13671                serde_json::from_reader(r)?,
13672            ))),
13673            TypeVariant::LedgerCloseValueSignature => Ok(Self::LedgerCloseValueSignature(
13674                Box::new(serde_json::from_reader(r)?),
13675            )),
13676            TypeVariant::StellarValue => {
13677                Ok(Self::StellarValue(Box::new(serde_json::from_reader(r)?)))
13678            }
13679            TypeVariant::StellarValueExt => {
13680                Ok(Self::StellarValueExt(Box::new(serde_json::from_reader(r)?)))
13681            }
13682            #[cfg(feature = "cap_0083")]
13683            TypeVariant::StellarValueProposedValue => Ok(Self::StellarValueProposedValue(
13684                Box::new(serde_json::from_reader(r)?),
13685            )),
13686            TypeVariant::LedgerHeaderFlags => Ok(Self::LedgerHeaderFlags(Box::new(
13687                serde_json::from_reader(r)?,
13688            ))),
13689            TypeVariant::LedgerHeaderExtensionV1 => Ok(Self::LedgerHeaderExtensionV1(Box::new(
13690                serde_json::from_reader(r)?,
13691            ))),
13692            TypeVariant::LedgerHeaderExtensionV1Ext => Ok(Self::LedgerHeaderExtensionV1Ext(
13693                Box::new(serde_json::from_reader(r)?),
13694            )),
13695            TypeVariant::LedgerHeader => {
13696                Ok(Self::LedgerHeader(Box::new(serde_json::from_reader(r)?)))
13697            }
13698            TypeVariant::LedgerHeaderExt => {
13699                Ok(Self::LedgerHeaderExt(Box::new(serde_json::from_reader(r)?)))
13700            }
13701            TypeVariant::LedgerUpgradeType => Ok(Self::LedgerUpgradeType(Box::new(
13702                serde_json::from_reader(r)?,
13703            ))),
13704            TypeVariant::ConfigUpgradeSetKey => Ok(Self::ConfigUpgradeSetKey(Box::new(
13705                serde_json::from_reader(r)?,
13706            ))),
13707            TypeVariant::LedgerUpgrade => {
13708                Ok(Self::LedgerUpgrade(Box::new(serde_json::from_reader(r)?)))
13709            }
13710            TypeVariant::ConfigUpgradeSet => Ok(Self::ConfigUpgradeSet(Box::new(
13711                serde_json::from_reader(r)?,
13712            ))),
13713            TypeVariant::TxSetComponentType => Ok(Self::TxSetComponentType(Box::new(
13714                serde_json::from_reader(r)?,
13715            ))),
13716            TypeVariant::DependentTxCluster => Ok(Self::DependentTxCluster(Box::new(
13717                serde_json::from_reader(r)?,
13718            ))),
13719            TypeVariant::ParallelTxExecutionStage => Ok(Self::ParallelTxExecutionStage(Box::new(
13720                serde_json::from_reader(r)?,
13721            ))),
13722            TypeVariant::ParallelTxsComponent => Ok(Self::ParallelTxsComponent(Box::new(
13723                serde_json::from_reader(r)?,
13724            ))),
13725            TypeVariant::TxSetComponent => {
13726                Ok(Self::TxSetComponent(Box::new(serde_json::from_reader(r)?)))
13727            }
13728            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Ok(
13729                Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(serde_json::from_reader(r)?)),
13730            ),
13731            TypeVariant::TransactionPhase => Ok(Self::TransactionPhase(Box::new(
13732                serde_json::from_reader(r)?,
13733            ))),
13734            TypeVariant::TransactionSet => {
13735                Ok(Self::TransactionSet(Box::new(serde_json::from_reader(r)?)))
13736            }
13737            TypeVariant::TransactionSetV1 => Ok(Self::TransactionSetV1(Box::new(
13738                serde_json::from_reader(r)?,
13739            ))),
13740            TypeVariant::GeneralizedTransactionSet => Ok(Self::GeneralizedTransactionSet(
13741                Box::new(serde_json::from_reader(r)?),
13742            )),
13743            TypeVariant::TransactionResultPair => Ok(Self::TransactionResultPair(Box::new(
13744                serde_json::from_reader(r)?,
13745            ))),
13746            TypeVariant::TransactionResultSet => Ok(Self::TransactionResultSet(Box::new(
13747                serde_json::from_reader(r)?,
13748            ))),
13749            TypeVariant::TransactionHistoryEntry => Ok(Self::TransactionHistoryEntry(Box::new(
13750                serde_json::from_reader(r)?,
13751            ))),
13752            TypeVariant::TransactionHistoryEntryExt => Ok(Self::TransactionHistoryEntryExt(
13753                Box::new(serde_json::from_reader(r)?),
13754            )),
13755            TypeVariant::TransactionHistoryResultEntry => Ok(Self::TransactionHistoryResultEntry(
13756                Box::new(serde_json::from_reader(r)?),
13757            )),
13758            TypeVariant::TransactionHistoryResultEntryExt => Ok(
13759                Self::TransactionHistoryResultEntryExt(Box::new(serde_json::from_reader(r)?)),
13760            ),
13761            TypeVariant::LedgerHeaderHistoryEntry => Ok(Self::LedgerHeaderHistoryEntry(Box::new(
13762                serde_json::from_reader(r)?,
13763            ))),
13764            TypeVariant::LedgerHeaderHistoryEntryExt => Ok(Self::LedgerHeaderHistoryEntryExt(
13765                Box::new(serde_json::from_reader(r)?),
13766            )),
13767            TypeVariant::LedgerScpMessages => Ok(Self::LedgerScpMessages(Box::new(
13768                serde_json::from_reader(r)?,
13769            ))),
13770            TypeVariant::ScpHistoryEntryV0 => Ok(Self::ScpHistoryEntryV0(Box::new(
13771                serde_json::from_reader(r)?,
13772            ))),
13773            TypeVariant::ScpHistoryEntry => {
13774                Ok(Self::ScpHistoryEntry(Box::new(serde_json::from_reader(r)?)))
13775            }
13776            TypeVariant::LedgerEntryChangeType => Ok(Self::LedgerEntryChangeType(Box::new(
13777                serde_json::from_reader(r)?,
13778            ))),
13779            TypeVariant::LedgerEntryChange => Ok(Self::LedgerEntryChange(Box::new(
13780                serde_json::from_reader(r)?,
13781            ))),
13782            TypeVariant::LedgerEntryChanges => Ok(Self::LedgerEntryChanges(Box::new(
13783                serde_json::from_reader(r)?,
13784            ))),
13785            TypeVariant::OperationMeta => {
13786                Ok(Self::OperationMeta(Box::new(serde_json::from_reader(r)?)))
13787            }
13788            TypeVariant::TransactionMetaV1 => Ok(Self::TransactionMetaV1(Box::new(
13789                serde_json::from_reader(r)?,
13790            ))),
13791            TypeVariant::TransactionMetaV2 => Ok(Self::TransactionMetaV2(Box::new(
13792                serde_json::from_reader(r)?,
13793            ))),
13794            TypeVariant::ContractEventType => Ok(Self::ContractEventType(Box::new(
13795                serde_json::from_reader(r)?,
13796            ))),
13797            TypeVariant::ContractEvent => {
13798                Ok(Self::ContractEvent(Box::new(serde_json::from_reader(r)?)))
13799            }
13800            TypeVariant::ContractEventBody => Ok(Self::ContractEventBody(Box::new(
13801                serde_json::from_reader(r)?,
13802            ))),
13803            TypeVariant::ContractEventV0 => {
13804                Ok(Self::ContractEventV0(Box::new(serde_json::from_reader(r)?)))
13805            }
13806            TypeVariant::DiagnosticEvent => {
13807                Ok(Self::DiagnosticEvent(Box::new(serde_json::from_reader(r)?)))
13808            }
13809            TypeVariant::SorobanTransactionMetaExtV1 => Ok(Self::SorobanTransactionMetaExtV1(
13810                Box::new(serde_json::from_reader(r)?),
13811            )),
13812            TypeVariant::SorobanTransactionMetaExt => Ok(Self::SorobanTransactionMetaExt(
13813                Box::new(serde_json::from_reader(r)?),
13814            )),
13815            TypeVariant::SorobanTransactionMeta => Ok(Self::SorobanTransactionMeta(Box::new(
13816                serde_json::from_reader(r)?,
13817            ))),
13818            TypeVariant::TransactionMetaV3 => Ok(Self::TransactionMetaV3(Box::new(
13819                serde_json::from_reader(r)?,
13820            ))),
13821            TypeVariant::OperationMetaV2 => {
13822                Ok(Self::OperationMetaV2(Box::new(serde_json::from_reader(r)?)))
13823            }
13824            TypeVariant::SorobanTransactionMetaV2 => Ok(Self::SorobanTransactionMetaV2(Box::new(
13825                serde_json::from_reader(r)?,
13826            ))),
13827            TypeVariant::TransactionEventStage => Ok(Self::TransactionEventStage(Box::new(
13828                serde_json::from_reader(r)?,
13829            ))),
13830            TypeVariant::TransactionEvent => Ok(Self::TransactionEvent(Box::new(
13831                serde_json::from_reader(r)?,
13832            ))),
13833            TypeVariant::TransactionMetaV4 => Ok(Self::TransactionMetaV4(Box::new(
13834                serde_json::from_reader(r)?,
13835            ))),
13836            TypeVariant::InvokeHostFunctionSuccessPreImage => Ok(
13837                Self::InvokeHostFunctionSuccessPreImage(Box::new(serde_json::from_reader(r)?)),
13838            ),
13839            TypeVariant::TransactionMeta => {
13840                Ok(Self::TransactionMeta(Box::new(serde_json::from_reader(r)?)))
13841            }
13842            TypeVariant::TransactionResultMeta => Ok(Self::TransactionResultMeta(Box::new(
13843                serde_json::from_reader(r)?,
13844            ))),
13845            TypeVariant::TransactionResultMetaV1 => Ok(Self::TransactionResultMetaV1(Box::new(
13846                serde_json::from_reader(r)?,
13847            ))),
13848            TypeVariant::UpgradeEntryMeta => Ok(Self::UpgradeEntryMeta(Box::new(
13849                serde_json::from_reader(r)?,
13850            ))),
13851            TypeVariant::LedgerCloseMetaV0 => Ok(Self::LedgerCloseMetaV0(Box::new(
13852                serde_json::from_reader(r)?,
13853            ))),
13854            TypeVariant::LedgerCloseMetaExtV1 => Ok(Self::LedgerCloseMetaExtV1(Box::new(
13855                serde_json::from_reader(r)?,
13856            ))),
13857            TypeVariant::LedgerCloseMetaExt => Ok(Self::LedgerCloseMetaExt(Box::new(
13858                serde_json::from_reader(r)?,
13859            ))),
13860            TypeVariant::LedgerCloseMetaV1 => Ok(Self::LedgerCloseMetaV1(Box::new(
13861                serde_json::from_reader(r)?,
13862            ))),
13863            TypeVariant::LedgerCloseMetaV2 => Ok(Self::LedgerCloseMetaV2(Box::new(
13864                serde_json::from_reader(r)?,
13865            ))),
13866            TypeVariant::LedgerCloseMeta => {
13867                Ok(Self::LedgerCloseMeta(Box::new(serde_json::from_reader(r)?)))
13868            }
13869            TypeVariant::ErrorCode => Ok(Self::ErrorCode(Box::new(serde_json::from_reader(r)?))),
13870            TypeVariant::SError => Ok(Self::SError(Box::new(serde_json::from_reader(r)?))),
13871            TypeVariant::SendMore => Ok(Self::SendMore(Box::new(serde_json::from_reader(r)?))),
13872            TypeVariant::SendMoreExtended => Ok(Self::SendMoreExtended(Box::new(
13873                serde_json::from_reader(r)?,
13874            ))),
13875            TypeVariant::AuthCert => Ok(Self::AuthCert(Box::new(serde_json::from_reader(r)?))),
13876            TypeVariant::Hello => Ok(Self::Hello(Box::new(serde_json::from_reader(r)?))),
13877            TypeVariant::Auth => Ok(Self::Auth(Box::new(serde_json::from_reader(r)?))),
13878            TypeVariant::IpAddrType => Ok(Self::IpAddrType(Box::new(serde_json::from_reader(r)?))),
13879            TypeVariant::PeerAddress => {
13880                Ok(Self::PeerAddress(Box::new(serde_json::from_reader(r)?)))
13881            }
13882            TypeVariant::PeerAddressIp => {
13883                Ok(Self::PeerAddressIp(Box::new(serde_json::from_reader(r)?)))
13884            }
13885            TypeVariant::MessageType => {
13886                Ok(Self::MessageType(Box::new(serde_json::from_reader(r)?)))
13887            }
13888            TypeVariant::DontHave => Ok(Self::DontHave(Box::new(serde_json::from_reader(r)?))),
13889            TypeVariant::SurveyMessageCommandType => Ok(Self::SurveyMessageCommandType(Box::new(
13890                serde_json::from_reader(r)?,
13891            ))),
13892            TypeVariant::SurveyMessageResponseType => Ok(Self::SurveyMessageResponseType(
13893                Box::new(serde_json::from_reader(r)?),
13894            )),
13895            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Ok(
13896                Self::TimeSlicedSurveyStartCollectingMessage(Box::new(serde_json::from_reader(r)?)),
13897            ),
13898            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
13899                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
13900                    Box::new(serde_json::from_reader(r)?),
13901                ))
13902            }
13903            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Ok(
13904                Self::TimeSlicedSurveyStopCollectingMessage(Box::new(serde_json::from_reader(r)?)),
13905            ),
13906            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
13907                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
13908                    serde_json::from_reader(r)?,
13909                )))
13910            }
13911            TypeVariant::SurveyRequestMessage => Ok(Self::SurveyRequestMessage(Box::new(
13912                serde_json::from_reader(r)?,
13913            ))),
13914            TypeVariant::TimeSlicedSurveyRequestMessage => Ok(
13915                Self::TimeSlicedSurveyRequestMessage(Box::new(serde_json::from_reader(r)?)),
13916            ),
13917            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Ok(
13918                Self::SignedTimeSlicedSurveyRequestMessage(Box::new(serde_json::from_reader(r)?)),
13919            ),
13920            TypeVariant::EncryptedBody => {
13921                Ok(Self::EncryptedBody(Box::new(serde_json::from_reader(r)?)))
13922            }
13923            TypeVariant::SurveyResponseMessage => Ok(Self::SurveyResponseMessage(Box::new(
13924                serde_json::from_reader(r)?,
13925            ))),
13926            TypeVariant::TimeSlicedSurveyResponseMessage => Ok(
13927                Self::TimeSlicedSurveyResponseMessage(Box::new(serde_json::from_reader(r)?)),
13928            ),
13929            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Ok(
13930                Self::SignedTimeSlicedSurveyResponseMessage(Box::new(serde_json::from_reader(r)?)),
13931            ),
13932            TypeVariant::PeerStats => Ok(Self::PeerStats(Box::new(serde_json::from_reader(r)?))),
13933            TypeVariant::TimeSlicedNodeData => Ok(Self::TimeSlicedNodeData(Box::new(
13934                serde_json::from_reader(r)?,
13935            ))),
13936            TypeVariant::TimeSlicedPeerData => Ok(Self::TimeSlicedPeerData(Box::new(
13937                serde_json::from_reader(r)?,
13938            ))),
13939            TypeVariant::TimeSlicedPeerDataList => Ok(Self::TimeSlicedPeerDataList(Box::new(
13940                serde_json::from_reader(r)?,
13941            ))),
13942            TypeVariant::TopologyResponseBodyV2 => Ok(Self::TopologyResponseBodyV2(Box::new(
13943                serde_json::from_reader(r)?,
13944            ))),
13945            TypeVariant::SurveyResponseBody => Ok(Self::SurveyResponseBody(Box::new(
13946                serde_json::from_reader(r)?,
13947            ))),
13948            TypeVariant::TxAdvertVector => {
13949                Ok(Self::TxAdvertVector(Box::new(serde_json::from_reader(r)?)))
13950            }
13951            TypeVariant::FloodAdvert => {
13952                Ok(Self::FloodAdvert(Box::new(serde_json::from_reader(r)?)))
13953            }
13954            TypeVariant::TxDemandVector => {
13955                Ok(Self::TxDemandVector(Box::new(serde_json::from_reader(r)?)))
13956            }
13957            TypeVariant::FloodDemand => {
13958                Ok(Self::FloodDemand(Box::new(serde_json::from_reader(r)?)))
13959            }
13960            TypeVariant::StellarMessage => {
13961                Ok(Self::StellarMessage(Box::new(serde_json::from_reader(r)?)))
13962            }
13963            TypeVariant::AuthenticatedMessage => Ok(Self::AuthenticatedMessage(Box::new(
13964                serde_json::from_reader(r)?,
13965            ))),
13966            TypeVariant::AuthenticatedMessageV0 => Ok(Self::AuthenticatedMessageV0(Box::new(
13967                serde_json::from_reader(r)?,
13968            ))),
13969            TypeVariant::LiquidityPoolParameters => Ok(Self::LiquidityPoolParameters(Box::new(
13970                serde_json::from_reader(r)?,
13971            ))),
13972            TypeVariant::MuxedAccount => {
13973                Ok(Self::MuxedAccount(Box::new(serde_json::from_reader(r)?)))
13974            }
13975            TypeVariant::MuxedAccountMed25519 => Ok(Self::MuxedAccountMed25519(Box::new(
13976                serde_json::from_reader(r)?,
13977            ))),
13978            TypeVariant::DecoratedSignature => Ok(Self::DecoratedSignature(Box::new(
13979                serde_json::from_reader(r)?,
13980            ))),
13981            TypeVariant::OperationType => {
13982                Ok(Self::OperationType(Box::new(serde_json::from_reader(r)?)))
13983            }
13984            TypeVariant::CreateAccountOp => {
13985                Ok(Self::CreateAccountOp(Box::new(serde_json::from_reader(r)?)))
13986            }
13987            TypeVariant::PaymentOp => Ok(Self::PaymentOp(Box::new(serde_json::from_reader(r)?))),
13988            TypeVariant::PathPaymentStrictReceiveOp => Ok(Self::PathPaymentStrictReceiveOp(
13989                Box::new(serde_json::from_reader(r)?),
13990            )),
13991            TypeVariant::PathPaymentStrictSendOp => Ok(Self::PathPaymentStrictSendOp(Box::new(
13992                serde_json::from_reader(r)?,
13993            ))),
13994            TypeVariant::ManageSellOfferOp => Ok(Self::ManageSellOfferOp(Box::new(
13995                serde_json::from_reader(r)?,
13996            ))),
13997            TypeVariant::ManageBuyOfferOp => Ok(Self::ManageBuyOfferOp(Box::new(
13998                serde_json::from_reader(r)?,
13999            ))),
14000            TypeVariant::CreatePassiveSellOfferOp => Ok(Self::CreatePassiveSellOfferOp(Box::new(
14001                serde_json::from_reader(r)?,
14002            ))),
14003            TypeVariant::SetOptionsOp => {
14004                Ok(Self::SetOptionsOp(Box::new(serde_json::from_reader(r)?)))
14005            }
14006            TypeVariant::ChangeTrustAsset => Ok(Self::ChangeTrustAsset(Box::new(
14007                serde_json::from_reader(r)?,
14008            ))),
14009            TypeVariant::ChangeTrustOp => {
14010                Ok(Self::ChangeTrustOp(Box::new(serde_json::from_reader(r)?)))
14011            }
14012            TypeVariant::AllowTrustOp => {
14013                Ok(Self::AllowTrustOp(Box::new(serde_json::from_reader(r)?)))
14014            }
14015            TypeVariant::ManageDataOp => {
14016                Ok(Self::ManageDataOp(Box::new(serde_json::from_reader(r)?)))
14017            }
14018            TypeVariant::BumpSequenceOp => {
14019                Ok(Self::BumpSequenceOp(Box::new(serde_json::from_reader(r)?)))
14020            }
14021            TypeVariant::CreateClaimableBalanceOp => Ok(Self::CreateClaimableBalanceOp(Box::new(
14022                serde_json::from_reader(r)?,
14023            ))),
14024            TypeVariant::ClaimClaimableBalanceOp => Ok(Self::ClaimClaimableBalanceOp(Box::new(
14025                serde_json::from_reader(r)?,
14026            ))),
14027            TypeVariant::BeginSponsoringFutureReservesOp => Ok(
14028                Self::BeginSponsoringFutureReservesOp(Box::new(serde_json::from_reader(r)?)),
14029            ),
14030            TypeVariant::RevokeSponsorshipType => Ok(Self::RevokeSponsorshipType(Box::new(
14031                serde_json::from_reader(r)?,
14032            ))),
14033            TypeVariant::RevokeSponsorshipOp => Ok(Self::RevokeSponsorshipOp(Box::new(
14034                serde_json::from_reader(r)?,
14035            ))),
14036            TypeVariant::RevokeSponsorshipOpSigner => Ok(Self::RevokeSponsorshipOpSigner(
14037                Box::new(serde_json::from_reader(r)?),
14038            )),
14039            TypeVariant::ClawbackOp => Ok(Self::ClawbackOp(Box::new(serde_json::from_reader(r)?))),
14040            TypeVariant::ClawbackClaimableBalanceOp => Ok(Self::ClawbackClaimableBalanceOp(
14041                Box::new(serde_json::from_reader(r)?),
14042            )),
14043            TypeVariant::SetTrustLineFlagsOp => Ok(Self::SetTrustLineFlagsOp(Box::new(
14044                serde_json::from_reader(r)?,
14045            ))),
14046            TypeVariant::LiquidityPoolDepositOp => Ok(Self::LiquidityPoolDepositOp(Box::new(
14047                serde_json::from_reader(r)?,
14048            ))),
14049            TypeVariant::LiquidityPoolWithdrawOp => Ok(Self::LiquidityPoolWithdrawOp(Box::new(
14050                serde_json::from_reader(r)?,
14051            ))),
14052            TypeVariant::HostFunctionType => Ok(Self::HostFunctionType(Box::new(
14053                serde_json::from_reader(r)?,
14054            ))),
14055            TypeVariant::ContractIdPreimageType => Ok(Self::ContractIdPreimageType(Box::new(
14056                serde_json::from_reader(r)?,
14057            ))),
14058            TypeVariant::ContractIdPreimage => Ok(Self::ContractIdPreimage(Box::new(
14059                serde_json::from_reader(r)?,
14060            ))),
14061            TypeVariant::ContractIdPreimageFromAddress => Ok(Self::ContractIdPreimageFromAddress(
14062                Box::new(serde_json::from_reader(r)?),
14063            )),
14064            TypeVariant::CreateContractArgs => Ok(Self::CreateContractArgs(Box::new(
14065                serde_json::from_reader(r)?,
14066            ))),
14067            TypeVariant::CreateContractArgsV2 => Ok(Self::CreateContractArgsV2(Box::new(
14068                serde_json::from_reader(r)?,
14069            ))),
14070            TypeVariant::InvokeContractArgs => Ok(Self::InvokeContractArgs(Box::new(
14071                serde_json::from_reader(r)?,
14072            ))),
14073            TypeVariant::HostFunction => {
14074                Ok(Self::HostFunction(Box::new(serde_json::from_reader(r)?)))
14075            }
14076            TypeVariant::SorobanAuthorizedFunctionType => Ok(Self::SorobanAuthorizedFunctionType(
14077                Box::new(serde_json::from_reader(r)?),
14078            )),
14079            TypeVariant::SorobanAuthorizedFunction => Ok(Self::SorobanAuthorizedFunction(
14080                Box::new(serde_json::from_reader(r)?),
14081            )),
14082            TypeVariant::SorobanAuthorizedInvocation => Ok(Self::SorobanAuthorizedInvocation(
14083                Box::new(serde_json::from_reader(r)?),
14084            )),
14085            TypeVariant::SorobanAddressCredentials => Ok(Self::SorobanAddressCredentials(
14086                Box::new(serde_json::from_reader(r)?),
14087            )),
14088            TypeVariant::SorobanDelegateSignature => Ok(Self::SorobanDelegateSignature(Box::new(
14089                serde_json::from_reader(r)?,
14090            ))),
14091            TypeVariant::SorobanAddressCredentialsWithDelegates => Ok(
14092                Self::SorobanAddressCredentialsWithDelegates(Box::new(serde_json::from_reader(r)?)),
14093            ),
14094            TypeVariant::SorobanCredentialsType => Ok(Self::SorobanCredentialsType(Box::new(
14095                serde_json::from_reader(r)?,
14096            ))),
14097            TypeVariant::SorobanCredentials => Ok(Self::SorobanCredentials(Box::new(
14098                serde_json::from_reader(r)?,
14099            ))),
14100            TypeVariant::SorobanAuthorizationEntry => Ok(Self::SorobanAuthorizationEntry(
14101                Box::new(serde_json::from_reader(r)?),
14102            )),
14103            TypeVariant::SorobanAuthorizationEntries => Ok(Self::SorobanAuthorizationEntries(
14104                Box::new(serde_json::from_reader(r)?),
14105            )),
14106            TypeVariant::InvokeHostFunctionOp => Ok(Self::InvokeHostFunctionOp(Box::new(
14107                serde_json::from_reader(r)?,
14108            ))),
14109            TypeVariant::ExtendFootprintTtlOp => Ok(Self::ExtendFootprintTtlOp(Box::new(
14110                serde_json::from_reader(r)?,
14111            ))),
14112            TypeVariant::RestoreFootprintOp => Ok(Self::RestoreFootprintOp(Box::new(
14113                serde_json::from_reader(r)?,
14114            ))),
14115            TypeVariant::Operation => Ok(Self::Operation(Box::new(serde_json::from_reader(r)?))),
14116            TypeVariant::OperationBody => {
14117                Ok(Self::OperationBody(Box::new(serde_json::from_reader(r)?)))
14118            }
14119            TypeVariant::HashIdPreimage => {
14120                Ok(Self::HashIdPreimage(Box::new(serde_json::from_reader(r)?)))
14121            }
14122            TypeVariant::HashIdPreimageOperationId => Ok(Self::HashIdPreimageOperationId(
14123                Box::new(serde_json::from_reader(r)?),
14124            )),
14125            TypeVariant::HashIdPreimageRevokeId => Ok(Self::HashIdPreimageRevokeId(Box::new(
14126                serde_json::from_reader(r)?,
14127            ))),
14128            TypeVariant::HashIdPreimageContractId => Ok(Self::HashIdPreimageContractId(Box::new(
14129                serde_json::from_reader(r)?,
14130            ))),
14131            TypeVariant::HashIdPreimageSorobanAuthorization => Ok(
14132                Self::HashIdPreimageSorobanAuthorization(Box::new(serde_json::from_reader(r)?)),
14133            ),
14134            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
14135                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
14136                    Box::new(serde_json::from_reader(r)?),
14137                ))
14138            }
14139            TypeVariant::MemoType => Ok(Self::MemoType(Box::new(serde_json::from_reader(r)?))),
14140            TypeVariant::Memo => Ok(Self::Memo(Box::new(serde_json::from_reader(r)?))),
14141            TypeVariant::TimeBounds => Ok(Self::TimeBounds(Box::new(serde_json::from_reader(r)?))),
14142            TypeVariant::LedgerBounds => {
14143                Ok(Self::LedgerBounds(Box::new(serde_json::from_reader(r)?)))
14144            }
14145            TypeVariant::PreconditionsV2 => {
14146                Ok(Self::PreconditionsV2(Box::new(serde_json::from_reader(r)?)))
14147            }
14148            TypeVariant::PreconditionType => Ok(Self::PreconditionType(Box::new(
14149                serde_json::from_reader(r)?,
14150            ))),
14151            TypeVariant::Preconditions => {
14152                Ok(Self::Preconditions(Box::new(serde_json::from_reader(r)?)))
14153            }
14154            TypeVariant::LedgerFootprint => {
14155                Ok(Self::LedgerFootprint(Box::new(serde_json::from_reader(r)?)))
14156            }
14157            TypeVariant::SorobanResources => Ok(Self::SorobanResources(Box::new(
14158                serde_json::from_reader(r)?,
14159            ))),
14160            TypeVariant::SorobanResourcesExtV0 => Ok(Self::SorobanResourcesExtV0(Box::new(
14161                serde_json::from_reader(r)?,
14162            ))),
14163            TypeVariant::SorobanTransactionData => Ok(Self::SorobanTransactionData(Box::new(
14164                serde_json::from_reader(r)?,
14165            ))),
14166            TypeVariant::SorobanTransactionDataExt => Ok(Self::SorobanTransactionDataExt(
14167                Box::new(serde_json::from_reader(r)?),
14168            )),
14169            TypeVariant::TransactionV0 => {
14170                Ok(Self::TransactionV0(Box::new(serde_json::from_reader(r)?)))
14171            }
14172            TypeVariant::TransactionV0Ext => Ok(Self::TransactionV0Ext(Box::new(
14173                serde_json::from_reader(r)?,
14174            ))),
14175            TypeVariant::TransactionV0Envelope => Ok(Self::TransactionV0Envelope(Box::new(
14176                serde_json::from_reader(r)?,
14177            ))),
14178            TypeVariant::Transaction => {
14179                Ok(Self::Transaction(Box::new(serde_json::from_reader(r)?)))
14180            }
14181            TypeVariant::TransactionExt => {
14182                Ok(Self::TransactionExt(Box::new(serde_json::from_reader(r)?)))
14183            }
14184            TypeVariant::TransactionV1Envelope => Ok(Self::TransactionV1Envelope(Box::new(
14185                serde_json::from_reader(r)?,
14186            ))),
14187            TypeVariant::FeeBumpTransaction => Ok(Self::FeeBumpTransaction(Box::new(
14188                serde_json::from_reader(r)?,
14189            ))),
14190            TypeVariant::FeeBumpTransactionInnerTx => Ok(Self::FeeBumpTransactionInnerTx(
14191                Box::new(serde_json::from_reader(r)?),
14192            )),
14193            TypeVariant::FeeBumpTransactionExt => Ok(Self::FeeBumpTransactionExt(Box::new(
14194                serde_json::from_reader(r)?,
14195            ))),
14196            TypeVariant::FeeBumpTransactionEnvelope => Ok(Self::FeeBumpTransactionEnvelope(
14197                Box::new(serde_json::from_reader(r)?),
14198            )),
14199            TypeVariant::TransactionEnvelope => Ok(Self::TransactionEnvelope(Box::new(
14200                serde_json::from_reader(r)?,
14201            ))),
14202            TypeVariant::TransactionSignaturePayload => Ok(Self::TransactionSignaturePayload(
14203                Box::new(serde_json::from_reader(r)?),
14204            )),
14205            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
14206                Ok(Self::TransactionSignaturePayloadTaggedTransaction(
14207                    Box::new(serde_json::from_reader(r)?),
14208                ))
14209            }
14210            TypeVariant::ClaimAtomType => {
14211                Ok(Self::ClaimAtomType(Box::new(serde_json::from_reader(r)?)))
14212            }
14213            TypeVariant::ClaimOfferAtomV0 => Ok(Self::ClaimOfferAtomV0(Box::new(
14214                serde_json::from_reader(r)?,
14215            ))),
14216            TypeVariant::ClaimOfferAtom => {
14217                Ok(Self::ClaimOfferAtom(Box::new(serde_json::from_reader(r)?)))
14218            }
14219            TypeVariant::ClaimLiquidityAtom => Ok(Self::ClaimLiquidityAtom(Box::new(
14220                serde_json::from_reader(r)?,
14221            ))),
14222            TypeVariant::ClaimAtom => Ok(Self::ClaimAtom(Box::new(serde_json::from_reader(r)?))),
14223            TypeVariant::CreateAccountResultCode => Ok(Self::CreateAccountResultCode(Box::new(
14224                serde_json::from_reader(r)?,
14225            ))),
14226            TypeVariant::CreateAccountResult => Ok(Self::CreateAccountResult(Box::new(
14227                serde_json::from_reader(r)?,
14228            ))),
14229            TypeVariant::PaymentResultCode => Ok(Self::PaymentResultCode(Box::new(
14230                serde_json::from_reader(r)?,
14231            ))),
14232            TypeVariant::PaymentResult => {
14233                Ok(Self::PaymentResult(Box::new(serde_json::from_reader(r)?)))
14234            }
14235            TypeVariant::PathPaymentStrictReceiveResultCode => Ok(
14236                Self::PathPaymentStrictReceiveResultCode(Box::new(serde_json::from_reader(r)?)),
14237            ),
14238            TypeVariant::SimplePaymentResult => Ok(Self::SimplePaymentResult(Box::new(
14239                serde_json::from_reader(r)?,
14240            ))),
14241            TypeVariant::PathPaymentStrictReceiveResult => Ok(
14242                Self::PathPaymentStrictReceiveResult(Box::new(serde_json::from_reader(r)?)),
14243            ),
14244            TypeVariant::PathPaymentStrictReceiveResultSuccess => Ok(
14245                Self::PathPaymentStrictReceiveResultSuccess(Box::new(serde_json::from_reader(r)?)),
14246            ),
14247            TypeVariant::PathPaymentStrictSendResultCode => Ok(
14248                Self::PathPaymentStrictSendResultCode(Box::new(serde_json::from_reader(r)?)),
14249            ),
14250            TypeVariant::PathPaymentStrictSendResult => Ok(Self::PathPaymentStrictSendResult(
14251                Box::new(serde_json::from_reader(r)?),
14252            )),
14253            TypeVariant::PathPaymentStrictSendResultSuccess => Ok(
14254                Self::PathPaymentStrictSendResultSuccess(Box::new(serde_json::from_reader(r)?)),
14255            ),
14256            TypeVariant::ManageSellOfferResultCode => Ok(Self::ManageSellOfferResultCode(
14257                Box::new(serde_json::from_reader(r)?),
14258            )),
14259            TypeVariant::ManageOfferEffect => Ok(Self::ManageOfferEffect(Box::new(
14260                serde_json::from_reader(r)?,
14261            ))),
14262            TypeVariant::ManageOfferSuccessResult => Ok(Self::ManageOfferSuccessResult(Box::new(
14263                serde_json::from_reader(r)?,
14264            ))),
14265            TypeVariant::ManageOfferSuccessResultOffer => Ok(Self::ManageOfferSuccessResultOffer(
14266                Box::new(serde_json::from_reader(r)?),
14267            )),
14268            TypeVariant::ManageSellOfferResult => Ok(Self::ManageSellOfferResult(Box::new(
14269                serde_json::from_reader(r)?,
14270            ))),
14271            TypeVariant::ManageBuyOfferResultCode => Ok(Self::ManageBuyOfferResultCode(Box::new(
14272                serde_json::from_reader(r)?,
14273            ))),
14274            TypeVariant::ManageBuyOfferResult => Ok(Self::ManageBuyOfferResult(Box::new(
14275                serde_json::from_reader(r)?,
14276            ))),
14277            TypeVariant::SetOptionsResultCode => Ok(Self::SetOptionsResultCode(Box::new(
14278                serde_json::from_reader(r)?,
14279            ))),
14280            TypeVariant::SetOptionsResult => Ok(Self::SetOptionsResult(Box::new(
14281                serde_json::from_reader(r)?,
14282            ))),
14283            TypeVariant::ChangeTrustResultCode => Ok(Self::ChangeTrustResultCode(Box::new(
14284                serde_json::from_reader(r)?,
14285            ))),
14286            TypeVariant::ChangeTrustResult => Ok(Self::ChangeTrustResult(Box::new(
14287                serde_json::from_reader(r)?,
14288            ))),
14289            TypeVariant::AllowTrustResultCode => Ok(Self::AllowTrustResultCode(Box::new(
14290                serde_json::from_reader(r)?,
14291            ))),
14292            TypeVariant::AllowTrustResult => Ok(Self::AllowTrustResult(Box::new(
14293                serde_json::from_reader(r)?,
14294            ))),
14295            TypeVariant::AccountMergeResultCode => Ok(Self::AccountMergeResultCode(Box::new(
14296                serde_json::from_reader(r)?,
14297            ))),
14298            TypeVariant::AccountMergeResult => Ok(Self::AccountMergeResult(Box::new(
14299                serde_json::from_reader(r)?,
14300            ))),
14301            TypeVariant::InflationResultCode => Ok(Self::InflationResultCode(Box::new(
14302                serde_json::from_reader(r)?,
14303            ))),
14304            TypeVariant::InflationPayout => {
14305                Ok(Self::InflationPayout(Box::new(serde_json::from_reader(r)?)))
14306            }
14307            TypeVariant::InflationResult => {
14308                Ok(Self::InflationResult(Box::new(serde_json::from_reader(r)?)))
14309            }
14310            TypeVariant::ManageDataResultCode => Ok(Self::ManageDataResultCode(Box::new(
14311                serde_json::from_reader(r)?,
14312            ))),
14313            TypeVariant::ManageDataResult => Ok(Self::ManageDataResult(Box::new(
14314                serde_json::from_reader(r)?,
14315            ))),
14316            TypeVariant::BumpSequenceResultCode => Ok(Self::BumpSequenceResultCode(Box::new(
14317                serde_json::from_reader(r)?,
14318            ))),
14319            TypeVariant::BumpSequenceResult => Ok(Self::BumpSequenceResult(Box::new(
14320                serde_json::from_reader(r)?,
14321            ))),
14322            TypeVariant::CreateClaimableBalanceResultCode => Ok(
14323                Self::CreateClaimableBalanceResultCode(Box::new(serde_json::from_reader(r)?)),
14324            ),
14325            TypeVariant::CreateClaimableBalanceResult => Ok(Self::CreateClaimableBalanceResult(
14326                Box::new(serde_json::from_reader(r)?),
14327            )),
14328            TypeVariant::ClaimClaimableBalanceResultCode => Ok(
14329                Self::ClaimClaimableBalanceResultCode(Box::new(serde_json::from_reader(r)?)),
14330            ),
14331            TypeVariant::ClaimClaimableBalanceResult => Ok(Self::ClaimClaimableBalanceResult(
14332                Box::new(serde_json::from_reader(r)?),
14333            )),
14334            TypeVariant::BeginSponsoringFutureReservesResultCode => {
14335                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
14336                    serde_json::from_reader(r)?,
14337                )))
14338            }
14339            TypeVariant::BeginSponsoringFutureReservesResult => Ok(
14340                Self::BeginSponsoringFutureReservesResult(Box::new(serde_json::from_reader(r)?)),
14341            ),
14342            TypeVariant::EndSponsoringFutureReservesResultCode => Ok(
14343                Self::EndSponsoringFutureReservesResultCode(Box::new(serde_json::from_reader(r)?)),
14344            ),
14345            TypeVariant::EndSponsoringFutureReservesResult => Ok(
14346                Self::EndSponsoringFutureReservesResult(Box::new(serde_json::from_reader(r)?)),
14347            ),
14348            TypeVariant::RevokeSponsorshipResultCode => Ok(Self::RevokeSponsorshipResultCode(
14349                Box::new(serde_json::from_reader(r)?),
14350            )),
14351            TypeVariant::RevokeSponsorshipResult => Ok(Self::RevokeSponsorshipResult(Box::new(
14352                serde_json::from_reader(r)?,
14353            ))),
14354            TypeVariant::ClawbackResultCode => Ok(Self::ClawbackResultCode(Box::new(
14355                serde_json::from_reader(r)?,
14356            ))),
14357            TypeVariant::ClawbackResult => {
14358                Ok(Self::ClawbackResult(Box::new(serde_json::from_reader(r)?)))
14359            }
14360            TypeVariant::ClawbackClaimableBalanceResultCode => Ok(
14361                Self::ClawbackClaimableBalanceResultCode(Box::new(serde_json::from_reader(r)?)),
14362            ),
14363            TypeVariant::ClawbackClaimableBalanceResult => Ok(
14364                Self::ClawbackClaimableBalanceResult(Box::new(serde_json::from_reader(r)?)),
14365            ),
14366            TypeVariant::SetTrustLineFlagsResultCode => Ok(Self::SetTrustLineFlagsResultCode(
14367                Box::new(serde_json::from_reader(r)?),
14368            )),
14369            TypeVariant::SetTrustLineFlagsResult => Ok(Self::SetTrustLineFlagsResult(Box::new(
14370                serde_json::from_reader(r)?,
14371            ))),
14372            TypeVariant::LiquidityPoolDepositResultCode => Ok(
14373                Self::LiquidityPoolDepositResultCode(Box::new(serde_json::from_reader(r)?)),
14374            ),
14375            TypeVariant::LiquidityPoolDepositResult => Ok(Self::LiquidityPoolDepositResult(
14376                Box::new(serde_json::from_reader(r)?),
14377            )),
14378            TypeVariant::LiquidityPoolWithdrawResultCode => Ok(
14379                Self::LiquidityPoolWithdrawResultCode(Box::new(serde_json::from_reader(r)?)),
14380            ),
14381            TypeVariant::LiquidityPoolWithdrawResult => Ok(Self::LiquidityPoolWithdrawResult(
14382                Box::new(serde_json::from_reader(r)?),
14383            )),
14384            TypeVariant::InvokeHostFunctionResultCode => Ok(Self::InvokeHostFunctionResultCode(
14385                Box::new(serde_json::from_reader(r)?),
14386            )),
14387            TypeVariant::InvokeHostFunctionResult => Ok(Self::InvokeHostFunctionResult(Box::new(
14388                serde_json::from_reader(r)?,
14389            ))),
14390            TypeVariant::ExtendFootprintTtlResultCode => Ok(Self::ExtendFootprintTtlResultCode(
14391                Box::new(serde_json::from_reader(r)?),
14392            )),
14393            TypeVariant::ExtendFootprintTtlResult => Ok(Self::ExtendFootprintTtlResult(Box::new(
14394                serde_json::from_reader(r)?,
14395            ))),
14396            TypeVariant::RestoreFootprintResultCode => Ok(Self::RestoreFootprintResultCode(
14397                Box::new(serde_json::from_reader(r)?),
14398            )),
14399            TypeVariant::RestoreFootprintResult => Ok(Self::RestoreFootprintResult(Box::new(
14400                serde_json::from_reader(r)?,
14401            ))),
14402            TypeVariant::OperationResultCode => Ok(Self::OperationResultCode(Box::new(
14403                serde_json::from_reader(r)?,
14404            ))),
14405            TypeVariant::OperationResult => {
14406                Ok(Self::OperationResult(Box::new(serde_json::from_reader(r)?)))
14407            }
14408            TypeVariant::OperationResultTr => Ok(Self::OperationResultTr(Box::new(
14409                serde_json::from_reader(r)?,
14410            ))),
14411            TypeVariant::TransactionResultCode => Ok(Self::TransactionResultCode(Box::new(
14412                serde_json::from_reader(r)?,
14413            ))),
14414            TypeVariant::InnerTransactionResult => Ok(Self::InnerTransactionResult(Box::new(
14415                serde_json::from_reader(r)?,
14416            ))),
14417            TypeVariant::InnerTransactionResultResult => Ok(Self::InnerTransactionResultResult(
14418                Box::new(serde_json::from_reader(r)?),
14419            )),
14420            TypeVariant::InnerTransactionResultExt => Ok(Self::InnerTransactionResultExt(
14421                Box::new(serde_json::from_reader(r)?),
14422            )),
14423            TypeVariant::InnerTransactionResultPair => Ok(Self::InnerTransactionResultPair(
14424                Box::new(serde_json::from_reader(r)?),
14425            )),
14426            TypeVariant::TransactionResult => Ok(Self::TransactionResult(Box::new(
14427                serde_json::from_reader(r)?,
14428            ))),
14429            TypeVariant::TransactionResultResult => Ok(Self::TransactionResultResult(Box::new(
14430                serde_json::from_reader(r)?,
14431            ))),
14432            TypeVariant::TransactionResultExt => Ok(Self::TransactionResultExt(Box::new(
14433                serde_json::from_reader(r)?,
14434            ))),
14435            TypeVariant::Hash => Ok(Self::Hash(Box::new(serde_json::from_reader(r)?))),
14436            TypeVariant::Uint256 => Ok(Self::Uint256(Box::new(serde_json::from_reader(r)?))),
14437            TypeVariant::Uint32 => Ok(Self::Uint32(Box::new(serde_json::from_reader(r)?))),
14438            TypeVariant::Int32 => Ok(Self::Int32(Box::new(serde_json::from_reader(r)?))),
14439            TypeVariant::Uint64 => Ok(Self::Uint64(Box::new(serde_json::from_reader(r)?))),
14440            TypeVariant::Int64 => Ok(Self::Int64(Box::new(serde_json::from_reader(r)?))),
14441            TypeVariant::TimePoint => Ok(Self::TimePoint(Box::new(serde_json::from_reader(r)?))),
14442            TypeVariant::Duration => Ok(Self::Duration(Box::new(serde_json::from_reader(r)?))),
14443            TypeVariant::ExtensionPoint => {
14444                Ok(Self::ExtensionPoint(Box::new(serde_json::from_reader(r)?)))
14445            }
14446            TypeVariant::CryptoKeyType => {
14447                Ok(Self::CryptoKeyType(Box::new(serde_json::from_reader(r)?)))
14448            }
14449            TypeVariant::PublicKeyType => {
14450                Ok(Self::PublicKeyType(Box::new(serde_json::from_reader(r)?)))
14451            }
14452            TypeVariant::SignerKeyType => {
14453                Ok(Self::SignerKeyType(Box::new(serde_json::from_reader(r)?)))
14454            }
14455            TypeVariant::PublicKey => Ok(Self::PublicKey(Box::new(serde_json::from_reader(r)?))),
14456            TypeVariant::SignerKey => Ok(Self::SignerKey(Box::new(serde_json::from_reader(r)?))),
14457            TypeVariant::SignerKeyEd25519SignedPayload => Ok(Self::SignerKeyEd25519SignedPayload(
14458                Box::new(serde_json::from_reader(r)?),
14459            )),
14460            TypeVariant::Signature => Ok(Self::Signature(Box::new(serde_json::from_reader(r)?))),
14461            TypeVariant::SignatureHint => {
14462                Ok(Self::SignatureHint(Box::new(serde_json::from_reader(r)?)))
14463            }
14464            TypeVariant::NodeId => Ok(Self::NodeId(Box::new(serde_json::from_reader(r)?))),
14465            TypeVariant::AccountId => Ok(Self::AccountId(Box::new(serde_json::from_reader(r)?))),
14466            TypeVariant::ContractId => Ok(Self::ContractId(Box::new(serde_json::from_reader(r)?))),
14467            TypeVariant::Curve25519Secret => Ok(Self::Curve25519Secret(Box::new(
14468                serde_json::from_reader(r)?,
14469            ))),
14470            TypeVariant::Curve25519Public => Ok(Self::Curve25519Public(Box::new(
14471                serde_json::from_reader(r)?,
14472            ))),
14473            TypeVariant::HmacSha256Key => {
14474                Ok(Self::HmacSha256Key(Box::new(serde_json::from_reader(r)?)))
14475            }
14476            TypeVariant::HmacSha256Mac => {
14477                Ok(Self::HmacSha256Mac(Box::new(serde_json::from_reader(r)?)))
14478            }
14479            TypeVariant::ShortHashSeed => {
14480                Ok(Self::ShortHashSeed(Box::new(serde_json::from_reader(r)?)))
14481            }
14482            TypeVariant::BinaryFuseFilterType => Ok(Self::BinaryFuseFilterType(Box::new(
14483                serde_json::from_reader(r)?,
14484            ))),
14485            TypeVariant::SerializedBinaryFuseFilter => Ok(Self::SerializedBinaryFuseFilter(
14486                Box::new(serde_json::from_reader(r)?),
14487            )),
14488            TypeVariant::PoolId => Ok(Self::PoolId(Box::new(serde_json::from_reader(r)?))),
14489            TypeVariant::ClaimableBalanceIdType => Ok(Self::ClaimableBalanceIdType(Box::new(
14490                serde_json::from_reader(r)?,
14491            ))),
14492            TypeVariant::ClaimableBalanceId => Ok(Self::ClaimableBalanceId(Box::new(
14493                serde_json::from_reader(r)?,
14494            ))),
14495            #[cfg(feature = "test_feature")]
14496            TypeVariant::TestNextType => {
14497                Ok(Self::TestNextType(Box::new(serde_json::from_reader(r)?)))
14498            }
14499        }
14500    }
14501
14502    #[cfg(all(feature = "std", feature = "serde_json"))]
14503    #[allow(clippy::too_many_lines)]
14504    pub fn deserialize_json<'r, R: serde_json::de::Read<'r>>(
14505        v: TypeVariant,
14506        r: &mut serde_json::de::Deserializer<R>,
14507    ) -> Result<Self, Error> {
14508        match v {
14509            TypeVariant::Value => Ok(Self::Value(Box::new(serde::de::Deserialize::deserialize(
14510                r,
14511            )?))),
14512            TypeVariant::ScpBallot => Ok(Self::ScpBallot(Box::new(
14513                serde::de::Deserialize::deserialize(r)?,
14514            ))),
14515            TypeVariant::ScpStatementType => Ok(Self::ScpStatementType(Box::new(
14516                serde::de::Deserialize::deserialize(r)?,
14517            ))),
14518            TypeVariant::ScpNomination => Ok(Self::ScpNomination(Box::new(
14519                serde::de::Deserialize::deserialize(r)?,
14520            ))),
14521            TypeVariant::ScpStatement => Ok(Self::ScpStatement(Box::new(
14522                serde::de::Deserialize::deserialize(r)?,
14523            ))),
14524            TypeVariant::ScpStatementPledges => Ok(Self::ScpStatementPledges(Box::new(
14525                serde::de::Deserialize::deserialize(r)?,
14526            ))),
14527            TypeVariant::ScpStatementPrepare => Ok(Self::ScpStatementPrepare(Box::new(
14528                serde::de::Deserialize::deserialize(r)?,
14529            ))),
14530            TypeVariant::ScpStatementConfirm => Ok(Self::ScpStatementConfirm(Box::new(
14531                serde::de::Deserialize::deserialize(r)?,
14532            ))),
14533            TypeVariant::ScpStatementExternalize => Ok(Self::ScpStatementExternalize(Box::new(
14534                serde::de::Deserialize::deserialize(r)?,
14535            ))),
14536            TypeVariant::ScpEnvelope => Ok(Self::ScpEnvelope(Box::new(
14537                serde::de::Deserialize::deserialize(r)?,
14538            ))),
14539            TypeVariant::ScpQuorumSet => Ok(Self::ScpQuorumSet(Box::new(
14540                serde::de::Deserialize::deserialize(r)?,
14541            ))),
14542            TypeVariant::EncodedLedgerKey => Ok(Self::EncodedLedgerKey(Box::new(
14543                serde::de::Deserialize::deserialize(r)?,
14544            ))),
14545            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
14546                Ok(Self::ConfigSettingContractExecutionLanesV0(Box::new(
14547                    serde::de::Deserialize::deserialize(r)?,
14548                )))
14549            }
14550            TypeVariant::ConfigSettingContractComputeV0 => {
14551                Ok(Self::ConfigSettingContractComputeV0(Box::new(
14552                    serde::de::Deserialize::deserialize(r)?,
14553                )))
14554            }
14555            TypeVariant::ConfigSettingContractParallelComputeV0 => {
14556                Ok(Self::ConfigSettingContractParallelComputeV0(Box::new(
14557                    serde::de::Deserialize::deserialize(r)?,
14558                )))
14559            }
14560            TypeVariant::ConfigSettingContractLedgerCostV0 => {
14561                Ok(Self::ConfigSettingContractLedgerCostV0(Box::new(
14562                    serde::de::Deserialize::deserialize(r)?,
14563                )))
14564            }
14565            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
14566                Ok(Self::ConfigSettingContractLedgerCostExtV0(Box::new(
14567                    serde::de::Deserialize::deserialize(r)?,
14568                )))
14569            }
14570            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
14571                Ok(Self::ConfigSettingContractHistoricalDataV0(Box::new(
14572                    serde::de::Deserialize::deserialize(r)?,
14573                )))
14574            }
14575            TypeVariant::ConfigSettingContractEventsV0 => Ok(Self::ConfigSettingContractEventsV0(
14576                Box::new(serde::de::Deserialize::deserialize(r)?),
14577            )),
14578            TypeVariant::ConfigSettingContractBandwidthV0 => {
14579                Ok(Self::ConfigSettingContractBandwidthV0(Box::new(
14580                    serde::de::Deserialize::deserialize(r)?,
14581                )))
14582            }
14583            TypeVariant::ContractCostType => Ok(Self::ContractCostType(Box::new(
14584                serde::de::Deserialize::deserialize(r)?,
14585            ))),
14586            TypeVariant::ContractCostParamEntry => Ok(Self::ContractCostParamEntry(Box::new(
14587                serde::de::Deserialize::deserialize(r)?,
14588            ))),
14589            TypeVariant::StateArchivalSettings => Ok(Self::StateArchivalSettings(Box::new(
14590                serde::de::Deserialize::deserialize(r)?,
14591            ))),
14592            TypeVariant::EvictionIterator => Ok(Self::EvictionIterator(Box::new(
14593                serde::de::Deserialize::deserialize(r)?,
14594            ))),
14595            TypeVariant::ConfigSettingScpTiming => Ok(Self::ConfigSettingScpTiming(Box::new(
14596                serde::de::Deserialize::deserialize(r)?,
14597            ))),
14598            TypeVariant::FrozenLedgerKeys => Ok(Self::FrozenLedgerKeys(Box::new(
14599                serde::de::Deserialize::deserialize(r)?,
14600            ))),
14601            TypeVariant::FrozenLedgerKeysDelta => Ok(Self::FrozenLedgerKeysDelta(Box::new(
14602                serde::de::Deserialize::deserialize(r)?,
14603            ))),
14604            TypeVariant::FreezeBypassTxs => Ok(Self::FreezeBypassTxs(Box::new(
14605                serde::de::Deserialize::deserialize(r)?,
14606            ))),
14607            TypeVariant::FreezeBypassTxsDelta => Ok(Self::FreezeBypassTxsDelta(Box::new(
14608                serde::de::Deserialize::deserialize(r)?,
14609            ))),
14610            TypeVariant::ContractCostParams => Ok(Self::ContractCostParams(Box::new(
14611                serde::de::Deserialize::deserialize(r)?,
14612            ))),
14613            TypeVariant::ConfigSettingId => Ok(Self::ConfigSettingId(Box::new(
14614                serde::de::Deserialize::deserialize(r)?,
14615            ))),
14616            TypeVariant::ConfigSettingEntry => Ok(Self::ConfigSettingEntry(Box::new(
14617                serde::de::Deserialize::deserialize(r)?,
14618            ))),
14619            TypeVariant::ScEnvMetaKind => Ok(Self::ScEnvMetaKind(Box::new(
14620                serde::de::Deserialize::deserialize(r)?,
14621            ))),
14622            TypeVariant::ScEnvMetaEntry => Ok(Self::ScEnvMetaEntry(Box::new(
14623                serde::de::Deserialize::deserialize(r)?,
14624            ))),
14625            TypeVariant::ScEnvMetaEntryInterfaceVersion => {
14626                Ok(Self::ScEnvMetaEntryInterfaceVersion(Box::new(
14627                    serde::de::Deserialize::deserialize(r)?,
14628                )))
14629            }
14630            TypeVariant::ScMetaV0 => Ok(Self::ScMetaV0(Box::new(
14631                serde::de::Deserialize::deserialize(r)?,
14632            ))),
14633            TypeVariant::ScMetaKind => Ok(Self::ScMetaKind(Box::new(
14634                serde::de::Deserialize::deserialize(r)?,
14635            ))),
14636            TypeVariant::ScMetaEntry => Ok(Self::ScMetaEntry(Box::new(
14637                serde::de::Deserialize::deserialize(r)?,
14638            ))),
14639            TypeVariant::ScSpecType => Ok(Self::ScSpecType(Box::new(
14640                serde::de::Deserialize::deserialize(r)?,
14641            ))),
14642            TypeVariant::ScSpecTypeOption => Ok(Self::ScSpecTypeOption(Box::new(
14643                serde::de::Deserialize::deserialize(r)?,
14644            ))),
14645            TypeVariant::ScSpecTypeResult => Ok(Self::ScSpecTypeResult(Box::new(
14646                serde::de::Deserialize::deserialize(r)?,
14647            ))),
14648            TypeVariant::ScSpecTypeVec => Ok(Self::ScSpecTypeVec(Box::new(
14649                serde::de::Deserialize::deserialize(r)?,
14650            ))),
14651            TypeVariant::ScSpecTypeMap => Ok(Self::ScSpecTypeMap(Box::new(
14652                serde::de::Deserialize::deserialize(r)?,
14653            ))),
14654            TypeVariant::ScSpecTypeTuple => Ok(Self::ScSpecTypeTuple(Box::new(
14655                serde::de::Deserialize::deserialize(r)?,
14656            ))),
14657            TypeVariant::ScSpecTypeBytesN => Ok(Self::ScSpecTypeBytesN(Box::new(
14658                serde::de::Deserialize::deserialize(r)?,
14659            ))),
14660            TypeVariant::ScSpecTypeUdt => Ok(Self::ScSpecTypeUdt(Box::new(
14661                serde::de::Deserialize::deserialize(r)?,
14662            ))),
14663            TypeVariant::ScSpecTypeDef => Ok(Self::ScSpecTypeDef(Box::new(
14664                serde::de::Deserialize::deserialize(r)?,
14665            ))),
14666            TypeVariant::ScSpecUdtStructFieldV0 => Ok(Self::ScSpecUdtStructFieldV0(Box::new(
14667                serde::de::Deserialize::deserialize(r)?,
14668            ))),
14669            TypeVariant::ScSpecUdtStructV0 => Ok(Self::ScSpecUdtStructV0(Box::new(
14670                serde::de::Deserialize::deserialize(r)?,
14671            ))),
14672            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
14673                serde::de::Deserialize::deserialize(r)?,
14674            ))),
14675            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Ok(Self::ScSpecUdtUnionCaseTupleV0(
14676                Box::new(serde::de::Deserialize::deserialize(r)?),
14677            )),
14678            TypeVariant::ScSpecUdtUnionCaseV0Kind => Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
14679                serde::de::Deserialize::deserialize(r)?,
14680            ))),
14681            TypeVariant::ScSpecUdtUnionCaseV0 => Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
14682                serde::de::Deserialize::deserialize(r)?,
14683            ))),
14684            TypeVariant::ScSpecUdtUnionV0 => Ok(Self::ScSpecUdtUnionV0(Box::new(
14685                serde::de::Deserialize::deserialize(r)?,
14686            ))),
14687            TypeVariant::ScSpecUdtEnumCaseV0 => Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
14688                serde::de::Deserialize::deserialize(r)?,
14689            ))),
14690            TypeVariant::ScSpecUdtEnumV0 => Ok(Self::ScSpecUdtEnumV0(Box::new(
14691                serde::de::Deserialize::deserialize(r)?,
14692            ))),
14693            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
14694                serde::de::Deserialize::deserialize(r)?,
14695            ))),
14696            TypeVariant::ScSpecUdtErrorEnumV0 => Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
14697                serde::de::Deserialize::deserialize(r)?,
14698            ))),
14699            TypeVariant::ScSpecFunctionInputV0 => Ok(Self::ScSpecFunctionInputV0(Box::new(
14700                serde::de::Deserialize::deserialize(r)?,
14701            ))),
14702            TypeVariant::ScSpecFunctionV0 => Ok(Self::ScSpecFunctionV0(Box::new(
14703                serde::de::Deserialize::deserialize(r)?,
14704            ))),
14705            TypeVariant::ScSpecEventParamLocationV0 => Ok(Self::ScSpecEventParamLocationV0(
14706                Box::new(serde::de::Deserialize::deserialize(r)?),
14707            )),
14708            TypeVariant::ScSpecEventParamV0 => Ok(Self::ScSpecEventParamV0(Box::new(
14709                serde::de::Deserialize::deserialize(r)?,
14710            ))),
14711            TypeVariant::ScSpecEventDataFormat => Ok(Self::ScSpecEventDataFormat(Box::new(
14712                serde::de::Deserialize::deserialize(r)?,
14713            ))),
14714            TypeVariant::ScSpecEventV0 => Ok(Self::ScSpecEventV0(Box::new(
14715                serde::de::Deserialize::deserialize(r)?,
14716            ))),
14717            TypeVariant::ScSpecEntryKind => Ok(Self::ScSpecEntryKind(Box::new(
14718                serde::de::Deserialize::deserialize(r)?,
14719            ))),
14720            TypeVariant::ScSpecEntry => Ok(Self::ScSpecEntry(Box::new(
14721                serde::de::Deserialize::deserialize(r)?,
14722            ))),
14723            TypeVariant::ScValType => Ok(Self::ScValType(Box::new(
14724                serde::de::Deserialize::deserialize(r)?,
14725            ))),
14726            TypeVariant::ScErrorType => Ok(Self::ScErrorType(Box::new(
14727                serde::de::Deserialize::deserialize(r)?,
14728            ))),
14729            TypeVariant::ScErrorCode => Ok(Self::ScErrorCode(Box::new(
14730                serde::de::Deserialize::deserialize(r)?,
14731            ))),
14732            TypeVariant::ScError => Ok(Self::ScError(Box::new(
14733                serde::de::Deserialize::deserialize(r)?,
14734            ))),
14735            TypeVariant::UInt128Parts => Ok(Self::UInt128Parts(Box::new(
14736                serde::de::Deserialize::deserialize(r)?,
14737            ))),
14738            TypeVariant::Int128Parts => Ok(Self::Int128Parts(Box::new(
14739                serde::de::Deserialize::deserialize(r)?,
14740            ))),
14741            TypeVariant::UInt256Parts => Ok(Self::UInt256Parts(Box::new(
14742                serde::de::Deserialize::deserialize(r)?,
14743            ))),
14744            TypeVariant::Int256Parts => Ok(Self::Int256Parts(Box::new(
14745                serde::de::Deserialize::deserialize(r)?,
14746            ))),
14747            TypeVariant::ContractExecutableType => Ok(Self::ContractExecutableType(Box::new(
14748                serde::de::Deserialize::deserialize(r)?,
14749            ))),
14750            TypeVariant::ContractExecutable => Ok(Self::ContractExecutable(Box::new(
14751                serde::de::Deserialize::deserialize(r)?,
14752            ))),
14753            TypeVariant::ScAddressType => Ok(Self::ScAddressType(Box::new(
14754                serde::de::Deserialize::deserialize(r)?,
14755            ))),
14756            TypeVariant::MuxedEd25519Account => Ok(Self::MuxedEd25519Account(Box::new(
14757                serde::de::Deserialize::deserialize(r)?,
14758            ))),
14759            TypeVariant::ScAddress => Ok(Self::ScAddress(Box::new(
14760                serde::de::Deserialize::deserialize(r)?,
14761            ))),
14762            TypeVariant::ScVec => Ok(Self::ScVec(Box::new(serde::de::Deserialize::deserialize(
14763                r,
14764            )?))),
14765            TypeVariant::ScMap => Ok(Self::ScMap(Box::new(serde::de::Deserialize::deserialize(
14766                r,
14767            )?))),
14768            TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(
14769                serde::de::Deserialize::deserialize(r)?,
14770            ))),
14771            TypeVariant::ScString => Ok(Self::ScString(Box::new(
14772                serde::de::Deserialize::deserialize(r)?,
14773            ))),
14774            TypeVariant::ScSymbol => Ok(Self::ScSymbol(Box::new(
14775                serde::de::Deserialize::deserialize(r)?,
14776            ))),
14777            TypeVariant::ScNonceKey => Ok(Self::ScNonceKey(Box::new(
14778                serde::de::Deserialize::deserialize(r)?,
14779            ))),
14780            TypeVariant::ScContractInstance => Ok(Self::ScContractInstance(Box::new(
14781                serde::de::Deserialize::deserialize(r)?,
14782            ))),
14783            TypeVariant::ScVal => Ok(Self::ScVal(Box::new(serde::de::Deserialize::deserialize(
14784                r,
14785            )?))),
14786            TypeVariant::ScMapEntry => Ok(Self::ScMapEntry(Box::new(
14787                serde::de::Deserialize::deserialize(r)?,
14788            ))),
14789            TypeVariant::LedgerCloseMetaBatch => Ok(Self::LedgerCloseMetaBatch(Box::new(
14790                serde::de::Deserialize::deserialize(r)?,
14791            ))),
14792            TypeVariant::StoredTransactionSet => Ok(Self::StoredTransactionSet(Box::new(
14793                serde::de::Deserialize::deserialize(r)?,
14794            ))),
14795            TypeVariant::StoredDebugTransactionSet => Ok(Self::StoredDebugTransactionSet(
14796                Box::new(serde::de::Deserialize::deserialize(r)?),
14797            )),
14798            TypeVariant::PersistedScpStateV0 => Ok(Self::PersistedScpStateV0(Box::new(
14799                serde::de::Deserialize::deserialize(r)?,
14800            ))),
14801            TypeVariant::PersistedScpStateV1 => Ok(Self::PersistedScpStateV1(Box::new(
14802                serde::de::Deserialize::deserialize(r)?,
14803            ))),
14804            TypeVariant::PersistedScpState => Ok(Self::PersistedScpState(Box::new(
14805                serde::de::Deserialize::deserialize(r)?,
14806            ))),
14807            TypeVariant::Thresholds => Ok(Self::Thresholds(Box::new(
14808                serde::de::Deserialize::deserialize(r)?,
14809            ))),
14810            TypeVariant::String32 => Ok(Self::String32(Box::new(
14811                serde::de::Deserialize::deserialize(r)?,
14812            ))),
14813            TypeVariant::String64 => Ok(Self::String64(Box::new(
14814                serde::de::Deserialize::deserialize(r)?,
14815            ))),
14816            TypeVariant::SequenceNumber => Ok(Self::SequenceNumber(Box::new(
14817                serde::de::Deserialize::deserialize(r)?,
14818            ))),
14819            TypeVariant::DataValue => Ok(Self::DataValue(Box::new(
14820                serde::de::Deserialize::deserialize(r)?,
14821            ))),
14822            TypeVariant::AssetCode4 => Ok(Self::AssetCode4(Box::new(
14823                serde::de::Deserialize::deserialize(r)?,
14824            ))),
14825            TypeVariant::AssetCode12 => Ok(Self::AssetCode12(Box::new(
14826                serde::de::Deserialize::deserialize(r)?,
14827            ))),
14828            TypeVariant::AssetType => Ok(Self::AssetType(Box::new(
14829                serde::de::Deserialize::deserialize(r)?,
14830            ))),
14831            TypeVariant::AssetCode => Ok(Self::AssetCode(Box::new(
14832                serde::de::Deserialize::deserialize(r)?,
14833            ))),
14834            TypeVariant::AlphaNum4 => Ok(Self::AlphaNum4(Box::new(
14835                serde::de::Deserialize::deserialize(r)?,
14836            ))),
14837            TypeVariant::AlphaNum12 => Ok(Self::AlphaNum12(Box::new(
14838                serde::de::Deserialize::deserialize(r)?,
14839            ))),
14840            TypeVariant::Asset => Ok(Self::Asset(Box::new(serde::de::Deserialize::deserialize(
14841                r,
14842            )?))),
14843            TypeVariant::Price => Ok(Self::Price(Box::new(serde::de::Deserialize::deserialize(
14844                r,
14845            )?))),
14846            TypeVariant::Liabilities => Ok(Self::Liabilities(Box::new(
14847                serde::de::Deserialize::deserialize(r)?,
14848            ))),
14849            TypeVariant::ThresholdIndexes => Ok(Self::ThresholdIndexes(Box::new(
14850                serde::de::Deserialize::deserialize(r)?,
14851            ))),
14852            TypeVariant::LedgerEntryType => Ok(Self::LedgerEntryType(Box::new(
14853                serde::de::Deserialize::deserialize(r)?,
14854            ))),
14855            TypeVariant::Signer => Ok(Self::Signer(Box::new(serde::de::Deserialize::deserialize(
14856                r,
14857            )?))),
14858            TypeVariant::AccountFlags => Ok(Self::AccountFlags(Box::new(
14859                serde::de::Deserialize::deserialize(r)?,
14860            ))),
14861            TypeVariant::SponsorshipDescriptor => Ok(Self::SponsorshipDescriptor(Box::new(
14862                serde::de::Deserialize::deserialize(r)?,
14863            ))),
14864            TypeVariant::AccountEntryExtensionV3 => Ok(Self::AccountEntryExtensionV3(Box::new(
14865                serde::de::Deserialize::deserialize(r)?,
14866            ))),
14867            TypeVariant::AccountEntryExtensionV2 => Ok(Self::AccountEntryExtensionV2(Box::new(
14868                serde::de::Deserialize::deserialize(r)?,
14869            ))),
14870            TypeVariant::AccountEntryExtensionV2Ext => Ok(Self::AccountEntryExtensionV2Ext(
14871                Box::new(serde::de::Deserialize::deserialize(r)?),
14872            )),
14873            TypeVariant::AccountEntryExtensionV1 => Ok(Self::AccountEntryExtensionV1(Box::new(
14874                serde::de::Deserialize::deserialize(r)?,
14875            ))),
14876            TypeVariant::AccountEntryExtensionV1Ext => Ok(Self::AccountEntryExtensionV1Ext(
14877                Box::new(serde::de::Deserialize::deserialize(r)?),
14878            )),
14879            TypeVariant::AccountEntry => Ok(Self::AccountEntry(Box::new(
14880                serde::de::Deserialize::deserialize(r)?,
14881            ))),
14882            TypeVariant::AccountEntryExt => Ok(Self::AccountEntryExt(Box::new(
14883                serde::de::Deserialize::deserialize(r)?,
14884            ))),
14885            TypeVariant::TrustLineFlags => Ok(Self::TrustLineFlags(Box::new(
14886                serde::de::Deserialize::deserialize(r)?,
14887            ))),
14888            TypeVariant::LiquidityPoolType => Ok(Self::LiquidityPoolType(Box::new(
14889                serde::de::Deserialize::deserialize(r)?,
14890            ))),
14891            TypeVariant::TrustLineAsset => Ok(Self::TrustLineAsset(Box::new(
14892                serde::de::Deserialize::deserialize(r)?,
14893            ))),
14894            TypeVariant::TrustLineEntryExtensionV2 => Ok(Self::TrustLineEntryExtensionV2(
14895                Box::new(serde::de::Deserialize::deserialize(r)?),
14896            )),
14897            TypeVariant::TrustLineEntryExtensionV2Ext => Ok(Self::TrustLineEntryExtensionV2Ext(
14898                Box::new(serde::de::Deserialize::deserialize(r)?),
14899            )),
14900            TypeVariant::TrustLineEntry => Ok(Self::TrustLineEntry(Box::new(
14901                serde::de::Deserialize::deserialize(r)?,
14902            ))),
14903            TypeVariant::TrustLineEntryExt => Ok(Self::TrustLineEntryExt(Box::new(
14904                serde::de::Deserialize::deserialize(r)?,
14905            ))),
14906            TypeVariant::TrustLineEntryV1 => Ok(Self::TrustLineEntryV1(Box::new(
14907                serde::de::Deserialize::deserialize(r)?,
14908            ))),
14909            TypeVariant::TrustLineEntryV1Ext => Ok(Self::TrustLineEntryV1Ext(Box::new(
14910                serde::de::Deserialize::deserialize(r)?,
14911            ))),
14912            TypeVariant::OfferEntryFlags => Ok(Self::OfferEntryFlags(Box::new(
14913                serde::de::Deserialize::deserialize(r)?,
14914            ))),
14915            TypeVariant::OfferEntry => Ok(Self::OfferEntry(Box::new(
14916                serde::de::Deserialize::deserialize(r)?,
14917            ))),
14918            TypeVariant::OfferEntryExt => Ok(Self::OfferEntryExt(Box::new(
14919                serde::de::Deserialize::deserialize(r)?,
14920            ))),
14921            TypeVariant::DataEntry => Ok(Self::DataEntry(Box::new(
14922                serde::de::Deserialize::deserialize(r)?,
14923            ))),
14924            TypeVariant::DataEntryExt => Ok(Self::DataEntryExt(Box::new(
14925                serde::de::Deserialize::deserialize(r)?,
14926            ))),
14927            TypeVariant::ClaimPredicateType => Ok(Self::ClaimPredicateType(Box::new(
14928                serde::de::Deserialize::deserialize(r)?,
14929            ))),
14930            TypeVariant::ClaimPredicate => Ok(Self::ClaimPredicate(Box::new(
14931                serde::de::Deserialize::deserialize(r)?,
14932            ))),
14933            TypeVariant::ClaimantType => Ok(Self::ClaimantType(Box::new(
14934                serde::de::Deserialize::deserialize(r)?,
14935            ))),
14936            TypeVariant::Claimant => Ok(Self::Claimant(Box::new(
14937                serde::de::Deserialize::deserialize(r)?,
14938            ))),
14939            TypeVariant::ClaimantV0 => Ok(Self::ClaimantV0(Box::new(
14940                serde::de::Deserialize::deserialize(r)?,
14941            ))),
14942            TypeVariant::ClaimableBalanceFlags => Ok(Self::ClaimableBalanceFlags(Box::new(
14943                serde::de::Deserialize::deserialize(r)?,
14944            ))),
14945            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
14946                Ok(Self::ClaimableBalanceEntryExtensionV1(Box::new(
14947                    serde::de::Deserialize::deserialize(r)?,
14948                )))
14949            }
14950            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
14951                Ok(Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(
14952                    serde::de::Deserialize::deserialize(r)?,
14953                )))
14954            }
14955            TypeVariant::ClaimableBalanceEntry => Ok(Self::ClaimableBalanceEntry(Box::new(
14956                serde::de::Deserialize::deserialize(r)?,
14957            ))),
14958            TypeVariant::ClaimableBalanceEntryExt => Ok(Self::ClaimableBalanceEntryExt(Box::new(
14959                serde::de::Deserialize::deserialize(r)?,
14960            ))),
14961            TypeVariant::LiquidityPoolConstantProductParameters => {
14962                Ok(Self::LiquidityPoolConstantProductParameters(Box::new(
14963                    serde::de::Deserialize::deserialize(r)?,
14964                )))
14965            }
14966            TypeVariant::LiquidityPoolEntry => Ok(Self::LiquidityPoolEntry(Box::new(
14967                serde::de::Deserialize::deserialize(r)?,
14968            ))),
14969            TypeVariant::LiquidityPoolEntryBody => Ok(Self::LiquidityPoolEntryBody(Box::new(
14970                serde::de::Deserialize::deserialize(r)?,
14971            ))),
14972            TypeVariant::LiquidityPoolEntryConstantProduct => {
14973                Ok(Self::LiquidityPoolEntryConstantProduct(Box::new(
14974                    serde::de::Deserialize::deserialize(r)?,
14975                )))
14976            }
14977            TypeVariant::ContractDataDurability => Ok(Self::ContractDataDurability(Box::new(
14978                serde::de::Deserialize::deserialize(r)?,
14979            ))),
14980            TypeVariant::ContractDataEntry => Ok(Self::ContractDataEntry(Box::new(
14981                serde::de::Deserialize::deserialize(r)?,
14982            ))),
14983            TypeVariant::ContractCodeCostInputs => Ok(Self::ContractCodeCostInputs(Box::new(
14984                serde::de::Deserialize::deserialize(r)?,
14985            ))),
14986            TypeVariant::ContractCodeEntry => Ok(Self::ContractCodeEntry(Box::new(
14987                serde::de::Deserialize::deserialize(r)?,
14988            ))),
14989            TypeVariant::ContractCodeEntryExt => Ok(Self::ContractCodeEntryExt(Box::new(
14990                serde::de::Deserialize::deserialize(r)?,
14991            ))),
14992            TypeVariant::ContractCodeEntryV1 => Ok(Self::ContractCodeEntryV1(Box::new(
14993                serde::de::Deserialize::deserialize(r)?,
14994            ))),
14995            TypeVariant::TtlEntry => Ok(Self::TtlEntry(Box::new(
14996                serde::de::Deserialize::deserialize(r)?,
14997            ))),
14998            TypeVariant::LedgerEntryExtensionV1 => Ok(Self::LedgerEntryExtensionV1(Box::new(
14999                serde::de::Deserialize::deserialize(r)?,
15000            ))),
15001            TypeVariant::LedgerEntryExtensionV1Ext => Ok(Self::LedgerEntryExtensionV1Ext(
15002                Box::new(serde::de::Deserialize::deserialize(r)?),
15003            )),
15004            TypeVariant::LedgerEntry => Ok(Self::LedgerEntry(Box::new(
15005                serde::de::Deserialize::deserialize(r)?,
15006            ))),
15007            TypeVariant::LedgerEntryData => Ok(Self::LedgerEntryData(Box::new(
15008                serde::de::Deserialize::deserialize(r)?,
15009            ))),
15010            TypeVariant::LedgerEntryExt => Ok(Self::LedgerEntryExt(Box::new(
15011                serde::de::Deserialize::deserialize(r)?,
15012            ))),
15013            TypeVariant::LedgerKey => Ok(Self::LedgerKey(Box::new(
15014                serde::de::Deserialize::deserialize(r)?,
15015            ))),
15016            TypeVariant::LedgerKeyAccount => Ok(Self::LedgerKeyAccount(Box::new(
15017                serde::de::Deserialize::deserialize(r)?,
15018            ))),
15019            TypeVariant::LedgerKeyTrustLine => Ok(Self::LedgerKeyTrustLine(Box::new(
15020                serde::de::Deserialize::deserialize(r)?,
15021            ))),
15022            TypeVariant::LedgerKeyOffer => Ok(Self::LedgerKeyOffer(Box::new(
15023                serde::de::Deserialize::deserialize(r)?,
15024            ))),
15025            TypeVariant::LedgerKeyData => Ok(Self::LedgerKeyData(Box::new(
15026                serde::de::Deserialize::deserialize(r)?,
15027            ))),
15028            TypeVariant::LedgerKeyClaimableBalance => Ok(Self::LedgerKeyClaimableBalance(
15029                Box::new(serde::de::Deserialize::deserialize(r)?),
15030            )),
15031            TypeVariant::LedgerKeyLiquidityPool => Ok(Self::LedgerKeyLiquidityPool(Box::new(
15032                serde::de::Deserialize::deserialize(r)?,
15033            ))),
15034            TypeVariant::LedgerKeyContractData => Ok(Self::LedgerKeyContractData(Box::new(
15035                serde::de::Deserialize::deserialize(r)?,
15036            ))),
15037            TypeVariant::LedgerKeyContractCode => Ok(Self::LedgerKeyContractCode(Box::new(
15038                serde::de::Deserialize::deserialize(r)?,
15039            ))),
15040            TypeVariant::LedgerKeyConfigSetting => Ok(Self::LedgerKeyConfigSetting(Box::new(
15041                serde::de::Deserialize::deserialize(r)?,
15042            ))),
15043            TypeVariant::LedgerKeyTtl => Ok(Self::LedgerKeyTtl(Box::new(
15044                serde::de::Deserialize::deserialize(r)?,
15045            ))),
15046            TypeVariant::EnvelopeType => Ok(Self::EnvelopeType(Box::new(
15047                serde::de::Deserialize::deserialize(r)?,
15048            ))),
15049            TypeVariant::BucketListType => Ok(Self::BucketListType(Box::new(
15050                serde::de::Deserialize::deserialize(r)?,
15051            ))),
15052            TypeVariant::BucketEntryType => Ok(Self::BucketEntryType(Box::new(
15053                serde::de::Deserialize::deserialize(r)?,
15054            ))),
15055            TypeVariant::HotArchiveBucketEntryType => Ok(Self::HotArchiveBucketEntryType(
15056                Box::new(serde::de::Deserialize::deserialize(r)?),
15057            )),
15058            TypeVariant::BucketMetadata => Ok(Self::BucketMetadata(Box::new(
15059                serde::de::Deserialize::deserialize(r)?,
15060            ))),
15061            TypeVariant::BucketMetadataExt => Ok(Self::BucketMetadataExt(Box::new(
15062                serde::de::Deserialize::deserialize(r)?,
15063            ))),
15064            TypeVariant::BucketEntry => Ok(Self::BucketEntry(Box::new(
15065                serde::de::Deserialize::deserialize(r)?,
15066            ))),
15067            TypeVariant::HotArchiveBucketEntry => Ok(Self::HotArchiveBucketEntry(Box::new(
15068                serde::de::Deserialize::deserialize(r)?,
15069            ))),
15070            TypeVariant::UpgradeType => Ok(Self::UpgradeType(Box::new(
15071                serde::de::Deserialize::deserialize(r)?,
15072            ))),
15073            TypeVariant::StellarValueType => Ok(Self::StellarValueType(Box::new(
15074                serde::de::Deserialize::deserialize(r)?,
15075            ))),
15076            TypeVariant::LedgerCloseValueSignature => Ok(Self::LedgerCloseValueSignature(
15077                Box::new(serde::de::Deserialize::deserialize(r)?),
15078            )),
15079            TypeVariant::StellarValue => Ok(Self::StellarValue(Box::new(
15080                serde::de::Deserialize::deserialize(r)?,
15081            ))),
15082            TypeVariant::StellarValueExt => Ok(Self::StellarValueExt(Box::new(
15083                serde::de::Deserialize::deserialize(r)?,
15084            ))),
15085            #[cfg(feature = "cap_0083")]
15086            TypeVariant::StellarValueProposedValue => Ok(Self::StellarValueProposedValue(
15087                Box::new(serde::de::Deserialize::deserialize(r)?),
15088            )),
15089            TypeVariant::LedgerHeaderFlags => Ok(Self::LedgerHeaderFlags(Box::new(
15090                serde::de::Deserialize::deserialize(r)?,
15091            ))),
15092            TypeVariant::LedgerHeaderExtensionV1 => Ok(Self::LedgerHeaderExtensionV1(Box::new(
15093                serde::de::Deserialize::deserialize(r)?,
15094            ))),
15095            TypeVariant::LedgerHeaderExtensionV1Ext => Ok(Self::LedgerHeaderExtensionV1Ext(
15096                Box::new(serde::de::Deserialize::deserialize(r)?),
15097            )),
15098            TypeVariant::LedgerHeader => Ok(Self::LedgerHeader(Box::new(
15099                serde::de::Deserialize::deserialize(r)?,
15100            ))),
15101            TypeVariant::LedgerHeaderExt => Ok(Self::LedgerHeaderExt(Box::new(
15102                serde::de::Deserialize::deserialize(r)?,
15103            ))),
15104            TypeVariant::LedgerUpgradeType => Ok(Self::LedgerUpgradeType(Box::new(
15105                serde::de::Deserialize::deserialize(r)?,
15106            ))),
15107            TypeVariant::ConfigUpgradeSetKey => Ok(Self::ConfigUpgradeSetKey(Box::new(
15108                serde::de::Deserialize::deserialize(r)?,
15109            ))),
15110            TypeVariant::LedgerUpgrade => Ok(Self::LedgerUpgrade(Box::new(
15111                serde::de::Deserialize::deserialize(r)?,
15112            ))),
15113            TypeVariant::ConfigUpgradeSet => Ok(Self::ConfigUpgradeSet(Box::new(
15114                serde::de::Deserialize::deserialize(r)?,
15115            ))),
15116            TypeVariant::TxSetComponentType => Ok(Self::TxSetComponentType(Box::new(
15117                serde::de::Deserialize::deserialize(r)?,
15118            ))),
15119            TypeVariant::DependentTxCluster => Ok(Self::DependentTxCluster(Box::new(
15120                serde::de::Deserialize::deserialize(r)?,
15121            ))),
15122            TypeVariant::ParallelTxExecutionStage => Ok(Self::ParallelTxExecutionStage(Box::new(
15123                serde::de::Deserialize::deserialize(r)?,
15124            ))),
15125            TypeVariant::ParallelTxsComponent => Ok(Self::ParallelTxsComponent(Box::new(
15126                serde::de::Deserialize::deserialize(r)?,
15127            ))),
15128            TypeVariant::TxSetComponent => Ok(Self::TxSetComponent(Box::new(
15129                serde::de::Deserialize::deserialize(r)?,
15130            ))),
15131            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
15132                Ok(Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(
15133                    serde::de::Deserialize::deserialize(r)?,
15134                )))
15135            }
15136            TypeVariant::TransactionPhase => Ok(Self::TransactionPhase(Box::new(
15137                serde::de::Deserialize::deserialize(r)?,
15138            ))),
15139            TypeVariant::TransactionSet => Ok(Self::TransactionSet(Box::new(
15140                serde::de::Deserialize::deserialize(r)?,
15141            ))),
15142            TypeVariant::TransactionSetV1 => Ok(Self::TransactionSetV1(Box::new(
15143                serde::de::Deserialize::deserialize(r)?,
15144            ))),
15145            TypeVariant::GeneralizedTransactionSet => Ok(Self::GeneralizedTransactionSet(
15146                Box::new(serde::de::Deserialize::deserialize(r)?),
15147            )),
15148            TypeVariant::TransactionResultPair => Ok(Self::TransactionResultPair(Box::new(
15149                serde::de::Deserialize::deserialize(r)?,
15150            ))),
15151            TypeVariant::TransactionResultSet => Ok(Self::TransactionResultSet(Box::new(
15152                serde::de::Deserialize::deserialize(r)?,
15153            ))),
15154            TypeVariant::TransactionHistoryEntry => Ok(Self::TransactionHistoryEntry(Box::new(
15155                serde::de::Deserialize::deserialize(r)?,
15156            ))),
15157            TypeVariant::TransactionHistoryEntryExt => Ok(Self::TransactionHistoryEntryExt(
15158                Box::new(serde::de::Deserialize::deserialize(r)?),
15159            )),
15160            TypeVariant::TransactionHistoryResultEntry => Ok(Self::TransactionHistoryResultEntry(
15161                Box::new(serde::de::Deserialize::deserialize(r)?),
15162            )),
15163            TypeVariant::TransactionHistoryResultEntryExt => {
15164                Ok(Self::TransactionHistoryResultEntryExt(Box::new(
15165                    serde::de::Deserialize::deserialize(r)?,
15166                )))
15167            }
15168            TypeVariant::LedgerHeaderHistoryEntry => Ok(Self::LedgerHeaderHistoryEntry(Box::new(
15169                serde::de::Deserialize::deserialize(r)?,
15170            ))),
15171            TypeVariant::LedgerHeaderHistoryEntryExt => Ok(Self::LedgerHeaderHistoryEntryExt(
15172                Box::new(serde::de::Deserialize::deserialize(r)?),
15173            )),
15174            TypeVariant::LedgerScpMessages => Ok(Self::LedgerScpMessages(Box::new(
15175                serde::de::Deserialize::deserialize(r)?,
15176            ))),
15177            TypeVariant::ScpHistoryEntryV0 => Ok(Self::ScpHistoryEntryV0(Box::new(
15178                serde::de::Deserialize::deserialize(r)?,
15179            ))),
15180            TypeVariant::ScpHistoryEntry => Ok(Self::ScpHistoryEntry(Box::new(
15181                serde::de::Deserialize::deserialize(r)?,
15182            ))),
15183            TypeVariant::LedgerEntryChangeType => Ok(Self::LedgerEntryChangeType(Box::new(
15184                serde::de::Deserialize::deserialize(r)?,
15185            ))),
15186            TypeVariant::LedgerEntryChange => Ok(Self::LedgerEntryChange(Box::new(
15187                serde::de::Deserialize::deserialize(r)?,
15188            ))),
15189            TypeVariant::LedgerEntryChanges => Ok(Self::LedgerEntryChanges(Box::new(
15190                serde::de::Deserialize::deserialize(r)?,
15191            ))),
15192            TypeVariant::OperationMeta => Ok(Self::OperationMeta(Box::new(
15193                serde::de::Deserialize::deserialize(r)?,
15194            ))),
15195            TypeVariant::TransactionMetaV1 => Ok(Self::TransactionMetaV1(Box::new(
15196                serde::de::Deserialize::deserialize(r)?,
15197            ))),
15198            TypeVariant::TransactionMetaV2 => Ok(Self::TransactionMetaV2(Box::new(
15199                serde::de::Deserialize::deserialize(r)?,
15200            ))),
15201            TypeVariant::ContractEventType => Ok(Self::ContractEventType(Box::new(
15202                serde::de::Deserialize::deserialize(r)?,
15203            ))),
15204            TypeVariant::ContractEvent => Ok(Self::ContractEvent(Box::new(
15205                serde::de::Deserialize::deserialize(r)?,
15206            ))),
15207            TypeVariant::ContractEventBody => Ok(Self::ContractEventBody(Box::new(
15208                serde::de::Deserialize::deserialize(r)?,
15209            ))),
15210            TypeVariant::ContractEventV0 => Ok(Self::ContractEventV0(Box::new(
15211                serde::de::Deserialize::deserialize(r)?,
15212            ))),
15213            TypeVariant::DiagnosticEvent => Ok(Self::DiagnosticEvent(Box::new(
15214                serde::de::Deserialize::deserialize(r)?,
15215            ))),
15216            TypeVariant::SorobanTransactionMetaExtV1 => Ok(Self::SorobanTransactionMetaExtV1(
15217                Box::new(serde::de::Deserialize::deserialize(r)?),
15218            )),
15219            TypeVariant::SorobanTransactionMetaExt => Ok(Self::SorobanTransactionMetaExt(
15220                Box::new(serde::de::Deserialize::deserialize(r)?),
15221            )),
15222            TypeVariant::SorobanTransactionMeta => Ok(Self::SorobanTransactionMeta(Box::new(
15223                serde::de::Deserialize::deserialize(r)?,
15224            ))),
15225            TypeVariant::TransactionMetaV3 => Ok(Self::TransactionMetaV3(Box::new(
15226                serde::de::Deserialize::deserialize(r)?,
15227            ))),
15228            TypeVariant::OperationMetaV2 => Ok(Self::OperationMetaV2(Box::new(
15229                serde::de::Deserialize::deserialize(r)?,
15230            ))),
15231            TypeVariant::SorobanTransactionMetaV2 => Ok(Self::SorobanTransactionMetaV2(Box::new(
15232                serde::de::Deserialize::deserialize(r)?,
15233            ))),
15234            TypeVariant::TransactionEventStage => Ok(Self::TransactionEventStage(Box::new(
15235                serde::de::Deserialize::deserialize(r)?,
15236            ))),
15237            TypeVariant::TransactionEvent => Ok(Self::TransactionEvent(Box::new(
15238                serde::de::Deserialize::deserialize(r)?,
15239            ))),
15240            TypeVariant::TransactionMetaV4 => Ok(Self::TransactionMetaV4(Box::new(
15241                serde::de::Deserialize::deserialize(r)?,
15242            ))),
15243            TypeVariant::InvokeHostFunctionSuccessPreImage => {
15244                Ok(Self::InvokeHostFunctionSuccessPreImage(Box::new(
15245                    serde::de::Deserialize::deserialize(r)?,
15246                )))
15247            }
15248            TypeVariant::TransactionMeta => Ok(Self::TransactionMeta(Box::new(
15249                serde::de::Deserialize::deserialize(r)?,
15250            ))),
15251            TypeVariant::TransactionResultMeta => Ok(Self::TransactionResultMeta(Box::new(
15252                serde::de::Deserialize::deserialize(r)?,
15253            ))),
15254            TypeVariant::TransactionResultMetaV1 => Ok(Self::TransactionResultMetaV1(Box::new(
15255                serde::de::Deserialize::deserialize(r)?,
15256            ))),
15257            TypeVariant::UpgradeEntryMeta => Ok(Self::UpgradeEntryMeta(Box::new(
15258                serde::de::Deserialize::deserialize(r)?,
15259            ))),
15260            TypeVariant::LedgerCloseMetaV0 => Ok(Self::LedgerCloseMetaV0(Box::new(
15261                serde::de::Deserialize::deserialize(r)?,
15262            ))),
15263            TypeVariant::LedgerCloseMetaExtV1 => Ok(Self::LedgerCloseMetaExtV1(Box::new(
15264                serde::de::Deserialize::deserialize(r)?,
15265            ))),
15266            TypeVariant::LedgerCloseMetaExt => Ok(Self::LedgerCloseMetaExt(Box::new(
15267                serde::de::Deserialize::deserialize(r)?,
15268            ))),
15269            TypeVariant::LedgerCloseMetaV1 => Ok(Self::LedgerCloseMetaV1(Box::new(
15270                serde::de::Deserialize::deserialize(r)?,
15271            ))),
15272            TypeVariant::LedgerCloseMetaV2 => Ok(Self::LedgerCloseMetaV2(Box::new(
15273                serde::de::Deserialize::deserialize(r)?,
15274            ))),
15275            TypeVariant::LedgerCloseMeta => Ok(Self::LedgerCloseMeta(Box::new(
15276                serde::de::Deserialize::deserialize(r)?,
15277            ))),
15278            TypeVariant::ErrorCode => Ok(Self::ErrorCode(Box::new(
15279                serde::de::Deserialize::deserialize(r)?,
15280            ))),
15281            TypeVariant::SError => Ok(Self::SError(Box::new(serde::de::Deserialize::deserialize(
15282                r,
15283            )?))),
15284            TypeVariant::SendMore => Ok(Self::SendMore(Box::new(
15285                serde::de::Deserialize::deserialize(r)?,
15286            ))),
15287            TypeVariant::SendMoreExtended => Ok(Self::SendMoreExtended(Box::new(
15288                serde::de::Deserialize::deserialize(r)?,
15289            ))),
15290            TypeVariant::AuthCert => Ok(Self::AuthCert(Box::new(
15291                serde::de::Deserialize::deserialize(r)?,
15292            ))),
15293            TypeVariant::Hello => Ok(Self::Hello(Box::new(serde::de::Deserialize::deserialize(
15294                r,
15295            )?))),
15296            TypeVariant::Auth => Ok(Self::Auth(Box::new(serde::de::Deserialize::deserialize(
15297                r,
15298            )?))),
15299            TypeVariant::IpAddrType => Ok(Self::IpAddrType(Box::new(
15300                serde::de::Deserialize::deserialize(r)?,
15301            ))),
15302            TypeVariant::PeerAddress => Ok(Self::PeerAddress(Box::new(
15303                serde::de::Deserialize::deserialize(r)?,
15304            ))),
15305            TypeVariant::PeerAddressIp => Ok(Self::PeerAddressIp(Box::new(
15306                serde::de::Deserialize::deserialize(r)?,
15307            ))),
15308            TypeVariant::MessageType => Ok(Self::MessageType(Box::new(
15309                serde::de::Deserialize::deserialize(r)?,
15310            ))),
15311            TypeVariant::DontHave => Ok(Self::DontHave(Box::new(
15312                serde::de::Deserialize::deserialize(r)?,
15313            ))),
15314            TypeVariant::SurveyMessageCommandType => Ok(Self::SurveyMessageCommandType(Box::new(
15315                serde::de::Deserialize::deserialize(r)?,
15316            ))),
15317            TypeVariant::SurveyMessageResponseType => Ok(Self::SurveyMessageResponseType(
15318                Box::new(serde::de::Deserialize::deserialize(r)?),
15319            )),
15320            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
15321                Ok(Self::TimeSlicedSurveyStartCollectingMessage(Box::new(
15322                    serde::de::Deserialize::deserialize(r)?,
15323                )))
15324            }
15325            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
15326                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
15327                    Box::new(serde::de::Deserialize::deserialize(r)?),
15328                ))
15329            }
15330            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
15331                Ok(Self::TimeSlicedSurveyStopCollectingMessage(Box::new(
15332                    serde::de::Deserialize::deserialize(r)?,
15333                )))
15334            }
15335            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
15336                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
15337                    serde::de::Deserialize::deserialize(r)?,
15338                )))
15339            }
15340            TypeVariant::SurveyRequestMessage => Ok(Self::SurveyRequestMessage(Box::new(
15341                serde::de::Deserialize::deserialize(r)?,
15342            ))),
15343            TypeVariant::TimeSlicedSurveyRequestMessage => {
15344                Ok(Self::TimeSlicedSurveyRequestMessage(Box::new(
15345                    serde::de::Deserialize::deserialize(r)?,
15346                )))
15347            }
15348            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
15349                Ok(Self::SignedTimeSlicedSurveyRequestMessage(Box::new(
15350                    serde::de::Deserialize::deserialize(r)?,
15351                )))
15352            }
15353            TypeVariant::EncryptedBody => Ok(Self::EncryptedBody(Box::new(
15354                serde::de::Deserialize::deserialize(r)?,
15355            ))),
15356            TypeVariant::SurveyResponseMessage => Ok(Self::SurveyResponseMessage(Box::new(
15357                serde::de::Deserialize::deserialize(r)?,
15358            ))),
15359            TypeVariant::TimeSlicedSurveyResponseMessage => {
15360                Ok(Self::TimeSlicedSurveyResponseMessage(Box::new(
15361                    serde::de::Deserialize::deserialize(r)?,
15362                )))
15363            }
15364            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
15365                Ok(Self::SignedTimeSlicedSurveyResponseMessage(Box::new(
15366                    serde::de::Deserialize::deserialize(r)?,
15367                )))
15368            }
15369            TypeVariant::PeerStats => Ok(Self::PeerStats(Box::new(
15370                serde::de::Deserialize::deserialize(r)?,
15371            ))),
15372            TypeVariant::TimeSlicedNodeData => Ok(Self::TimeSlicedNodeData(Box::new(
15373                serde::de::Deserialize::deserialize(r)?,
15374            ))),
15375            TypeVariant::TimeSlicedPeerData => Ok(Self::TimeSlicedPeerData(Box::new(
15376                serde::de::Deserialize::deserialize(r)?,
15377            ))),
15378            TypeVariant::TimeSlicedPeerDataList => Ok(Self::TimeSlicedPeerDataList(Box::new(
15379                serde::de::Deserialize::deserialize(r)?,
15380            ))),
15381            TypeVariant::TopologyResponseBodyV2 => Ok(Self::TopologyResponseBodyV2(Box::new(
15382                serde::de::Deserialize::deserialize(r)?,
15383            ))),
15384            TypeVariant::SurveyResponseBody => Ok(Self::SurveyResponseBody(Box::new(
15385                serde::de::Deserialize::deserialize(r)?,
15386            ))),
15387            TypeVariant::TxAdvertVector => Ok(Self::TxAdvertVector(Box::new(
15388                serde::de::Deserialize::deserialize(r)?,
15389            ))),
15390            TypeVariant::FloodAdvert => Ok(Self::FloodAdvert(Box::new(
15391                serde::de::Deserialize::deserialize(r)?,
15392            ))),
15393            TypeVariant::TxDemandVector => Ok(Self::TxDemandVector(Box::new(
15394                serde::de::Deserialize::deserialize(r)?,
15395            ))),
15396            TypeVariant::FloodDemand => Ok(Self::FloodDemand(Box::new(
15397                serde::de::Deserialize::deserialize(r)?,
15398            ))),
15399            TypeVariant::StellarMessage => Ok(Self::StellarMessage(Box::new(
15400                serde::de::Deserialize::deserialize(r)?,
15401            ))),
15402            TypeVariant::AuthenticatedMessage => Ok(Self::AuthenticatedMessage(Box::new(
15403                serde::de::Deserialize::deserialize(r)?,
15404            ))),
15405            TypeVariant::AuthenticatedMessageV0 => Ok(Self::AuthenticatedMessageV0(Box::new(
15406                serde::de::Deserialize::deserialize(r)?,
15407            ))),
15408            TypeVariant::LiquidityPoolParameters => Ok(Self::LiquidityPoolParameters(Box::new(
15409                serde::de::Deserialize::deserialize(r)?,
15410            ))),
15411            TypeVariant::MuxedAccount => Ok(Self::MuxedAccount(Box::new(
15412                serde::de::Deserialize::deserialize(r)?,
15413            ))),
15414            TypeVariant::MuxedAccountMed25519 => Ok(Self::MuxedAccountMed25519(Box::new(
15415                serde::de::Deserialize::deserialize(r)?,
15416            ))),
15417            TypeVariant::DecoratedSignature => Ok(Self::DecoratedSignature(Box::new(
15418                serde::de::Deserialize::deserialize(r)?,
15419            ))),
15420            TypeVariant::OperationType => Ok(Self::OperationType(Box::new(
15421                serde::de::Deserialize::deserialize(r)?,
15422            ))),
15423            TypeVariant::CreateAccountOp => Ok(Self::CreateAccountOp(Box::new(
15424                serde::de::Deserialize::deserialize(r)?,
15425            ))),
15426            TypeVariant::PaymentOp => Ok(Self::PaymentOp(Box::new(
15427                serde::de::Deserialize::deserialize(r)?,
15428            ))),
15429            TypeVariant::PathPaymentStrictReceiveOp => Ok(Self::PathPaymentStrictReceiveOp(
15430                Box::new(serde::de::Deserialize::deserialize(r)?),
15431            )),
15432            TypeVariant::PathPaymentStrictSendOp => Ok(Self::PathPaymentStrictSendOp(Box::new(
15433                serde::de::Deserialize::deserialize(r)?,
15434            ))),
15435            TypeVariant::ManageSellOfferOp => Ok(Self::ManageSellOfferOp(Box::new(
15436                serde::de::Deserialize::deserialize(r)?,
15437            ))),
15438            TypeVariant::ManageBuyOfferOp => Ok(Self::ManageBuyOfferOp(Box::new(
15439                serde::de::Deserialize::deserialize(r)?,
15440            ))),
15441            TypeVariant::CreatePassiveSellOfferOp => Ok(Self::CreatePassiveSellOfferOp(Box::new(
15442                serde::de::Deserialize::deserialize(r)?,
15443            ))),
15444            TypeVariant::SetOptionsOp => Ok(Self::SetOptionsOp(Box::new(
15445                serde::de::Deserialize::deserialize(r)?,
15446            ))),
15447            TypeVariant::ChangeTrustAsset => Ok(Self::ChangeTrustAsset(Box::new(
15448                serde::de::Deserialize::deserialize(r)?,
15449            ))),
15450            TypeVariant::ChangeTrustOp => Ok(Self::ChangeTrustOp(Box::new(
15451                serde::de::Deserialize::deserialize(r)?,
15452            ))),
15453            TypeVariant::AllowTrustOp => Ok(Self::AllowTrustOp(Box::new(
15454                serde::de::Deserialize::deserialize(r)?,
15455            ))),
15456            TypeVariant::ManageDataOp => Ok(Self::ManageDataOp(Box::new(
15457                serde::de::Deserialize::deserialize(r)?,
15458            ))),
15459            TypeVariant::BumpSequenceOp => Ok(Self::BumpSequenceOp(Box::new(
15460                serde::de::Deserialize::deserialize(r)?,
15461            ))),
15462            TypeVariant::CreateClaimableBalanceOp => Ok(Self::CreateClaimableBalanceOp(Box::new(
15463                serde::de::Deserialize::deserialize(r)?,
15464            ))),
15465            TypeVariant::ClaimClaimableBalanceOp => Ok(Self::ClaimClaimableBalanceOp(Box::new(
15466                serde::de::Deserialize::deserialize(r)?,
15467            ))),
15468            TypeVariant::BeginSponsoringFutureReservesOp => {
15469                Ok(Self::BeginSponsoringFutureReservesOp(Box::new(
15470                    serde::de::Deserialize::deserialize(r)?,
15471                )))
15472            }
15473            TypeVariant::RevokeSponsorshipType => Ok(Self::RevokeSponsorshipType(Box::new(
15474                serde::de::Deserialize::deserialize(r)?,
15475            ))),
15476            TypeVariant::RevokeSponsorshipOp => Ok(Self::RevokeSponsorshipOp(Box::new(
15477                serde::de::Deserialize::deserialize(r)?,
15478            ))),
15479            TypeVariant::RevokeSponsorshipOpSigner => Ok(Self::RevokeSponsorshipOpSigner(
15480                Box::new(serde::de::Deserialize::deserialize(r)?),
15481            )),
15482            TypeVariant::ClawbackOp => Ok(Self::ClawbackOp(Box::new(
15483                serde::de::Deserialize::deserialize(r)?,
15484            ))),
15485            TypeVariant::ClawbackClaimableBalanceOp => Ok(Self::ClawbackClaimableBalanceOp(
15486                Box::new(serde::de::Deserialize::deserialize(r)?),
15487            )),
15488            TypeVariant::SetTrustLineFlagsOp => Ok(Self::SetTrustLineFlagsOp(Box::new(
15489                serde::de::Deserialize::deserialize(r)?,
15490            ))),
15491            TypeVariant::LiquidityPoolDepositOp => Ok(Self::LiquidityPoolDepositOp(Box::new(
15492                serde::de::Deserialize::deserialize(r)?,
15493            ))),
15494            TypeVariant::LiquidityPoolWithdrawOp => Ok(Self::LiquidityPoolWithdrawOp(Box::new(
15495                serde::de::Deserialize::deserialize(r)?,
15496            ))),
15497            TypeVariant::HostFunctionType => Ok(Self::HostFunctionType(Box::new(
15498                serde::de::Deserialize::deserialize(r)?,
15499            ))),
15500            TypeVariant::ContractIdPreimageType => Ok(Self::ContractIdPreimageType(Box::new(
15501                serde::de::Deserialize::deserialize(r)?,
15502            ))),
15503            TypeVariant::ContractIdPreimage => Ok(Self::ContractIdPreimage(Box::new(
15504                serde::de::Deserialize::deserialize(r)?,
15505            ))),
15506            TypeVariant::ContractIdPreimageFromAddress => Ok(Self::ContractIdPreimageFromAddress(
15507                Box::new(serde::de::Deserialize::deserialize(r)?),
15508            )),
15509            TypeVariant::CreateContractArgs => Ok(Self::CreateContractArgs(Box::new(
15510                serde::de::Deserialize::deserialize(r)?,
15511            ))),
15512            TypeVariant::CreateContractArgsV2 => Ok(Self::CreateContractArgsV2(Box::new(
15513                serde::de::Deserialize::deserialize(r)?,
15514            ))),
15515            TypeVariant::InvokeContractArgs => Ok(Self::InvokeContractArgs(Box::new(
15516                serde::de::Deserialize::deserialize(r)?,
15517            ))),
15518            TypeVariant::HostFunction => Ok(Self::HostFunction(Box::new(
15519                serde::de::Deserialize::deserialize(r)?,
15520            ))),
15521            TypeVariant::SorobanAuthorizedFunctionType => Ok(Self::SorobanAuthorizedFunctionType(
15522                Box::new(serde::de::Deserialize::deserialize(r)?),
15523            )),
15524            TypeVariant::SorobanAuthorizedFunction => Ok(Self::SorobanAuthorizedFunction(
15525                Box::new(serde::de::Deserialize::deserialize(r)?),
15526            )),
15527            TypeVariant::SorobanAuthorizedInvocation => Ok(Self::SorobanAuthorizedInvocation(
15528                Box::new(serde::de::Deserialize::deserialize(r)?),
15529            )),
15530            TypeVariant::SorobanAddressCredentials => Ok(Self::SorobanAddressCredentials(
15531                Box::new(serde::de::Deserialize::deserialize(r)?),
15532            )),
15533            TypeVariant::SorobanDelegateSignature => Ok(Self::SorobanDelegateSignature(Box::new(
15534                serde::de::Deserialize::deserialize(r)?,
15535            ))),
15536            TypeVariant::SorobanAddressCredentialsWithDelegates => {
15537                Ok(Self::SorobanAddressCredentialsWithDelegates(Box::new(
15538                    serde::de::Deserialize::deserialize(r)?,
15539                )))
15540            }
15541            TypeVariant::SorobanCredentialsType => Ok(Self::SorobanCredentialsType(Box::new(
15542                serde::de::Deserialize::deserialize(r)?,
15543            ))),
15544            TypeVariant::SorobanCredentials => Ok(Self::SorobanCredentials(Box::new(
15545                serde::de::Deserialize::deserialize(r)?,
15546            ))),
15547            TypeVariant::SorobanAuthorizationEntry => Ok(Self::SorobanAuthorizationEntry(
15548                Box::new(serde::de::Deserialize::deserialize(r)?),
15549            )),
15550            TypeVariant::SorobanAuthorizationEntries => Ok(Self::SorobanAuthorizationEntries(
15551                Box::new(serde::de::Deserialize::deserialize(r)?),
15552            )),
15553            TypeVariant::InvokeHostFunctionOp => Ok(Self::InvokeHostFunctionOp(Box::new(
15554                serde::de::Deserialize::deserialize(r)?,
15555            ))),
15556            TypeVariant::ExtendFootprintTtlOp => Ok(Self::ExtendFootprintTtlOp(Box::new(
15557                serde::de::Deserialize::deserialize(r)?,
15558            ))),
15559            TypeVariant::RestoreFootprintOp => Ok(Self::RestoreFootprintOp(Box::new(
15560                serde::de::Deserialize::deserialize(r)?,
15561            ))),
15562            TypeVariant::Operation => Ok(Self::Operation(Box::new(
15563                serde::de::Deserialize::deserialize(r)?,
15564            ))),
15565            TypeVariant::OperationBody => Ok(Self::OperationBody(Box::new(
15566                serde::de::Deserialize::deserialize(r)?,
15567            ))),
15568            TypeVariant::HashIdPreimage => Ok(Self::HashIdPreimage(Box::new(
15569                serde::de::Deserialize::deserialize(r)?,
15570            ))),
15571            TypeVariant::HashIdPreimageOperationId => Ok(Self::HashIdPreimageOperationId(
15572                Box::new(serde::de::Deserialize::deserialize(r)?),
15573            )),
15574            TypeVariant::HashIdPreimageRevokeId => Ok(Self::HashIdPreimageRevokeId(Box::new(
15575                serde::de::Deserialize::deserialize(r)?,
15576            ))),
15577            TypeVariant::HashIdPreimageContractId => Ok(Self::HashIdPreimageContractId(Box::new(
15578                serde::de::Deserialize::deserialize(r)?,
15579            ))),
15580            TypeVariant::HashIdPreimageSorobanAuthorization => {
15581                Ok(Self::HashIdPreimageSorobanAuthorization(Box::new(
15582                    serde::de::Deserialize::deserialize(r)?,
15583                )))
15584            }
15585            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
15586                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
15587                    Box::new(serde::de::Deserialize::deserialize(r)?),
15588                ))
15589            }
15590            TypeVariant::MemoType => Ok(Self::MemoType(Box::new(
15591                serde::de::Deserialize::deserialize(r)?,
15592            ))),
15593            TypeVariant::Memo => Ok(Self::Memo(Box::new(serde::de::Deserialize::deserialize(
15594                r,
15595            )?))),
15596            TypeVariant::TimeBounds => Ok(Self::TimeBounds(Box::new(
15597                serde::de::Deserialize::deserialize(r)?,
15598            ))),
15599            TypeVariant::LedgerBounds => Ok(Self::LedgerBounds(Box::new(
15600                serde::de::Deserialize::deserialize(r)?,
15601            ))),
15602            TypeVariant::PreconditionsV2 => Ok(Self::PreconditionsV2(Box::new(
15603                serde::de::Deserialize::deserialize(r)?,
15604            ))),
15605            TypeVariant::PreconditionType => Ok(Self::PreconditionType(Box::new(
15606                serde::de::Deserialize::deserialize(r)?,
15607            ))),
15608            TypeVariant::Preconditions => Ok(Self::Preconditions(Box::new(
15609                serde::de::Deserialize::deserialize(r)?,
15610            ))),
15611            TypeVariant::LedgerFootprint => Ok(Self::LedgerFootprint(Box::new(
15612                serde::de::Deserialize::deserialize(r)?,
15613            ))),
15614            TypeVariant::SorobanResources => Ok(Self::SorobanResources(Box::new(
15615                serde::de::Deserialize::deserialize(r)?,
15616            ))),
15617            TypeVariant::SorobanResourcesExtV0 => Ok(Self::SorobanResourcesExtV0(Box::new(
15618                serde::de::Deserialize::deserialize(r)?,
15619            ))),
15620            TypeVariant::SorobanTransactionData => Ok(Self::SorobanTransactionData(Box::new(
15621                serde::de::Deserialize::deserialize(r)?,
15622            ))),
15623            TypeVariant::SorobanTransactionDataExt => Ok(Self::SorobanTransactionDataExt(
15624                Box::new(serde::de::Deserialize::deserialize(r)?),
15625            )),
15626            TypeVariant::TransactionV0 => Ok(Self::TransactionV0(Box::new(
15627                serde::de::Deserialize::deserialize(r)?,
15628            ))),
15629            TypeVariant::TransactionV0Ext => Ok(Self::TransactionV0Ext(Box::new(
15630                serde::de::Deserialize::deserialize(r)?,
15631            ))),
15632            TypeVariant::TransactionV0Envelope => Ok(Self::TransactionV0Envelope(Box::new(
15633                serde::de::Deserialize::deserialize(r)?,
15634            ))),
15635            TypeVariant::Transaction => Ok(Self::Transaction(Box::new(
15636                serde::de::Deserialize::deserialize(r)?,
15637            ))),
15638            TypeVariant::TransactionExt => Ok(Self::TransactionExt(Box::new(
15639                serde::de::Deserialize::deserialize(r)?,
15640            ))),
15641            TypeVariant::TransactionV1Envelope => Ok(Self::TransactionV1Envelope(Box::new(
15642                serde::de::Deserialize::deserialize(r)?,
15643            ))),
15644            TypeVariant::FeeBumpTransaction => Ok(Self::FeeBumpTransaction(Box::new(
15645                serde::de::Deserialize::deserialize(r)?,
15646            ))),
15647            TypeVariant::FeeBumpTransactionInnerTx => Ok(Self::FeeBumpTransactionInnerTx(
15648                Box::new(serde::de::Deserialize::deserialize(r)?),
15649            )),
15650            TypeVariant::FeeBumpTransactionExt => Ok(Self::FeeBumpTransactionExt(Box::new(
15651                serde::de::Deserialize::deserialize(r)?,
15652            ))),
15653            TypeVariant::FeeBumpTransactionEnvelope => Ok(Self::FeeBumpTransactionEnvelope(
15654                Box::new(serde::de::Deserialize::deserialize(r)?),
15655            )),
15656            TypeVariant::TransactionEnvelope => Ok(Self::TransactionEnvelope(Box::new(
15657                serde::de::Deserialize::deserialize(r)?,
15658            ))),
15659            TypeVariant::TransactionSignaturePayload => Ok(Self::TransactionSignaturePayload(
15660                Box::new(serde::de::Deserialize::deserialize(r)?),
15661            )),
15662            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
15663                Ok(Self::TransactionSignaturePayloadTaggedTransaction(
15664                    Box::new(serde::de::Deserialize::deserialize(r)?),
15665                ))
15666            }
15667            TypeVariant::ClaimAtomType => Ok(Self::ClaimAtomType(Box::new(
15668                serde::de::Deserialize::deserialize(r)?,
15669            ))),
15670            TypeVariant::ClaimOfferAtomV0 => Ok(Self::ClaimOfferAtomV0(Box::new(
15671                serde::de::Deserialize::deserialize(r)?,
15672            ))),
15673            TypeVariant::ClaimOfferAtom => Ok(Self::ClaimOfferAtom(Box::new(
15674                serde::de::Deserialize::deserialize(r)?,
15675            ))),
15676            TypeVariant::ClaimLiquidityAtom => Ok(Self::ClaimLiquidityAtom(Box::new(
15677                serde::de::Deserialize::deserialize(r)?,
15678            ))),
15679            TypeVariant::ClaimAtom => Ok(Self::ClaimAtom(Box::new(
15680                serde::de::Deserialize::deserialize(r)?,
15681            ))),
15682            TypeVariant::CreateAccountResultCode => Ok(Self::CreateAccountResultCode(Box::new(
15683                serde::de::Deserialize::deserialize(r)?,
15684            ))),
15685            TypeVariant::CreateAccountResult => Ok(Self::CreateAccountResult(Box::new(
15686                serde::de::Deserialize::deserialize(r)?,
15687            ))),
15688            TypeVariant::PaymentResultCode => Ok(Self::PaymentResultCode(Box::new(
15689                serde::de::Deserialize::deserialize(r)?,
15690            ))),
15691            TypeVariant::PaymentResult => Ok(Self::PaymentResult(Box::new(
15692                serde::de::Deserialize::deserialize(r)?,
15693            ))),
15694            TypeVariant::PathPaymentStrictReceiveResultCode => {
15695                Ok(Self::PathPaymentStrictReceiveResultCode(Box::new(
15696                    serde::de::Deserialize::deserialize(r)?,
15697                )))
15698            }
15699            TypeVariant::SimplePaymentResult => Ok(Self::SimplePaymentResult(Box::new(
15700                serde::de::Deserialize::deserialize(r)?,
15701            ))),
15702            TypeVariant::PathPaymentStrictReceiveResult => {
15703                Ok(Self::PathPaymentStrictReceiveResult(Box::new(
15704                    serde::de::Deserialize::deserialize(r)?,
15705                )))
15706            }
15707            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
15708                Ok(Self::PathPaymentStrictReceiveResultSuccess(Box::new(
15709                    serde::de::Deserialize::deserialize(r)?,
15710                )))
15711            }
15712            TypeVariant::PathPaymentStrictSendResultCode => {
15713                Ok(Self::PathPaymentStrictSendResultCode(Box::new(
15714                    serde::de::Deserialize::deserialize(r)?,
15715                )))
15716            }
15717            TypeVariant::PathPaymentStrictSendResult => Ok(Self::PathPaymentStrictSendResult(
15718                Box::new(serde::de::Deserialize::deserialize(r)?),
15719            )),
15720            TypeVariant::PathPaymentStrictSendResultSuccess => {
15721                Ok(Self::PathPaymentStrictSendResultSuccess(Box::new(
15722                    serde::de::Deserialize::deserialize(r)?,
15723                )))
15724            }
15725            TypeVariant::ManageSellOfferResultCode => Ok(Self::ManageSellOfferResultCode(
15726                Box::new(serde::de::Deserialize::deserialize(r)?),
15727            )),
15728            TypeVariant::ManageOfferEffect => Ok(Self::ManageOfferEffect(Box::new(
15729                serde::de::Deserialize::deserialize(r)?,
15730            ))),
15731            TypeVariant::ManageOfferSuccessResult => Ok(Self::ManageOfferSuccessResult(Box::new(
15732                serde::de::Deserialize::deserialize(r)?,
15733            ))),
15734            TypeVariant::ManageOfferSuccessResultOffer => Ok(Self::ManageOfferSuccessResultOffer(
15735                Box::new(serde::de::Deserialize::deserialize(r)?),
15736            )),
15737            TypeVariant::ManageSellOfferResult => Ok(Self::ManageSellOfferResult(Box::new(
15738                serde::de::Deserialize::deserialize(r)?,
15739            ))),
15740            TypeVariant::ManageBuyOfferResultCode => Ok(Self::ManageBuyOfferResultCode(Box::new(
15741                serde::de::Deserialize::deserialize(r)?,
15742            ))),
15743            TypeVariant::ManageBuyOfferResult => Ok(Self::ManageBuyOfferResult(Box::new(
15744                serde::de::Deserialize::deserialize(r)?,
15745            ))),
15746            TypeVariant::SetOptionsResultCode => Ok(Self::SetOptionsResultCode(Box::new(
15747                serde::de::Deserialize::deserialize(r)?,
15748            ))),
15749            TypeVariant::SetOptionsResult => Ok(Self::SetOptionsResult(Box::new(
15750                serde::de::Deserialize::deserialize(r)?,
15751            ))),
15752            TypeVariant::ChangeTrustResultCode => Ok(Self::ChangeTrustResultCode(Box::new(
15753                serde::de::Deserialize::deserialize(r)?,
15754            ))),
15755            TypeVariant::ChangeTrustResult => Ok(Self::ChangeTrustResult(Box::new(
15756                serde::de::Deserialize::deserialize(r)?,
15757            ))),
15758            TypeVariant::AllowTrustResultCode => Ok(Self::AllowTrustResultCode(Box::new(
15759                serde::de::Deserialize::deserialize(r)?,
15760            ))),
15761            TypeVariant::AllowTrustResult => Ok(Self::AllowTrustResult(Box::new(
15762                serde::de::Deserialize::deserialize(r)?,
15763            ))),
15764            TypeVariant::AccountMergeResultCode => Ok(Self::AccountMergeResultCode(Box::new(
15765                serde::de::Deserialize::deserialize(r)?,
15766            ))),
15767            TypeVariant::AccountMergeResult => Ok(Self::AccountMergeResult(Box::new(
15768                serde::de::Deserialize::deserialize(r)?,
15769            ))),
15770            TypeVariant::InflationResultCode => Ok(Self::InflationResultCode(Box::new(
15771                serde::de::Deserialize::deserialize(r)?,
15772            ))),
15773            TypeVariant::InflationPayout => Ok(Self::InflationPayout(Box::new(
15774                serde::de::Deserialize::deserialize(r)?,
15775            ))),
15776            TypeVariant::InflationResult => Ok(Self::InflationResult(Box::new(
15777                serde::de::Deserialize::deserialize(r)?,
15778            ))),
15779            TypeVariant::ManageDataResultCode => Ok(Self::ManageDataResultCode(Box::new(
15780                serde::de::Deserialize::deserialize(r)?,
15781            ))),
15782            TypeVariant::ManageDataResult => Ok(Self::ManageDataResult(Box::new(
15783                serde::de::Deserialize::deserialize(r)?,
15784            ))),
15785            TypeVariant::BumpSequenceResultCode => Ok(Self::BumpSequenceResultCode(Box::new(
15786                serde::de::Deserialize::deserialize(r)?,
15787            ))),
15788            TypeVariant::BumpSequenceResult => Ok(Self::BumpSequenceResult(Box::new(
15789                serde::de::Deserialize::deserialize(r)?,
15790            ))),
15791            TypeVariant::CreateClaimableBalanceResultCode => {
15792                Ok(Self::CreateClaimableBalanceResultCode(Box::new(
15793                    serde::de::Deserialize::deserialize(r)?,
15794                )))
15795            }
15796            TypeVariant::CreateClaimableBalanceResult => Ok(Self::CreateClaimableBalanceResult(
15797                Box::new(serde::de::Deserialize::deserialize(r)?),
15798            )),
15799            TypeVariant::ClaimClaimableBalanceResultCode => {
15800                Ok(Self::ClaimClaimableBalanceResultCode(Box::new(
15801                    serde::de::Deserialize::deserialize(r)?,
15802                )))
15803            }
15804            TypeVariant::ClaimClaimableBalanceResult => Ok(Self::ClaimClaimableBalanceResult(
15805                Box::new(serde::de::Deserialize::deserialize(r)?),
15806            )),
15807            TypeVariant::BeginSponsoringFutureReservesResultCode => {
15808                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
15809                    serde::de::Deserialize::deserialize(r)?,
15810                )))
15811            }
15812            TypeVariant::BeginSponsoringFutureReservesResult => {
15813                Ok(Self::BeginSponsoringFutureReservesResult(Box::new(
15814                    serde::de::Deserialize::deserialize(r)?,
15815                )))
15816            }
15817            TypeVariant::EndSponsoringFutureReservesResultCode => {
15818                Ok(Self::EndSponsoringFutureReservesResultCode(Box::new(
15819                    serde::de::Deserialize::deserialize(r)?,
15820                )))
15821            }
15822            TypeVariant::EndSponsoringFutureReservesResult => {
15823                Ok(Self::EndSponsoringFutureReservesResult(Box::new(
15824                    serde::de::Deserialize::deserialize(r)?,
15825                )))
15826            }
15827            TypeVariant::RevokeSponsorshipResultCode => Ok(Self::RevokeSponsorshipResultCode(
15828                Box::new(serde::de::Deserialize::deserialize(r)?),
15829            )),
15830            TypeVariant::RevokeSponsorshipResult => Ok(Self::RevokeSponsorshipResult(Box::new(
15831                serde::de::Deserialize::deserialize(r)?,
15832            ))),
15833            TypeVariant::ClawbackResultCode => Ok(Self::ClawbackResultCode(Box::new(
15834                serde::de::Deserialize::deserialize(r)?,
15835            ))),
15836            TypeVariant::ClawbackResult => Ok(Self::ClawbackResult(Box::new(
15837                serde::de::Deserialize::deserialize(r)?,
15838            ))),
15839            TypeVariant::ClawbackClaimableBalanceResultCode => {
15840                Ok(Self::ClawbackClaimableBalanceResultCode(Box::new(
15841                    serde::de::Deserialize::deserialize(r)?,
15842                )))
15843            }
15844            TypeVariant::ClawbackClaimableBalanceResult => {
15845                Ok(Self::ClawbackClaimableBalanceResult(Box::new(
15846                    serde::de::Deserialize::deserialize(r)?,
15847                )))
15848            }
15849            TypeVariant::SetTrustLineFlagsResultCode => Ok(Self::SetTrustLineFlagsResultCode(
15850                Box::new(serde::de::Deserialize::deserialize(r)?),
15851            )),
15852            TypeVariant::SetTrustLineFlagsResult => Ok(Self::SetTrustLineFlagsResult(Box::new(
15853                serde::de::Deserialize::deserialize(r)?,
15854            ))),
15855            TypeVariant::LiquidityPoolDepositResultCode => {
15856                Ok(Self::LiquidityPoolDepositResultCode(Box::new(
15857                    serde::de::Deserialize::deserialize(r)?,
15858                )))
15859            }
15860            TypeVariant::LiquidityPoolDepositResult => Ok(Self::LiquidityPoolDepositResult(
15861                Box::new(serde::de::Deserialize::deserialize(r)?),
15862            )),
15863            TypeVariant::LiquidityPoolWithdrawResultCode => {
15864                Ok(Self::LiquidityPoolWithdrawResultCode(Box::new(
15865                    serde::de::Deserialize::deserialize(r)?,
15866                )))
15867            }
15868            TypeVariant::LiquidityPoolWithdrawResult => Ok(Self::LiquidityPoolWithdrawResult(
15869                Box::new(serde::de::Deserialize::deserialize(r)?),
15870            )),
15871            TypeVariant::InvokeHostFunctionResultCode => Ok(Self::InvokeHostFunctionResultCode(
15872                Box::new(serde::de::Deserialize::deserialize(r)?),
15873            )),
15874            TypeVariant::InvokeHostFunctionResult => Ok(Self::InvokeHostFunctionResult(Box::new(
15875                serde::de::Deserialize::deserialize(r)?,
15876            ))),
15877            TypeVariant::ExtendFootprintTtlResultCode => Ok(Self::ExtendFootprintTtlResultCode(
15878                Box::new(serde::de::Deserialize::deserialize(r)?),
15879            )),
15880            TypeVariant::ExtendFootprintTtlResult => Ok(Self::ExtendFootprintTtlResult(Box::new(
15881                serde::de::Deserialize::deserialize(r)?,
15882            ))),
15883            TypeVariant::RestoreFootprintResultCode => Ok(Self::RestoreFootprintResultCode(
15884                Box::new(serde::de::Deserialize::deserialize(r)?),
15885            )),
15886            TypeVariant::RestoreFootprintResult => Ok(Self::RestoreFootprintResult(Box::new(
15887                serde::de::Deserialize::deserialize(r)?,
15888            ))),
15889            TypeVariant::OperationResultCode => Ok(Self::OperationResultCode(Box::new(
15890                serde::de::Deserialize::deserialize(r)?,
15891            ))),
15892            TypeVariant::OperationResult => Ok(Self::OperationResult(Box::new(
15893                serde::de::Deserialize::deserialize(r)?,
15894            ))),
15895            TypeVariant::OperationResultTr => Ok(Self::OperationResultTr(Box::new(
15896                serde::de::Deserialize::deserialize(r)?,
15897            ))),
15898            TypeVariant::TransactionResultCode => Ok(Self::TransactionResultCode(Box::new(
15899                serde::de::Deserialize::deserialize(r)?,
15900            ))),
15901            TypeVariant::InnerTransactionResult => Ok(Self::InnerTransactionResult(Box::new(
15902                serde::de::Deserialize::deserialize(r)?,
15903            ))),
15904            TypeVariant::InnerTransactionResultResult => Ok(Self::InnerTransactionResultResult(
15905                Box::new(serde::de::Deserialize::deserialize(r)?),
15906            )),
15907            TypeVariant::InnerTransactionResultExt => Ok(Self::InnerTransactionResultExt(
15908                Box::new(serde::de::Deserialize::deserialize(r)?),
15909            )),
15910            TypeVariant::InnerTransactionResultPair => Ok(Self::InnerTransactionResultPair(
15911                Box::new(serde::de::Deserialize::deserialize(r)?),
15912            )),
15913            TypeVariant::TransactionResult => Ok(Self::TransactionResult(Box::new(
15914                serde::de::Deserialize::deserialize(r)?,
15915            ))),
15916            TypeVariant::TransactionResultResult => Ok(Self::TransactionResultResult(Box::new(
15917                serde::de::Deserialize::deserialize(r)?,
15918            ))),
15919            TypeVariant::TransactionResultExt => Ok(Self::TransactionResultExt(Box::new(
15920                serde::de::Deserialize::deserialize(r)?,
15921            ))),
15922            TypeVariant::Hash => Ok(Self::Hash(Box::new(serde::de::Deserialize::deserialize(
15923                r,
15924            )?))),
15925            TypeVariant::Uint256 => Ok(Self::Uint256(Box::new(
15926                serde::de::Deserialize::deserialize(r)?,
15927            ))),
15928            TypeVariant::Uint32 => Ok(Self::Uint32(Box::new(serde::de::Deserialize::deserialize(
15929                r,
15930            )?))),
15931            TypeVariant::Int32 => Ok(Self::Int32(Box::new(serde::de::Deserialize::deserialize(
15932                r,
15933            )?))),
15934            TypeVariant::Uint64 => Ok(Self::Uint64(Box::new(serde::de::Deserialize::deserialize(
15935                r,
15936            )?))),
15937            TypeVariant::Int64 => Ok(Self::Int64(Box::new(serde::de::Deserialize::deserialize(
15938                r,
15939            )?))),
15940            TypeVariant::TimePoint => Ok(Self::TimePoint(Box::new(
15941                serde::de::Deserialize::deserialize(r)?,
15942            ))),
15943            TypeVariant::Duration => Ok(Self::Duration(Box::new(
15944                serde::de::Deserialize::deserialize(r)?,
15945            ))),
15946            TypeVariant::ExtensionPoint => Ok(Self::ExtensionPoint(Box::new(
15947                serde::de::Deserialize::deserialize(r)?,
15948            ))),
15949            TypeVariant::CryptoKeyType => Ok(Self::CryptoKeyType(Box::new(
15950                serde::de::Deserialize::deserialize(r)?,
15951            ))),
15952            TypeVariant::PublicKeyType => Ok(Self::PublicKeyType(Box::new(
15953                serde::de::Deserialize::deserialize(r)?,
15954            ))),
15955            TypeVariant::SignerKeyType => Ok(Self::SignerKeyType(Box::new(
15956                serde::de::Deserialize::deserialize(r)?,
15957            ))),
15958            TypeVariant::PublicKey => Ok(Self::PublicKey(Box::new(
15959                serde::de::Deserialize::deserialize(r)?,
15960            ))),
15961            TypeVariant::SignerKey => Ok(Self::SignerKey(Box::new(
15962                serde::de::Deserialize::deserialize(r)?,
15963            ))),
15964            TypeVariant::SignerKeyEd25519SignedPayload => Ok(Self::SignerKeyEd25519SignedPayload(
15965                Box::new(serde::de::Deserialize::deserialize(r)?),
15966            )),
15967            TypeVariant::Signature => Ok(Self::Signature(Box::new(
15968                serde::de::Deserialize::deserialize(r)?,
15969            ))),
15970            TypeVariant::SignatureHint => Ok(Self::SignatureHint(Box::new(
15971                serde::de::Deserialize::deserialize(r)?,
15972            ))),
15973            TypeVariant::NodeId => Ok(Self::NodeId(Box::new(serde::de::Deserialize::deserialize(
15974                r,
15975            )?))),
15976            TypeVariant::AccountId => Ok(Self::AccountId(Box::new(
15977                serde::de::Deserialize::deserialize(r)?,
15978            ))),
15979            TypeVariant::ContractId => Ok(Self::ContractId(Box::new(
15980                serde::de::Deserialize::deserialize(r)?,
15981            ))),
15982            TypeVariant::Curve25519Secret => Ok(Self::Curve25519Secret(Box::new(
15983                serde::de::Deserialize::deserialize(r)?,
15984            ))),
15985            TypeVariant::Curve25519Public => Ok(Self::Curve25519Public(Box::new(
15986                serde::de::Deserialize::deserialize(r)?,
15987            ))),
15988            TypeVariant::HmacSha256Key => Ok(Self::HmacSha256Key(Box::new(
15989                serde::de::Deserialize::deserialize(r)?,
15990            ))),
15991            TypeVariant::HmacSha256Mac => Ok(Self::HmacSha256Mac(Box::new(
15992                serde::de::Deserialize::deserialize(r)?,
15993            ))),
15994            TypeVariant::ShortHashSeed => Ok(Self::ShortHashSeed(Box::new(
15995                serde::de::Deserialize::deserialize(r)?,
15996            ))),
15997            TypeVariant::BinaryFuseFilterType => Ok(Self::BinaryFuseFilterType(Box::new(
15998                serde::de::Deserialize::deserialize(r)?,
15999            ))),
16000            TypeVariant::SerializedBinaryFuseFilter => Ok(Self::SerializedBinaryFuseFilter(
16001                Box::new(serde::de::Deserialize::deserialize(r)?),
16002            )),
16003            TypeVariant::PoolId => Ok(Self::PoolId(Box::new(serde::de::Deserialize::deserialize(
16004                r,
16005            )?))),
16006            TypeVariant::ClaimableBalanceIdType => Ok(Self::ClaimableBalanceIdType(Box::new(
16007                serde::de::Deserialize::deserialize(r)?,
16008            ))),
16009            TypeVariant::ClaimableBalanceId => Ok(Self::ClaimableBalanceId(Box::new(
16010                serde::de::Deserialize::deserialize(r)?,
16011            ))),
16012            #[cfg(feature = "test_feature")]
16013            TypeVariant::TestNextType => Ok(Self::TestNextType(Box::new(
16014                serde::de::Deserialize::deserialize(r)?,
16015            ))),
16016        }
16017    }
16018
16019    #[cfg(feature = "arbitrary")]
16020    #[allow(clippy::too_many_lines)]
16021    pub fn arbitrary(v: TypeVariant, u: &mut arbitrary::Unstructured<'_>) -> Result<Self, Error> {
16022        match v {
16023            TypeVariant::Value => Ok(Self::Value(Box::new(Value::arbitrary(u)?))),
16024            TypeVariant::ScpBallot => Ok(Self::ScpBallot(Box::new(ScpBallot::arbitrary(u)?))),
16025            TypeVariant::ScpStatementType => Ok(Self::ScpStatementType(Box::new(
16026                ScpStatementType::arbitrary(u)?,
16027            ))),
16028            TypeVariant::ScpNomination => {
16029                Ok(Self::ScpNomination(Box::new(ScpNomination::arbitrary(u)?)))
16030            }
16031            TypeVariant::ScpStatement => {
16032                Ok(Self::ScpStatement(Box::new(ScpStatement::arbitrary(u)?)))
16033            }
16034            TypeVariant::ScpStatementPledges => Ok(Self::ScpStatementPledges(Box::new(
16035                ScpStatementPledges::arbitrary(u)?,
16036            ))),
16037            TypeVariant::ScpStatementPrepare => Ok(Self::ScpStatementPrepare(Box::new(
16038                ScpStatementPrepare::arbitrary(u)?,
16039            ))),
16040            TypeVariant::ScpStatementConfirm => Ok(Self::ScpStatementConfirm(Box::new(
16041                ScpStatementConfirm::arbitrary(u)?,
16042            ))),
16043            TypeVariant::ScpStatementExternalize => Ok(Self::ScpStatementExternalize(Box::new(
16044                ScpStatementExternalize::arbitrary(u)?,
16045            ))),
16046            TypeVariant::ScpEnvelope => Ok(Self::ScpEnvelope(Box::new(ScpEnvelope::arbitrary(u)?))),
16047            TypeVariant::ScpQuorumSet => {
16048                Ok(Self::ScpQuorumSet(Box::new(ScpQuorumSet::arbitrary(u)?)))
16049            }
16050            TypeVariant::EncodedLedgerKey => Ok(Self::EncodedLedgerKey(Box::new(
16051                EncodedLedgerKey::arbitrary(u)?,
16052            ))),
16053            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
16054                Ok(Self::ConfigSettingContractExecutionLanesV0(Box::new(
16055                    ConfigSettingContractExecutionLanesV0::arbitrary(u)?,
16056                )))
16057            }
16058            TypeVariant::ConfigSettingContractComputeV0 => {
16059                Ok(Self::ConfigSettingContractComputeV0(Box::new(
16060                    ConfigSettingContractComputeV0::arbitrary(u)?,
16061                )))
16062            }
16063            TypeVariant::ConfigSettingContractParallelComputeV0 => {
16064                Ok(Self::ConfigSettingContractParallelComputeV0(Box::new(
16065                    ConfigSettingContractParallelComputeV0::arbitrary(u)?,
16066                )))
16067            }
16068            TypeVariant::ConfigSettingContractLedgerCostV0 => {
16069                Ok(Self::ConfigSettingContractLedgerCostV0(Box::new(
16070                    ConfigSettingContractLedgerCostV0::arbitrary(u)?,
16071                )))
16072            }
16073            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
16074                Ok(Self::ConfigSettingContractLedgerCostExtV0(Box::new(
16075                    ConfigSettingContractLedgerCostExtV0::arbitrary(u)?,
16076                )))
16077            }
16078            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
16079                Ok(Self::ConfigSettingContractHistoricalDataV0(Box::new(
16080                    ConfigSettingContractHistoricalDataV0::arbitrary(u)?,
16081                )))
16082            }
16083            TypeVariant::ConfigSettingContractEventsV0 => Ok(Self::ConfigSettingContractEventsV0(
16084                Box::new(ConfigSettingContractEventsV0::arbitrary(u)?),
16085            )),
16086            TypeVariant::ConfigSettingContractBandwidthV0 => {
16087                Ok(Self::ConfigSettingContractBandwidthV0(Box::new(
16088                    ConfigSettingContractBandwidthV0::arbitrary(u)?,
16089                )))
16090            }
16091            TypeVariant::ContractCostType => Ok(Self::ContractCostType(Box::new(
16092                ContractCostType::arbitrary(u)?,
16093            ))),
16094            TypeVariant::ContractCostParamEntry => Ok(Self::ContractCostParamEntry(Box::new(
16095                ContractCostParamEntry::arbitrary(u)?,
16096            ))),
16097            TypeVariant::StateArchivalSettings => Ok(Self::StateArchivalSettings(Box::new(
16098                StateArchivalSettings::arbitrary(u)?,
16099            ))),
16100            TypeVariant::EvictionIterator => Ok(Self::EvictionIterator(Box::new(
16101                EvictionIterator::arbitrary(u)?,
16102            ))),
16103            TypeVariant::ConfigSettingScpTiming => Ok(Self::ConfigSettingScpTiming(Box::new(
16104                ConfigSettingScpTiming::arbitrary(u)?,
16105            ))),
16106            TypeVariant::FrozenLedgerKeys => Ok(Self::FrozenLedgerKeys(Box::new(
16107                FrozenLedgerKeys::arbitrary(u)?,
16108            ))),
16109            TypeVariant::FrozenLedgerKeysDelta => Ok(Self::FrozenLedgerKeysDelta(Box::new(
16110                FrozenLedgerKeysDelta::arbitrary(u)?,
16111            ))),
16112            TypeVariant::FreezeBypassTxs => Ok(Self::FreezeBypassTxs(Box::new(
16113                FreezeBypassTxs::arbitrary(u)?,
16114            ))),
16115            TypeVariant::FreezeBypassTxsDelta => Ok(Self::FreezeBypassTxsDelta(Box::new(
16116                FreezeBypassTxsDelta::arbitrary(u)?,
16117            ))),
16118            TypeVariant::ContractCostParams => Ok(Self::ContractCostParams(Box::new(
16119                ContractCostParams::arbitrary(u)?,
16120            ))),
16121            TypeVariant::ConfigSettingId => Ok(Self::ConfigSettingId(Box::new(
16122                ConfigSettingId::arbitrary(u)?,
16123            ))),
16124            TypeVariant::ConfigSettingEntry => Ok(Self::ConfigSettingEntry(Box::new(
16125                ConfigSettingEntry::arbitrary(u)?,
16126            ))),
16127            TypeVariant::ScEnvMetaKind => {
16128                Ok(Self::ScEnvMetaKind(Box::new(ScEnvMetaKind::arbitrary(u)?)))
16129            }
16130            TypeVariant::ScEnvMetaEntry => Ok(Self::ScEnvMetaEntry(Box::new(
16131                ScEnvMetaEntry::arbitrary(u)?,
16132            ))),
16133            TypeVariant::ScEnvMetaEntryInterfaceVersion => {
16134                Ok(Self::ScEnvMetaEntryInterfaceVersion(Box::new(
16135                    ScEnvMetaEntryInterfaceVersion::arbitrary(u)?,
16136                )))
16137            }
16138            TypeVariant::ScMetaV0 => Ok(Self::ScMetaV0(Box::new(ScMetaV0::arbitrary(u)?))),
16139            TypeVariant::ScMetaKind => Ok(Self::ScMetaKind(Box::new(ScMetaKind::arbitrary(u)?))),
16140            TypeVariant::ScMetaEntry => Ok(Self::ScMetaEntry(Box::new(ScMetaEntry::arbitrary(u)?))),
16141            TypeVariant::ScSpecType => Ok(Self::ScSpecType(Box::new(ScSpecType::arbitrary(u)?))),
16142            TypeVariant::ScSpecTypeOption => Ok(Self::ScSpecTypeOption(Box::new(
16143                ScSpecTypeOption::arbitrary(u)?,
16144            ))),
16145            TypeVariant::ScSpecTypeResult => Ok(Self::ScSpecTypeResult(Box::new(
16146                ScSpecTypeResult::arbitrary(u)?,
16147            ))),
16148            TypeVariant::ScSpecTypeVec => {
16149                Ok(Self::ScSpecTypeVec(Box::new(ScSpecTypeVec::arbitrary(u)?)))
16150            }
16151            TypeVariant::ScSpecTypeMap => {
16152                Ok(Self::ScSpecTypeMap(Box::new(ScSpecTypeMap::arbitrary(u)?)))
16153            }
16154            TypeVariant::ScSpecTypeTuple => Ok(Self::ScSpecTypeTuple(Box::new(
16155                ScSpecTypeTuple::arbitrary(u)?,
16156            ))),
16157            TypeVariant::ScSpecTypeBytesN => Ok(Self::ScSpecTypeBytesN(Box::new(
16158                ScSpecTypeBytesN::arbitrary(u)?,
16159            ))),
16160            TypeVariant::ScSpecTypeUdt => {
16161                Ok(Self::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::arbitrary(u)?)))
16162            }
16163            TypeVariant::ScSpecTypeDef => {
16164                Ok(Self::ScSpecTypeDef(Box::new(ScSpecTypeDef::arbitrary(u)?)))
16165            }
16166            TypeVariant::ScSpecUdtStructFieldV0 => Ok(Self::ScSpecUdtStructFieldV0(Box::new(
16167                ScSpecUdtStructFieldV0::arbitrary(u)?,
16168            ))),
16169            TypeVariant::ScSpecUdtStructV0 => Ok(Self::ScSpecUdtStructV0(Box::new(
16170                ScSpecUdtStructV0::arbitrary(u)?,
16171            ))),
16172            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
16173                ScSpecUdtUnionCaseVoidV0::arbitrary(u)?,
16174            ))),
16175            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Ok(Self::ScSpecUdtUnionCaseTupleV0(
16176                Box::new(ScSpecUdtUnionCaseTupleV0::arbitrary(u)?),
16177            )),
16178            TypeVariant::ScSpecUdtUnionCaseV0Kind => Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
16179                ScSpecUdtUnionCaseV0Kind::arbitrary(u)?,
16180            ))),
16181            TypeVariant::ScSpecUdtUnionCaseV0 => Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
16182                ScSpecUdtUnionCaseV0::arbitrary(u)?,
16183            ))),
16184            TypeVariant::ScSpecUdtUnionV0 => Ok(Self::ScSpecUdtUnionV0(Box::new(
16185                ScSpecUdtUnionV0::arbitrary(u)?,
16186            ))),
16187            TypeVariant::ScSpecUdtEnumCaseV0 => Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
16188                ScSpecUdtEnumCaseV0::arbitrary(u)?,
16189            ))),
16190            TypeVariant::ScSpecUdtEnumV0 => Ok(Self::ScSpecUdtEnumV0(Box::new(
16191                ScSpecUdtEnumV0::arbitrary(u)?,
16192            ))),
16193            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
16194                ScSpecUdtErrorEnumCaseV0::arbitrary(u)?,
16195            ))),
16196            TypeVariant::ScSpecUdtErrorEnumV0 => Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
16197                ScSpecUdtErrorEnumV0::arbitrary(u)?,
16198            ))),
16199            TypeVariant::ScSpecFunctionInputV0 => Ok(Self::ScSpecFunctionInputV0(Box::new(
16200                ScSpecFunctionInputV0::arbitrary(u)?,
16201            ))),
16202            TypeVariant::ScSpecFunctionV0 => Ok(Self::ScSpecFunctionV0(Box::new(
16203                ScSpecFunctionV0::arbitrary(u)?,
16204            ))),
16205            TypeVariant::ScSpecEventParamLocationV0 => Ok(Self::ScSpecEventParamLocationV0(
16206                Box::new(ScSpecEventParamLocationV0::arbitrary(u)?),
16207            )),
16208            TypeVariant::ScSpecEventParamV0 => Ok(Self::ScSpecEventParamV0(Box::new(
16209                ScSpecEventParamV0::arbitrary(u)?,
16210            ))),
16211            TypeVariant::ScSpecEventDataFormat => Ok(Self::ScSpecEventDataFormat(Box::new(
16212                ScSpecEventDataFormat::arbitrary(u)?,
16213            ))),
16214            TypeVariant::ScSpecEventV0 => {
16215                Ok(Self::ScSpecEventV0(Box::new(ScSpecEventV0::arbitrary(u)?)))
16216            }
16217            TypeVariant::ScSpecEntryKind => Ok(Self::ScSpecEntryKind(Box::new(
16218                ScSpecEntryKind::arbitrary(u)?,
16219            ))),
16220            TypeVariant::ScSpecEntry => Ok(Self::ScSpecEntry(Box::new(ScSpecEntry::arbitrary(u)?))),
16221            TypeVariant::ScValType => Ok(Self::ScValType(Box::new(ScValType::arbitrary(u)?))),
16222            TypeVariant::ScErrorType => Ok(Self::ScErrorType(Box::new(ScErrorType::arbitrary(u)?))),
16223            TypeVariant::ScErrorCode => Ok(Self::ScErrorCode(Box::new(ScErrorCode::arbitrary(u)?))),
16224            TypeVariant::ScError => Ok(Self::ScError(Box::new(ScError::arbitrary(u)?))),
16225            TypeVariant::UInt128Parts => {
16226                Ok(Self::UInt128Parts(Box::new(UInt128Parts::arbitrary(u)?)))
16227            }
16228            TypeVariant::Int128Parts => Ok(Self::Int128Parts(Box::new(Int128Parts::arbitrary(u)?))),
16229            TypeVariant::UInt256Parts => {
16230                Ok(Self::UInt256Parts(Box::new(UInt256Parts::arbitrary(u)?)))
16231            }
16232            TypeVariant::Int256Parts => Ok(Self::Int256Parts(Box::new(Int256Parts::arbitrary(u)?))),
16233            TypeVariant::ContractExecutableType => Ok(Self::ContractExecutableType(Box::new(
16234                ContractExecutableType::arbitrary(u)?,
16235            ))),
16236            TypeVariant::ContractExecutable => Ok(Self::ContractExecutable(Box::new(
16237                ContractExecutable::arbitrary(u)?,
16238            ))),
16239            TypeVariant::ScAddressType => {
16240                Ok(Self::ScAddressType(Box::new(ScAddressType::arbitrary(u)?)))
16241            }
16242            TypeVariant::MuxedEd25519Account => Ok(Self::MuxedEd25519Account(Box::new(
16243                MuxedEd25519Account::arbitrary(u)?,
16244            ))),
16245            TypeVariant::ScAddress => Ok(Self::ScAddress(Box::new(ScAddress::arbitrary(u)?))),
16246            TypeVariant::ScVec => Ok(Self::ScVec(Box::new(ScVec::arbitrary(u)?))),
16247            TypeVariant::ScMap => Ok(Self::ScMap(Box::new(ScMap::arbitrary(u)?))),
16248            TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(ScBytes::arbitrary(u)?))),
16249            TypeVariant::ScString => Ok(Self::ScString(Box::new(ScString::arbitrary(u)?))),
16250            TypeVariant::ScSymbol => Ok(Self::ScSymbol(Box::new(ScSymbol::arbitrary(u)?))),
16251            TypeVariant::ScNonceKey => Ok(Self::ScNonceKey(Box::new(ScNonceKey::arbitrary(u)?))),
16252            TypeVariant::ScContractInstance => Ok(Self::ScContractInstance(Box::new(
16253                ScContractInstance::arbitrary(u)?,
16254            ))),
16255            TypeVariant::ScVal => Ok(Self::ScVal(Box::new(ScVal::arbitrary(u)?))),
16256            TypeVariant::ScMapEntry => Ok(Self::ScMapEntry(Box::new(ScMapEntry::arbitrary(u)?))),
16257            TypeVariant::LedgerCloseMetaBatch => Ok(Self::LedgerCloseMetaBatch(Box::new(
16258                LedgerCloseMetaBatch::arbitrary(u)?,
16259            ))),
16260            TypeVariant::StoredTransactionSet => Ok(Self::StoredTransactionSet(Box::new(
16261                StoredTransactionSet::arbitrary(u)?,
16262            ))),
16263            TypeVariant::StoredDebugTransactionSet => Ok(Self::StoredDebugTransactionSet(
16264                Box::new(StoredDebugTransactionSet::arbitrary(u)?),
16265            )),
16266            TypeVariant::PersistedScpStateV0 => Ok(Self::PersistedScpStateV0(Box::new(
16267                PersistedScpStateV0::arbitrary(u)?,
16268            ))),
16269            TypeVariant::PersistedScpStateV1 => Ok(Self::PersistedScpStateV1(Box::new(
16270                PersistedScpStateV1::arbitrary(u)?,
16271            ))),
16272            TypeVariant::PersistedScpState => Ok(Self::PersistedScpState(Box::new(
16273                PersistedScpState::arbitrary(u)?,
16274            ))),
16275            TypeVariant::Thresholds => Ok(Self::Thresholds(Box::new(Thresholds::arbitrary(u)?))),
16276            TypeVariant::String32 => Ok(Self::String32(Box::new(String32::arbitrary(u)?))),
16277            TypeVariant::String64 => Ok(Self::String64(Box::new(String64::arbitrary(u)?))),
16278            TypeVariant::SequenceNumber => Ok(Self::SequenceNumber(Box::new(
16279                SequenceNumber::arbitrary(u)?,
16280            ))),
16281            TypeVariant::DataValue => Ok(Self::DataValue(Box::new(DataValue::arbitrary(u)?))),
16282            TypeVariant::AssetCode4 => Ok(Self::AssetCode4(Box::new(AssetCode4::arbitrary(u)?))),
16283            TypeVariant::AssetCode12 => Ok(Self::AssetCode12(Box::new(AssetCode12::arbitrary(u)?))),
16284            TypeVariant::AssetType => Ok(Self::AssetType(Box::new(AssetType::arbitrary(u)?))),
16285            TypeVariant::AssetCode => Ok(Self::AssetCode(Box::new(AssetCode::arbitrary(u)?))),
16286            TypeVariant::AlphaNum4 => Ok(Self::AlphaNum4(Box::new(AlphaNum4::arbitrary(u)?))),
16287            TypeVariant::AlphaNum12 => Ok(Self::AlphaNum12(Box::new(AlphaNum12::arbitrary(u)?))),
16288            TypeVariant::Asset => Ok(Self::Asset(Box::new(Asset::arbitrary(u)?))),
16289            TypeVariant::Price => Ok(Self::Price(Box::new(Price::arbitrary(u)?))),
16290            TypeVariant::Liabilities => Ok(Self::Liabilities(Box::new(Liabilities::arbitrary(u)?))),
16291            TypeVariant::ThresholdIndexes => Ok(Self::ThresholdIndexes(Box::new(
16292                ThresholdIndexes::arbitrary(u)?,
16293            ))),
16294            TypeVariant::LedgerEntryType => Ok(Self::LedgerEntryType(Box::new(
16295                LedgerEntryType::arbitrary(u)?,
16296            ))),
16297            TypeVariant::Signer => Ok(Self::Signer(Box::new(Signer::arbitrary(u)?))),
16298            TypeVariant::AccountFlags => {
16299                Ok(Self::AccountFlags(Box::new(AccountFlags::arbitrary(u)?)))
16300            }
16301            TypeVariant::SponsorshipDescriptor => Ok(Self::SponsorshipDescriptor(Box::new(
16302                SponsorshipDescriptor::arbitrary(u)?,
16303            ))),
16304            TypeVariant::AccountEntryExtensionV3 => Ok(Self::AccountEntryExtensionV3(Box::new(
16305                AccountEntryExtensionV3::arbitrary(u)?,
16306            ))),
16307            TypeVariant::AccountEntryExtensionV2 => Ok(Self::AccountEntryExtensionV2(Box::new(
16308                AccountEntryExtensionV2::arbitrary(u)?,
16309            ))),
16310            TypeVariant::AccountEntryExtensionV2Ext => Ok(Self::AccountEntryExtensionV2Ext(
16311                Box::new(AccountEntryExtensionV2Ext::arbitrary(u)?),
16312            )),
16313            TypeVariant::AccountEntryExtensionV1 => Ok(Self::AccountEntryExtensionV1(Box::new(
16314                AccountEntryExtensionV1::arbitrary(u)?,
16315            ))),
16316            TypeVariant::AccountEntryExtensionV1Ext => Ok(Self::AccountEntryExtensionV1Ext(
16317                Box::new(AccountEntryExtensionV1Ext::arbitrary(u)?),
16318            )),
16319            TypeVariant::AccountEntry => {
16320                Ok(Self::AccountEntry(Box::new(AccountEntry::arbitrary(u)?)))
16321            }
16322            TypeVariant::AccountEntryExt => Ok(Self::AccountEntryExt(Box::new(
16323                AccountEntryExt::arbitrary(u)?,
16324            ))),
16325            TypeVariant::TrustLineFlags => Ok(Self::TrustLineFlags(Box::new(
16326                TrustLineFlags::arbitrary(u)?,
16327            ))),
16328            TypeVariant::LiquidityPoolType => Ok(Self::LiquidityPoolType(Box::new(
16329                LiquidityPoolType::arbitrary(u)?,
16330            ))),
16331            TypeVariant::TrustLineAsset => Ok(Self::TrustLineAsset(Box::new(
16332                TrustLineAsset::arbitrary(u)?,
16333            ))),
16334            TypeVariant::TrustLineEntryExtensionV2 => Ok(Self::TrustLineEntryExtensionV2(
16335                Box::new(TrustLineEntryExtensionV2::arbitrary(u)?),
16336            )),
16337            TypeVariant::TrustLineEntryExtensionV2Ext => Ok(Self::TrustLineEntryExtensionV2Ext(
16338                Box::new(TrustLineEntryExtensionV2Ext::arbitrary(u)?),
16339            )),
16340            TypeVariant::TrustLineEntry => Ok(Self::TrustLineEntry(Box::new(
16341                TrustLineEntry::arbitrary(u)?,
16342            ))),
16343            TypeVariant::TrustLineEntryExt => Ok(Self::TrustLineEntryExt(Box::new(
16344                TrustLineEntryExt::arbitrary(u)?,
16345            ))),
16346            TypeVariant::TrustLineEntryV1 => Ok(Self::TrustLineEntryV1(Box::new(
16347                TrustLineEntryV1::arbitrary(u)?,
16348            ))),
16349            TypeVariant::TrustLineEntryV1Ext => Ok(Self::TrustLineEntryV1Ext(Box::new(
16350                TrustLineEntryV1Ext::arbitrary(u)?,
16351            ))),
16352            TypeVariant::OfferEntryFlags => Ok(Self::OfferEntryFlags(Box::new(
16353                OfferEntryFlags::arbitrary(u)?,
16354            ))),
16355            TypeVariant::OfferEntry => Ok(Self::OfferEntry(Box::new(OfferEntry::arbitrary(u)?))),
16356            TypeVariant::OfferEntryExt => {
16357                Ok(Self::OfferEntryExt(Box::new(OfferEntryExt::arbitrary(u)?)))
16358            }
16359            TypeVariant::DataEntry => Ok(Self::DataEntry(Box::new(DataEntry::arbitrary(u)?))),
16360            TypeVariant::DataEntryExt => {
16361                Ok(Self::DataEntryExt(Box::new(DataEntryExt::arbitrary(u)?)))
16362            }
16363            TypeVariant::ClaimPredicateType => Ok(Self::ClaimPredicateType(Box::new(
16364                ClaimPredicateType::arbitrary(u)?,
16365            ))),
16366            TypeVariant::ClaimPredicate => Ok(Self::ClaimPredicate(Box::new(
16367                ClaimPredicate::arbitrary(u)?,
16368            ))),
16369            TypeVariant::ClaimantType => {
16370                Ok(Self::ClaimantType(Box::new(ClaimantType::arbitrary(u)?)))
16371            }
16372            TypeVariant::Claimant => Ok(Self::Claimant(Box::new(Claimant::arbitrary(u)?))),
16373            TypeVariant::ClaimantV0 => Ok(Self::ClaimantV0(Box::new(ClaimantV0::arbitrary(u)?))),
16374            TypeVariant::ClaimableBalanceFlags => Ok(Self::ClaimableBalanceFlags(Box::new(
16375                ClaimableBalanceFlags::arbitrary(u)?,
16376            ))),
16377            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
16378                Ok(Self::ClaimableBalanceEntryExtensionV1(Box::new(
16379                    ClaimableBalanceEntryExtensionV1::arbitrary(u)?,
16380                )))
16381            }
16382            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
16383                Ok(Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(
16384                    ClaimableBalanceEntryExtensionV1Ext::arbitrary(u)?,
16385                )))
16386            }
16387            TypeVariant::ClaimableBalanceEntry => Ok(Self::ClaimableBalanceEntry(Box::new(
16388                ClaimableBalanceEntry::arbitrary(u)?,
16389            ))),
16390            TypeVariant::ClaimableBalanceEntryExt => Ok(Self::ClaimableBalanceEntryExt(Box::new(
16391                ClaimableBalanceEntryExt::arbitrary(u)?,
16392            ))),
16393            TypeVariant::LiquidityPoolConstantProductParameters => {
16394                Ok(Self::LiquidityPoolConstantProductParameters(Box::new(
16395                    LiquidityPoolConstantProductParameters::arbitrary(u)?,
16396                )))
16397            }
16398            TypeVariant::LiquidityPoolEntry => Ok(Self::LiquidityPoolEntry(Box::new(
16399                LiquidityPoolEntry::arbitrary(u)?,
16400            ))),
16401            TypeVariant::LiquidityPoolEntryBody => Ok(Self::LiquidityPoolEntryBody(Box::new(
16402                LiquidityPoolEntryBody::arbitrary(u)?,
16403            ))),
16404            TypeVariant::LiquidityPoolEntryConstantProduct => {
16405                Ok(Self::LiquidityPoolEntryConstantProduct(Box::new(
16406                    LiquidityPoolEntryConstantProduct::arbitrary(u)?,
16407                )))
16408            }
16409            TypeVariant::ContractDataDurability => Ok(Self::ContractDataDurability(Box::new(
16410                ContractDataDurability::arbitrary(u)?,
16411            ))),
16412            TypeVariant::ContractDataEntry => Ok(Self::ContractDataEntry(Box::new(
16413                ContractDataEntry::arbitrary(u)?,
16414            ))),
16415            TypeVariant::ContractCodeCostInputs => Ok(Self::ContractCodeCostInputs(Box::new(
16416                ContractCodeCostInputs::arbitrary(u)?,
16417            ))),
16418            TypeVariant::ContractCodeEntry => Ok(Self::ContractCodeEntry(Box::new(
16419                ContractCodeEntry::arbitrary(u)?,
16420            ))),
16421            TypeVariant::ContractCodeEntryExt => Ok(Self::ContractCodeEntryExt(Box::new(
16422                ContractCodeEntryExt::arbitrary(u)?,
16423            ))),
16424            TypeVariant::ContractCodeEntryV1 => Ok(Self::ContractCodeEntryV1(Box::new(
16425                ContractCodeEntryV1::arbitrary(u)?,
16426            ))),
16427            TypeVariant::TtlEntry => Ok(Self::TtlEntry(Box::new(TtlEntry::arbitrary(u)?))),
16428            TypeVariant::LedgerEntryExtensionV1 => Ok(Self::LedgerEntryExtensionV1(Box::new(
16429                LedgerEntryExtensionV1::arbitrary(u)?,
16430            ))),
16431            TypeVariant::LedgerEntryExtensionV1Ext => Ok(Self::LedgerEntryExtensionV1Ext(
16432                Box::new(LedgerEntryExtensionV1Ext::arbitrary(u)?),
16433            )),
16434            TypeVariant::LedgerEntry => Ok(Self::LedgerEntry(Box::new(LedgerEntry::arbitrary(u)?))),
16435            TypeVariant::LedgerEntryData => Ok(Self::LedgerEntryData(Box::new(
16436                LedgerEntryData::arbitrary(u)?,
16437            ))),
16438            TypeVariant::LedgerEntryExt => Ok(Self::LedgerEntryExt(Box::new(
16439                LedgerEntryExt::arbitrary(u)?,
16440            ))),
16441            TypeVariant::LedgerKey => Ok(Self::LedgerKey(Box::new(LedgerKey::arbitrary(u)?))),
16442            TypeVariant::LedgerKeyAccount => Ok(Self::LedgerKeyAccount(Box::new(
16443                LedgerKeyAccount::arbitrary(u)?,
16444            ))),
16445            TypeVariant::LedgerKeyTrustLine => Ok(Self::LedgerKeyTrustLine(Box::new(
16446                LedgerKeyTrustLine::arbitrary(u)?,
16447            ))),
16448            TypeVariant::LedgerKeyOffer => Ok(Self::LedgerKeyOffer(Box::new(
16449                LedgerKeyOffer::arbitrary(u)?,
16450            ))),
16451            TypeVariant::LedgerKeyData => {
16452                Ok(Self::LedgerKeyData(Box::new(LedgerKeyData::arbitrary(u)?)))
16453            }
16454            TypeVariant::LedgerKeyClaimableBalance => Ok(Self::LedgerKeyClaimableBalance(
16455                Box::new(LedgerKeyClaimableBalance::arbitrary(u)?),
16456            )),
16457            TypeVariant::LedgerKeyLiquidityPool => Ok(Self::LedgerKeyLiquidityPool(Box::new(
16458                LedgerKeyLiquidityPool::arbitrary(u)?,
16459            ))),
16460            TypeVariant::LedgerKeyContractData => Ok(Self::LedgerKeyContractData(Box::new(
16461                LedgerKeyContractData::arbitrary(u)?,
16462            ))),
16463            TypeVariant::LedgerKeyContractCode => Ok(Self::LedgerKeyContractCode(Box::new(
16464                LedgerKeyContractCode::arbitrary(u)?,
16465            ))),
16466            TypeVariant::LedgerKeyConfigSetting => Ok(Self::LedgerKeyConfigSetting(Box::new(
16467                LedgerKeyConfigSetting::arbitrary(u)?,
16468            ))),
16469            TypeVariant::LedgerKeyTtl => {
16470                Ok(Self::LedgerKeyTtl(Box::new(LedgerKeyTtl::arbitrary(u)?)))
16471            }
16472            TypeVariant::EnvelopeType => {
16473                Ok(Self::EnvelopeType(Box::new(EnvelopeType::arbitrary(u)?)))
16474            }
16475            TypeVariant::BucketListType => Ok(Self::BucketListType(Box::new(
16476                BucketListType::arbitrary(u)?,
16477            ))),
16478            TypeVariant::BucketEntryType => Ok(Self::BucketEntryType(Box::new(
16479                BucketEntryType::arbitrary(u)?,
16480            ))),
16481            TypeVariant::HotArchiveBucketEntryType => Ok(Self::HotArchiveBucketEntryType(
16482                Box::new(HotArchiveBucketEntryType::arbitrary(u)?),
16483            )),
16484            TypeVariant::BucketMetadata => Ok(Self::BucketMetadata(Box::new(
16485                BucketMetadata::arbitrary(u)?,
16486            ))),
16487            TypeVariant::BucketMetadataExt => Ok(Self::BucketMetadataExt(Box::new(
16488                BucketMetadataExt::arbitrary(u)?,
16489            ))),
16490            TypeVariant::BucketEntry => Ok(Self::BucketEntry(Box::new(BucketEntry::arbitrary(u)?))),
16491            TypeVariant::HotArchiveBucketEntry => Ok(Self::HotArchiveBucketEntry(Box::new(
16492                HotArchiveBucketEntry::arbitrary(u)?,
16493            ))),
16494            TypeVariant::UpgradeType => Ok(Self::UpgradeType(Box::new(UpgradeType::arbitrary(u)?))),
16495            TypeVariant::StellarValueType => Ok(Self::StellarValueType(Box::new(
16496                StellarValueType::arbitrary(u)?,
16497            ))),
16498            TypeVariant::LedgerCloseValueSignature => Ok(Self::LedgerCloseValueSignature(
16499                Box::new(LedgerCloseValueSignature::arbitrary(u)?),
16500            )),
16501            TypeVariant::StellarValue => {
16502                Ok(Self::StellarValue(Box::new(StellarValue::arbitrary(u)?)))
16503            }
16504            TypeVariant::StellarValueExt => Ok(Self::StellarValueExt(Box::new(
16505                StellarValueExt::arbitrary(u)?,
16506            ))),
16507            #[cfg(feature = "cap_0083")]
16508            TypeVariant::StellarValueProposedValue => Ok(Self::StellarValueProposedValue(
16509                Box::new(StellarValueProposedValue::arbitrary(u)?),
16510            )),
16511            TypeVariant::LedgerHeaderFlags => Ok(Self::LedgerHeaderFlags(Box::new(
16512                LedgerHeaderFlags::arbitrary(u)?,
16513            ))),
16514            TypeVariant::LedgerHeaderExtensionV1 => Ok(Self::LedgerHeaderExtensionV1(Box::new(
16515                LedgerHeaderExtensionV1::arbitrary(u)?,
16516            ))),
16517            TypeVariant::LedgerHeaderExtensionV1Ext => Ok(Self::LedgerHeaderExtensionV1Ext(
16518                Box::new(LedgerHeaderExtensionV1Ext::arbitrary(u)?),
16519            )),
16520            TypeVariant::LedgerHeader => {
16521                Ok(Self::LedgerHeader(Box::new(LedgerHeader::arbitrary(u)?)))
16522            }
16523            TypeVariant::LedgerHeaderExt => Ok(Self::LedgerHeaderExt(Box::new(
16524                LedgerHeaderExt::arbitrary(u)?,
16525            ))),
16526            TypeVariant::LedgerUpgradeType => Ok(Self::LedgerUpgradeType(Box::new(
16527                LedgerUpgradeType::arbitrary(u)?,
16528            ))),
16529            TypeVariant::ConfigUpgradeSetKey => Ok(Self::ConfigUpgradeSetKey(Box::new(
16530                ConfigUpgradeSetKey::arbitrary(u)?,
16531            ))),
16532            TypeVariant::LedgerUpgrade => {
16533                Ok(Self::LedgerUpgrade(Box::new(LedgerUpgrade::arbitrary(u)?)))
16534            }
16535            TypeVariant::ConfigUpgradeSet => Ok(Self::ConfigUpgradeSet(Box::new(
16536                ConfigUpgradeSet::arbitrary(u)?,
16537            ))),
16538            TypeVariant::TxSetComponentType => Ok(Self::TxSetComponentType(Box::new(
16539                TxSetComponentType::arbitrary(u)?,
16540            ))),
16541            TypeVariant::DependentTxCluster => Ok(Self::DependentTxCluster(Box::new(
16542                DependentTxCluster::arbitrary(u)?,
16543            ))),
16544            TypeVariant::ParallelTxExecutionStage => Ok(Self::ParallelTxExecutionStage(Box::new(
16545                ParallelTxExecutionStage::arbitrary(u)?,
16546            ))),
16547            TypeVariant::ParallelTxsComponent => Ok(Self::ParallelTxsComponent(Box::new(
16548                ParallelTxsComponent::arbitrary(u)?,
16549            ))),
16550            TypeVariant::TxSetComponent => Ok(Self::TxSetComponent(Box::new(
16551                TxSetComponent::arbitrary(u)?,
16552            ))),
16553            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
16554                Ok(Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(
16555                    TxSetComponentTxsMaybeDiscountedFee::arbitrary(u)?,
16556                )))
16557            }
16558            TypeVariant::TransactionPhase => Ok(Self::TransactionPhase(Box::new(
16559                TransactionPhase::arbitrary(u)?,
16560            ))),
16561            TypeVariant::TransactionSet => Ok(Self::TransactionSet(Box::new(
16562                TransactionSet::arbitrary(u)?,
16563            ))),
16564            TypeVariant::TransactionSetV1 => Ok(Self::TransactionSetV1(Box::new(
16565                TransactionSetV1::arbitrary(u)?,
16566            ))),
16567            TypeVariant::GeneralizedTransactionSet => Ok(Self::GeneralizedTransactionSet(
16568                Box::new(GeneralizedTransactionSet::arbitrary(u)?),
16569            )),
16570            TypeVariant::TransactionResultPair => Ok(Self::TransactionResultPair(Box::new(
16571                TransactionResultPair::arbitrary(u)?,
16572            ))),
16573            TypeVariant::TransactionResultSet => Ok(Self::TransactionResultSet(Box::new(
16574                TransactionResultSet::arbitrary(u)?,
16575            ))),
16576            TypeVariant::TransactionHistoryEntry => Ok(Self::TransactionHistoryEntry(Box::new(
16577                TransactionHistoryEntry::arbitrary(u)?,
16578            ))),
16579            TypeVariant::TransactionHistoryEntryExt => Ok(Self::TransactionHistoryEntryExt(
16580                Box::new(TransactionHistoryEntryExt::arbitrary(u)?),
16581            )),
16582            TypeVariant::TransactionHistoryResultEntry => Ok(Self::TransactionHistoryResultEntry(
16583                Box::new(TransactionHistoryResultEntry::arbitrary(u)?),
16584            )),
16585            TypeVariant::TransactionHistoryResultEntryExt => {
16586                Ok(Self::TransactionHistoryResultEntryExt(Box::new(
16587                    TransactionHistoryResultEntryExt::arbitrary(u)?,
16588                )))
16589            }
16590            TypeVariant::LedgerHeaderHistoryEntry => Ok(Self::LedgerHeaderHistoryEntry(Box::new(
16591                LedgerHeaderHistoryEntry::arbitrary(u)?,
16592            ))),
16593            TypeVariant::LedgerHeaderHistoryEntryExt => Ok(Self::LedgerHeaderHistoryEntryExt(
16594                Box::new(LedgerHeaderHistoryEntryExt::arbitrary(u)?),
16595            )),
16596            TypeVariant::LedgerScpMessages => Ok(Self::LedgerScpMessages(Box::new(
16597                LedgerScpMessages::arbitrary(u)?,
16598            ))),
16599            TypeVariant::ScpHistoryEntryV0 => Ok(Self::ScpHistoryEntryV0(Box::new(
16600                ScpHistoryEntryV0::arbitrary(u)?,
16601            ))),
16602            TypeVariant::ScpHistoryEntry => Ok(Self::ScpHistoryEntry(Box::new(
16603                ScpHistoryEntry::arbitrary(u)?,
16604            ))),
16605            TypeVariant::LedgerEntryChangeType => Ok(Self::LedgerEntryChangeType(Box::new(
16606                LedgerEntryChangeType::arbitrary(u)?,
16607            ))),
16608            TypeVariant::LedgerEntryChange => Ok(Self::LedgerEntryChange(Box::new(
16609                LedgerEntryChange::arbitrary(u)?,
16610            ))),
16611            TypeVariant::LedgerEntryChanges => Ok(Self::LedgerEntryChanges(Box::new(
16612                LedgerEntryChanges::arbitrary(u)?,
16613            ))),
16614            TypeVariant::OperationMeta => {
16615                Ok(Self::OperationMeta(Box::new(OperationMeta::arbitrary(u)?)))
16616            }
16617            TypeVariant::TransactionMetaV1 => Ok(Self::TransactionMetaV1(Box::new(
16618                TransactionMetaV1::arbitrary(u)?,
16619            ))),
16620            TypeVariant::TransactionMetaV2 => Ok(Self::TransactionMetaV2(Box::new(
16621                TransactionMetaV2::arbitrary(u)?,
16622            ))),
16623            TypeVariant::ContractEventType => Ok(Self::ContractEventType(Box::new(
16624                ContractEventType::arbitrary(u)?,
16625            ))),
16626            TypeVariant::ContractEvent => {
16627                Ok(Self::ContractEvent(Box::new(ContractEvent::arbitrary(u)?)))
16628            }
16629            TypeVariant::ContractEventBody => Ok(Self::ContractEventBody(Box::new(
16630                ContractEventBody::arbitrary(u)?,
16631            ))),
16632            TypeVariant::ContractEventV0 => Ok(Self::ContractEventV0(Box::new(
16633                ContractEventV0::arbitrary(u)?,
16634            ))),
16635            TypeVariant::DiagnosticEvent => Ok(Self::DiagnosticEvent(Box::new(
16636                DiagnosticEvent::arbitrary(u)?,
16637            ))),
16638            TypeVariant::SorobanTransactionMetaExtV1 => Ok(Self::SorobanTransactionMetaExtV1(
16639                Box::new(SorobanTransactionMetaExtV1::arbitrary(u)?),
16640            )),
16641            TypeVariant::SorobanTransactionMetaExt => Ok(Self::SorobanTransactionMetaExt(
16642                Box::new(SorobanTransactionMetaExt::arbitrary(u)?),
16643            )),
16644            TypeVariant::SorobanTransactionMeta => Ok(Self::SorobanTransactionMeta(Box::new(
16645                SorobanTransactionMeta::arbitrary(u)?,
16646            ))),
16647            TypeVariant::TransactionMetaV3 => Ok(Self::TransactionMetaV3(Box::new(
16648                TransactionMetaV3::arbitrary(u)?,
16649            ))),
16650            TypeVariant::OperationMetaV2 => Ok(Self::OperationMetaV2(Box::new(
16651                OperationMetaV2::arbitrary(u)?,
16652            ))),
16653            TypeVariant::SorobanTransactionMetaV2 => Ok(Self::SorobanTransactionMetaV2(Box::new(
16654                SorobanTransactionMetaV2::arbitrary(u)?,
16655            ))),
16656            TypeVariant::TransactionEventStage => Ok(Self::TransactionEventStage(Box::new(
16657                TransactionEventStage::arbitrary(u)?,
16658            ))),
16659            TypeVariant::TransactionEvent => Ok(Self::TransactionEvent(Box::new(
16660                TransactionEvent::arbitrary(u)?,
16661            ))),
16662            TypeVariant::TransactionMetaV4 => Ok(Self::TransactionMetaV4(Box::new(
16663                TransactionMetaV4::arbitrary(u)?,
16664            ))),
16665            TypeVariant::InvokeHostFunctionSuccessPreImage => {
16666                Ok(Self::InvokeHostFunctionSuccessPreImage(Box::new(
16667                    InvokeHostFunctionSuccessPreImage::arbitrary(u)?,
16668                )))
16669            }
16670            TypeVariant::TransactionMeta => Ok(Self::TransactionMeta(Box::new(
16671                TransactionMeta::arbitrary(u)?,
16672            ))),
16673            TypeVariant::TransactionResultMeta => Ok(Self::TransactionResultMeta(Box::new(
16674                TransactionResultMeta::arbitrary(u)?,
16675            ))),
16676            TypeVariant::TransactionResultMetaV1 => Ok(Self::TransactionResultMetaV1(Box::new(
16677                TransactionResultMetaV1::arbitrary(u)?,
16678            ))),
16679            TypeVariant::UpgradeEntryMeta => Ok(Self::UpgradeEntryMeta(Box::new(
16680                UpgradeEntryMeta::arbitrary(u)?,
16681            ))),
16682            TypeVariant::LedgerCloseMetaV0 => Ok(Self::LedgerCloseMetaV0(Box::new(
16683                LedgerCloseMetaV0::arbitrary(u)?,
16684            ))),
16685            TypeVariant::LedgerCloseMetaExtV1 => Ok(Self::LedgerCloseMetaExtV1(Box::new(
16686                LedgerCloseMetaExtV1::arbitrary(u)?,
16687            ))),
16688            TypeVariant::LedgerCloseMetaExt => Ok(Self::LedgerCloseMetaExt(Box::new(
16689                LedgerCloseMetaExt::arbitrary(u)?,
16690            ))),
16691            TypeVariant::LedgerCloseMetaV1 => Ok(Self::LedgerCloseMetaV1(Box::new(
16692                LedgerCloseMetaV1::arbitrary(u)?,
16693            ))),
16694            TypeVariant::LedgerCloseMetaV2 => Ok(Self::LedgerCloseMetaV2(Box::new(
16695                LedgerCloseMetaV2::arbitrary(u)?,
16696            ))),
16697            TypeVariant::LedgerCloseMeta => Ok(Self::LedgerCloseMeta(Box::new(
16698                LedgerCloseMeta::arbitrary(u)?,
16699            ))),
16700            TypeVariant::ErrorCode => Ok(Self::ErrorCode(Box::new(ErrorCode::arbitrary(u)?))),
16701            TypeVariant::SError => Ok(Self::SError(Box::new(SError::arbitrary(u)?))),
16702            TypeVariant::SendMore => Ok(Self::SendMore(Box::new(SendMore::arbitrary(u)?))),
16703            TypeVariant::SendMoreExtended => Ok(Self::SendMoreExtended(Box::new(
16704                SendMoreExtended::arbitrary(u)?,
16705            ))),
16706            TypeVariant::AuthCert => Ok(Self::AuthCert(Box::new(AuthCert::arbitrary(u)?))),
16707            TypeVariant::Hello => Ok(Self::Hello(Box::new(Hello::arbitrary(u)?))),
16708            TypeVariant::Auth => Ok(Self::Auth(Box::new(Auth::arbitrary(u)?))),
16709            TypeVariant::IpAddrType => Ok(Self::IpAddrType(Box::new(IpAddrType::arbitrary(u)?))),
16710            TypeVariant::PeerAddress => Ok(Self::PeerAddress(Box::new(PeerAddress::arbitrary(u)?))),
16711            TypeVariant::PeerAddressIp => {
16712                Ok(Self::PeerAddressIp(Box::new(PeerAddressIp::arbitrary(u)?)))
16713            }
16714            TypeVariant::MessageType => Ok(Self::MessageType(Box::new(MessageType::arbitrary(u)?))),
16715            TypeVariant::DontHave => Ok(Self::DontHave(Box::new(DontHave::arbitrary(u)?))),
16716            TypeVariant::SurveyMessageCommandType => Ok(Self::SurveyMessageCommandType(Box::new(
16717                SurveyMessageCommandType::arbitrary(u)?,
16718            ))),
16719            TypeVariant::SurveyMessageResponseType => Ok(Self::SurveyMessageResponseType(
16720                Box::new(SurveyMessageResponseType::arbitrary(u)?),
16721            )),
16722            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
16723                Ok(Self::TimeSlicedSurveyStartCollectingMessage(Box::new(
16724                    TimeSlicedSurveyStartCollectingMessage::arbitrary(u)?,
16725                )))
16726            }
16727            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
16728                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
16729                    Box::new(SignedTimeSlicedSurveyStartCollectingMessage::arbitrary(u)?),
16730                ))
16731            }
16732            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
16733                Ok(Self::TimeSlicedSurveyStopCollectingMessage(Box::new(
16734                    TimeSlicedSurveyStopCollectingMessage::arbitrary(u)?,
16735                )))
16736            }
16737            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
16738                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
16739                    SignedTimeSlicedSurveyStopCollectingMessage::arbitrary(u)?,
16740                )))
16741            }
16742            TypeVariant::SurveyRequestMessage => Ok(Self::SurveyRequestMessage(Box::new(
16743                SurveyRequestMessage::arbitrary(u)?,
16744            ))),
16745            TypeVariant::TimeSlicedSurveyRequestMessage => {
16746                Ok(Self::TimeSlicedSurveyRequestMessage(Box::new(
16747                    TimeSlicedSurveyRequestMessage::arbitrary(u)?,
16748                )))
16749            }
16750            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
16751                Ok(Self::SignedTimeSlicedSurveyRequestMessage(Box::new(
16752                    SignedTimeSlicedSurveyRequestMessage::arbitrary(u)?,
16753                )))
16754            }
16755            TypeVariant::EncryptedBody => {
16756                Ok(Self::EncryptedBody(Box::new(EncryptedBody::arbitrary(u)?)))
16757            }
16758            TypeVariant::SurveyResponseMessage => Ok(Self::SurveyResponseMessage(Box::new(
16759                SurveyResponseMessage::arbitrary(u)?,
16760            ))),
16761            TypeVariant::TimeSlicedSurveyResponseMessage => {
16762                Ok(Self::TimeSlicedSurveyResponseMessage(Box::new(
16763                    TimeSlicedSurveyResponseMessage::arbitrary(u)?,
16764                )))
16765            }
16766            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
16767                Ok(Self::SignedTimeSlicedSurveyResponseMessage(Box::new(
16768                    SignedTimeSlicedSurveyResponseMessage::arbitrary(u)?,
16769                )))
16770            }
16771            TypeVariant::PeerStats => Ok(Self::PeerStats(Box::new(PeerStats::arbitrary(u)?))),
16772            TypeVariant::TimeSlicedNodeData => Ok(Self::TimeSlicedNodeData(Box::new(
16773                TimeSlicedNodeData::arbitrary(u)?,
16774            ))),
16775            TypeVariant::TimeSlicedPeerData => Ok(Self::TimeSlicedPeerData(Box::new(
16776                TimeSlicedPeerData::arbitrary(u)?,
16777            ))),
16778            TypeVariant::TimeSlicedPeerDataList => Ok(Self::TimeSlicedPeerDataList(Box::new(
16779                TimeSlicedPeerDataList::arbitrary(u)?,
16780            ))),
16781            TypeVariant::TopologyResponseBodyV2 => Ok(Self::TopologyResponseBodyV2(Box::new(
16782                TopologyResponseBodyV2::arbitrary(u)?,
16783            ))),
16784            TypeVariant::SurveyResponseBody => Ok(Self::SurveyResponseBody(Box::new(
16785                SurveyResponseBody::arbitrary(u)?,
16786            ))),
16787            TypeVariant::TxAdvertVector => Ok(Self::TxAdvertVector(Box::new(
16788                TxAdvertVector::arbitrary(u)?,
16789            ))),
16790            TypeVariant::FloodAdvert => Ok(Self::FloodAdvert(Box::new(FloodAdvert::arbitrary(u)?))),
16791            TypeVariant::TxDemandVector => Ok(Self::TxDemandVector(Box::new(
16792                TxDemandVector::arbitrary(u)?,
16793            ))),
16794            TypeVariant::FloodDemand => Ok(Self::FloodDemand(Box::new(FloodDemand::arbitrary(u)?))),
16795            TypeVariant::StellarMessage => Ok(Self::StellarMessage(Box::new(
16796                StellarMessage::arbitrary(u)?,
16797            ))),
16798            TypeVariant::AuthenticatedMessage => Ok(Self::AuthenticatedMessage(Box::new(
16799                AuthenticatedMessage::arbitrary(u)?,
16800            ))),
16801            TypeVariant::AuthenticatedMessageV0 => Ok(Self::AuthenticatedMessageV0(Box::new(
16802                AuthenticatedMessageV0::arbitrary(u)?,
16803            ))),
16804            TypeVariant::LiquidityPoolParameters => Ok(Self::LiquidityPoolParameters(Box::new(
16805                LiquidityPoolParameters::arbitrary(u)?,
16806            ))),
16807            TypeVariant::MuxedAccount => {
16808                Ok(Self::MuxedAccount(Box::new(MuxedAccount::arbitrary(u)?)))
16809            }
16810            TypeVariant::MuxedAccountMed25519 => Ok(Self::MuxedAccountMed25519(Box::new(
16811                MuxedAccountMed25519::arbitrary(u)?,
16812            ))),
16813            TypeVariant::DecoratedSignature => Ok(Self::DecoratedSignature(Box::new(
16814                DecoratedSignature::arbitrary(u)?,
16815            ))),
16816            TypeVariant::OperationType => {
16817                Ok(Self::OperationType(Box::new(OperationType::arbitrary(u)?)))
16818            }
16819            TypeVariant::CreateAccountOp => Ok(Self::CreateAccountOp(Box::new(
16820                CreateAccountOp::arbitrary(u)?,
16821            ))),
16822            TypeVariant::PaymentOp => Ok(Self::PaymentOp(Box::new(PaymentOp::arbitrary(u)?))),
16823            TypeVariant::PathPaymentStrictReceiveOp => Ok(Self::PathPaymentStrictReceiveOp(
16824                Box::new(PathPaymentStrictReceiveOp::arbitrary(u)?),
16825            )),
16826            TypeVariant::PathPaymentStrictSendOp => Ok(Self::PathPaymentStrictSendOp(Box::new(
16827                PathPaymentStrictSendOp::arbitrary(u)?,
16828            ))),
16829            TypeVariant::ManageSellOfferOp => Ok(Self::ManageSellOfferOp(Box::new(
16830                ManageSellOfferOp::arbitrary(u)?,
16831            ))),
16832            TypeVariant::ManageBuyOfferOp => Ok(Self::ManageBuyOfferOp(Box::new(
16833                ManageBuyOfferOp::arbitrary(u)?,
16834            ))),
16835            TypeVariant::CreatePassiveSellOfferOp => Ok(Self::CreatePassiveSellOfferOp(Box::new(
16836                CreatePassiveSellOfferOp::arbitrary(u)?,
16837            ))),
16838            TypeVariant::SetOptionsOp => {
16839                Ok(Self::SetOptionsOp(Box::new(SetOptionsOp::arbitrary(u)?)))
16840            }
16841            TypeVariant::ChangeTrustAsset => Ok(Self::ChangeTrustAsset(Box::new(
16842                ChangeTrustAsset::arbitrary(u)?,
16843            ))),
16844            TypeVariant::ChangeTrustOp => {
16845                Ok(Self::ChangeTrustOp(Box::new(ChangeTrustOp::arbitrary(u)?)))
16846            }
16847            TypeVariant::AllowTrustOp => {
16848                Ok(Self::AllowTrustOp(Box::new(AllowTrustOp::arbitrary(u)?)))
16849            }
16850            TypeVariant::ManageDataOp => {
16851                Ok(Self::ManageDataOp(Box::new(ManageDataOp::arbitrary(u)?)))
16852            }
16853            TypeVariant::BumpSequenceOp => Ok(Self::BumpSequenceOp(Box::new(
16854                BumpSequenceOp::arbitrary(u)?,
16855            ))),
16856            TypeVariant::CreateClaimableBalanceOp => Ok(Self::CreateClaimableBalanceOp(Box::new(
16857                CreateClaimableBalanceOp::arbitrary(u)?,
16858            ))),
16859            TypeVariant::ClaimClaimableBalanceOp => Ok(Self::ClaimClaimableBalanceOp(Box::new(
16860                ClaimClaimableBalanceOp::arbitrary(u)?,
16861            ))),
16862            TypeVariant::BeginSponsoringFutureReservesOp => {
16863                Ok(Self::BeginSponsoringFutureReservesOp(Box::new(
16864                    BeginSponsoringFutureReservesOp::arbitrary(u)?,
16865                )))
16866            }
16867            TypeVariant::RevokeSponsorshipType => Ok(Self::RevokeSponsorshipType(Box::new(
16868                RevokeSponsorshipType::arbitrary(u)?,
16869            ))),
16870            TypeVariant::RevokeSponsorshipOp => Ok(Self::RevokeSponsorshipOp(Box::new(
16871                RevokeSponsorshipOp::arbitrary(u)?,
16872            ))),
16873            TypeVariant::RevokeSponsorshipOpSigner => Ok(Self::RevokeSponsorshipOpSigner(
16874                Box::new(RevokeSponsorshipOpSigner::arbitrary(u)?),
16875            )),
16876            TypeVariant::ClawbackOp => Ok(Self::ClawbackOp(Box::new(ClawbackOp::arbitrary(u)?))),
16877            TypeVariant::ClawbackClaimableBalanceOp => Ok(Self::ClawbackClaimableBalanceOp(
16878                Box::new(ClawbackClaimableBalanceOp::arbitrary(u)?),
16879            )),
16880            TypeVariant::SetTrustLineFlagsOp => Ok(Self::SetTrustLineFlagsOp(Box::new(
16881                SetTrustLineFlagsOp::arbitrary(u)?,
16882            ))),
16883            TypeVariant::LiquidityPoolDepositOp => Ok(Self::LiquidityPoolDepositOp(Box::new(
16884                LiquidityPoolDepositOp::arbitrary(u)?,
16885            ))),
16886            TypeVariant::LiquidityPoolWithdrawOp => Ok(Self::LiquidityPoolWithdrawOp(Box::new(
16887                LiquidityPoolWithdrawOp::arbitrary(u)?,
16888            ))),
16889            TypeVariant::HostFunctionType => Ok(Self::HostFunctionType(Box::new(
16890                HostFunctionType::arbitrary(u)?,
16891            ))),
16892            TypeVariant::ContractIdPreimageType => Ok(Self::ContractIdPreimageType(Box::new(
16893                ContractIdPreimageType::arbitrary(u)?,
16894            ))),
16895            TypeVariant::ContractIdPreimage => Ok(Self::ContractIdPreimage(Box::new(
16896                ContractIdPreimage::arbitrary(u)?,
16897            ))),
16898            TypeVariant::ContractIdPreimageFromAddress => Ok(Self::ContractIdPreimageFromAddress(
16899                Box::new(ContractIdPreimageFromAddress::arbitrary(u)?),
16900            )),
16901            TypeVariant::CreateContractArgs => Ok(Self::CreateContractArgs(Box::new(
16902                CreateContractArgs::arbitrary(u)?,
16903            ))),
16904            TypeVariant::CreateContractArgsV2 => Ok(Self::CreateContractArgsV2(Box::new(
16905                CreateContractArgsV2::arbitrary(u)?,
16906            ))),
16907            TypeVariant::InvokeContractArgs => Ok(Self::InvokeContractArgs(Box::new(
16908                InvokeContractArgs::arbitrary(u)?,
16909            ))),
16910            TypeVariant::HostFunction => {
16911                Ok(Self::HostFunction(Box::new(HostFunction::arbitrary(u)?)))
16912            }
16913            TypeVariant::SorobanAuthorizedFunctionType => Ok(Self::SorobanAuthorizedFunctionType(
16914                Box::new(SorobanAuthorizedFunctionType::arbitrary(u)?),
16915            )),
16916            TypeVariant::SorobanAuthorizedFunction => Ok(Self::SorobanAuthorizedFunction(
16917                Box::new(SorobanAuthorizedFunction::arbitrary(u)?),
16918            )),
16919            TypeVariant::SorobanAuthorizedInvocation => Ok(Self::SorobanAuthorizedInvocation(
16920                Box::new(SorobanAuthorizedInvocation::arbitrary(u)?),
16921            )),
16922            TypeVariant::SorobanAddressCredentials => Ok(Self::SorobanAddressCredentials(
16923                Box::new(SorobanAddressCredentials::arbitrary(u)?),
16924            )),
16925            TypeVariant::SorobanDelegateSignature => Ok(Self::SorobanDelegateSignature(Box::new(
16926                SorobanDelegateSignature::arbitrary(u)?,
16927            ))),
16928            TypeVariant::SorobanAddressCredentialsWithDelegates => {
16929                Ok(Self::SorobanAddressCredentialsWithDelegates(Box::new(
16930                    SorobanAddressCredentialsWithDelegates::arbitrary(u)?,
16931                )))
16932            }
16933            TypeVariant::SorobanCredentialsType => Ok(Self::SorobanCredentialsType(Box::new(
16934                SorobanCredentialsType::arbitrary(u)?,
16935            ))),
16936            TypeVariant::SorobanCredentials => Ok(Self::SorobanCredentials(Box::new(
16937                SorobanCredentials::arbitrary(u)?,
16938            ))),
16939            TypeVariant::SorobanAuthorizationEntry => Ok(Self::SorobanAuthorizationEntry(
16940                Box::new(SorobanAuthorizationEntry::arbitrary(u)?),
16941            )),
16942            TypeVariant::SorobanAuthorizationEntries => Ok(Self::SorobanAuthorizationEntries(
16943                Box::new(SorobanAuthorizationEntries::arbitrary(u)?),
16944            )),
16945            TypeVariant::InvokeHostFunctionOp => Ok(Self::InvokeHostFunctionOp(Box::new(
16946                InvokeHostFunctionOp::arbitrary(u)?,
16947            ))),
16948            TypeVariant::ExtendFootprintTtlOp => Ok(Self::ExtendFootprintTtlOp(Box::new(
16949                ExtendFootprintTtlOp::arbitrary(u)?,
16950            ))),
16951            TypeVariant::RestoreFootprintOp => Ok(Self::RestoreFootprintOp(Box::new(
16952                RestoreFootprintOp::arbitrary(u)?,
16953            ))),
16954            TypeVariant::Operation => Ok(Self::Operation(Box::new(Operation::arbitrary(u)?))),
16955            TypeVariant::OperationBody => {
16956                Ok(Self::OperationBody(Box::new(OperationBody::arbitrary(u)?)))
16957            }
16958            TypeVariant::HashIdPreimage => Ok(Self::HashIdPreimage(Box::new(
16959                HashIdPreimage::arbitrary(u)?,
16960            ))),
16961            TypeVariant::HashIdPreimageOperationId => Ok(Self::HashIdPreimageOperationId(
16962                Box::new(HashIdPreimageOperationId::arbitrary(u)?),
16963            )),
16964            TypeVariant::HashIdPreimageRevokeId => Ok(Self::HashIdPreimageRevokeId(Box::new(
16965                HashIdPreimageRevokeId::arbitrary(u)?,
16966            ))),
16967            TypeVariant::HashIdPreimageContractId => Ok(Self::HashIdPreimageContractId(Box::new(
16968                HashIdPreimageContractId::arbitrary(u)?,
16969            ))),
16970            TypeVariant::HashIdPreimageSorobanAuthorization => {
16971                Ok(Self::HashIdPreimageSorobanAuthorization(Box::new(
16972                    HashIdPreimageSorobanAuthorization::arbitrary(u)?,
16973                )))
16974            }
16975            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
16976                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
16977                    Box::new(HashIdPreimageSorobanAuthorizationWithAddress::arbitrary(u)?),
16978                ))
16979            }
16980            TypeVariant::MemoType => Ok(Self::MemoType(Box::new(MemoType::arbitrary(u)?))),
16981            TypeVariant::Memo => Ok(Self::Memo(Box::new(Memo::arbitrary(u)?))),
16982            TypeVariant::TimeBounds => Ok(Self::TimeBounds(Box::new(TimeBounds::arbitrary(u)?))),
16983            TypeVariant::LedgerBounds => {
16984                Ok(Self::LedgerBounds(Box::new(LedgerBounds::arbitrary(u)?)))
16985            }
16986            TypeVariant::PreconditionsV2 => Ok(Self::PreconditionsV2(Box::new(
16987                PreconditionsV2::arbitrary(u)?,
16988            ))),
16989            TypeVariant::PreconditionType => Ok(Self::PreconditionType(Box::new(
16990                PreconditionType::arbitrary(u)?,
16991            ))),
16992            TypeVariant::Preconditions => {
16993                Ok(Self::Preconditions(Box::new(Preconditions::arbitrary(u)?)))
16994            }
16995            TypeVariant::LedgerFootprint => Ok(Self::LedgerFootprint(Box::new(
16996                LedgerFootprint::arbitrary(u)?,
16997            ))),
16998            TypeVariant::SorobanResources => Ok(Self::SorobanResources(Box::new(
16999                SorobanResources::arbitrary(u)?,
17000            ))),
17001            TypeVariant::SorobanResourcesExtV0 => Ok(Self::SorobanResourcesExtV0(Box::new(
17002                SorobanResourcesExtV0::arbitrary(u)?,
17003            ))),
17004            TypeVariant::SorobanTransactionData => Ok(Self::SorobanTransactionData(Box::new(
17005                SorobanTransactionData::arbitrary(u)?,
17006            ))),
17007            TypeVariant::SorobanTransactionDataExt => Ok(Self::SorobanTransactionDataExt(
17008                Box::new(SorobanTransactionDataExt::arbitrary(u)?),
17009            )),
17010            TypeVariant::TransactionV0 => {
17011                Ok(Self::TransactionV0(Box::new(TransactionV0::arbitrary(u)?)))
17012            }
17013            TypeVariant::TransactionV0Ext => Ok(Self::TransactionV0Ext(Box::new(
17014                TransactionV0Ext::arbitrary(u)?,
17015            ))),
17016            TypeVariant::TransactionV0Envelope => Ok(Self::TransactionV0Envelope(Box::new(
17017                TransactionV0Envelope::arbitrary(u)?,
17018            ))),
17019            TypeVariant::Transaction => Ok(Self::Transaction(Box::new(Transaction::arbitrary(u)?))),
17020            TypeVariant::TransactionExt => Ok(Self::TransactionExt(Box::new(
17021                TransactionExt::arbitrary(u)?,
17022            ))),
17023            TypeVariant::TransactionV1Envelope => Ok(Self::TransactionV1Envelope(Box::new(
17024                TransactionV1Envelope::arbitrary(u)?,
17025            ))),
17026            TypeVariant::FeeBumpTransaction => Ok(Self::FeeBumpTransaction(Box::new(
17027                FeeBumpTransaction::arbitrary(u)?,
17028            ))),
17029            TypeVariant::FeeBumpTransactionInnerTx => Ok(Self::FeeBumpTransactionInnerTx(
17030                Box::new(FeeBumpTransactionInnerTx::arbitrary(u)?),
17031            )),
17032            TypeVariant::FeeBumpTransactionExt => Ok(Self::FeeBumpTransactionExt(Box::new(
17033                FeeBumpTransactionExt::arbitrary(u)?,
17034            ))),
17035            TypeVariant::FeeBumpTransactionEnvelope => Ok(Self::FeeBumpTransactionEnvelope(
17036                Box::new(FeeBumpTransactionEnvelope::arbitrary(u)?),
17037            )),
17038            TypeVariant::TransactionEnvelope => Ok(Self::TransactionEnvelope(Box::new(
17039                TransactionEnvelope::arbitrary(u)?,
17040            ))),
17041            TypeVariant::TransactionSignaturePayload => Ok(Self::TransactionSignaturePayload(
17042                Box::new(TransactionSignaturePayload::arbitrary(u)?),
17043            )),
17044            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
17045                Ok(Self::TransactionSignaturePayloadTaggedTransaction(
17046                    Box::new(TransactionSignaturePayloadTaggedTransaction::arbitrary(u)?),
17047                ))
17048            }
17049            TypeVariant::ClaimAtomType => {
17050                Ok(Self::ClaimAtomType(Box::new(ClaimAtomType::arbitrary(u)?)))
17051            }
17052            TypeVariant::ClaimOfferAtomV0 => Ok(Self::ClaimOfferAtomV0(Box::new(
17053                ClaimOfferAtomV0::arbitrary(u)?,
17054            ))),
17055            TypeVariant::ClaimOfferAtom => Ok(Self::ClaimOfferAtom(Box::new(
17056                ClaimOfferAtom::arbitrary(u)?,
17057            ))),
17058            TypeVariant::ClaimLiquidityAtom => Ok(Self::ClaimLiquidityAtom(Box::new(
17059                ClaimLiquidityAtom::arbitrary(u)?,
17060            ))),
17061            TypeVariant::ClaimAtom => Ok(Self::ClaimAtom(Box::new(ClaimAtom::arbitrary(u)?))),
17062            TypeVariant::CreateAccountResultCode => Ok(Self::CreateAccountResultCode(Box::new(
17063                CreateAccountResultCode::arbitrary(u)?,
17064            ))),
17065            TypeVariant::CreateAccountResult => Ok(Self::CreateAccountResult(Box::new(
17066                CreateAccountResult::arbitrary(u)?,
17067            ))),
17068            TypeVariant::PaymentResultCode => Ok(Self::PaymentResultCode(Box::new(
17069                PaymentResultCode::arbitrary(u)?,
17070            ))),
17071            TypeVariant::PaymentResult => {
17072                Ok(Self::PaymentResult(Box::new(PaymentResult::arbitrary(u)?)))
17073            }
17074            TypeVariant::PathPaymentStrictReceiveResultCode => {
17075                Ok(Self::PathPaymentStrictReceiveResultCode(Box::new(
17076                    PathPaymentStrictReceiveResultCode::arbitrary(u)?,
17077                )))
17078            }
17079            TypeVariant::SimplePaymentResult => Ok(Self::SimplePaymentResult(Box::new(
17080                SimplePaymentResult::arbitrary(u)?,
17081            ))),
17082            TypeVariant::PathPaymentStrictReceiveResult => {
17083                Ok(Self::PathPaymentStrictReceiveResult(Box::new(
17084                    PathPaymentStrictReceiveResult::arbitrary(u)?,
17085                )))
17086            }
17087            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
17088                Ok(Self::PathPaymentStrictReceiveResultSuccess(Box::new(
17089                    PathPaymentStrictReceiveResultSuccess::arbitrary(u)?,
17090                )))
17091            }
17092            TypeVariant::PathPaymentStrictSendResultCode => {
17093                Ok(Self::PathPaymentStrictSendResultCode(Box::new(
17094                    PathPaymentStrictSendResultCode::arbitrary(u)?,
17095                )))
17096            }
17097            TypeVariant::PathPaymentStrictSendResult => Ok(Self::PathPaymentStrictSendResult(
17098                Box::new(PathPaymentStrictSendResult::arbitrary(u)?),
17099            )),
17100            TypeVariant::PathPaymentStrictSendResultSuccess => {
17101                Ok(Self::PathPaymentStrictSendResultSuccess(Box::new(
17102                    PathPaymentStrictSendResultSuccess::arbitrary(u)?,
17103                )))
17104            }
17105            TypeVariant::ManageSellOfferResultCode => Ok(Self::ManageSellOfferResultCode(
17106                Box::new(ManageSellOfferResultCode::arbitrary(u)?),
17107            )),
17108            TypeVariant::ManageOfferEffect => Ok(Self::ManageOfferEffect(Box::new(
17109                ManageOfferEffect::arbitrary(u)?,
17110            ))),
17111            TypeVariant::ManageOfferSuccessResult => Ok(Self::ManageOfferSuccessResult(Box::new(
17112                ManageOfferSuccessResult::arbitrary(u)?,
17113            ))),
17114            TypeVariant::ManageOfferSuccessResultOffer => Ok(Self::ManageOfferSuccessResultOffer(
17115                Box::new(ManageOfferSuccessResultOffer::arbitrary(u)?),
17116            )),
17117            TypeVariant::ManageSellOfferResult => Ok(Self::ManageSellOfferResult(Box::new(
17118                ManageSellOfferResult::arbitrary(u)?,
17119            ))),
17120            TypeVariant::ManageBuyOfferResultCode => Ok(Self::ManageBuyOfferResultCode(Box::new(
17121                ManageBuyOfferResultCode::arbitrary(u)?,
17122            ))),
17123            TypeVariant::ManageBuyOfferResult => Ok(Self::ManageBuyOfferResult(Box::new(
17124                ManageBuyOfferResult::arbitrary(u)?,
17125            ))),
17126            TypeVariant::SetOptionsResultCode => Ok(Self::SetOptionsResultCode(Box::new(
17127                SetOptionsResultCode::arbitrary(u)?,
17128            ))),
17129            TypeVariant::SetOptionsResult => Ok(Self::SetOptionsResult(Box::new(
17130                SetOptionsResult::arbitrary(u)?,
17131            ))),
17132            TypeVariant::ChangeTrustResultCode => Ok(Self::ChangeTrustResultCode(Box::new(
17133                ChangeTrustResultCode::arbitrary(u)?,
17134            ))),
17135            TypeVariant::ChangeTrustResult => Ok(Self::ChangeTrustResult(Box::new(
17136                ChangeTrustResult::arbitrary(u)?,
17137            ))),
17138            TypeVariant::AllowTrustResultCode => Ok(Self::AllowTrustResultCode(Box::new(
17139                AllowTrustResultCode::arbitrary(u)?,
17140            ))),
17141            TypeVariant::AllowTrustResult => Ok(Self::AllowTrustResult(Box::new(
17142                AllowTrustResult::arbitrary(u)?,
17143            ))),
17144            TypeVariant::AccountMergeResultCode => Ok(Self::AccountMergeResultCode(Box::new(
17145                AccountMergeResultCode::arbitrary(u)?,
17146            ))),
17147            TypeVariant::AccountMergeResult => Ok(Self::AccountMergeResult(Box::new(
17148                AccountMergeResult::arbitrary(u)?,
17149            ))),
17150            TypeVariant::InflationResultCode => Ok(Self::InflationResultCode(Box::new(
17151                InflationResultCode::arbitrary(u)?,
17152            ))),
17153            TypeVariant::InflationPayout => Ok(Self::InflationPayout(Box::new(
17154                InflationPayout::arbitrary(u)?,
17155            ))),
17156            TypeVariant::InflationResult => Ok(Self::InflationResult(Box::new(
17157                InflationResult::arbitrary(u)?,
17158            ))),
17159            TypeVariant::ManageDataResultCode => Ok(Self::ManageDataResultCode(Box::new(
17160                ManageDataResultCode::arbitrary(u)?,
17161            ))),
17162            TypeVariant::ManageDataResult => Ok(Self::ManageDataResult(Box::new(
17163                ManageDataResult::arbitrary(u)?,
17164            ))),
17165            TypeVariant::BumpSequenceResultCode => Ok(Self::BumpSequenceResultCode(Box::new(
17166                BumpSequenceResultCode::arbitrary(u)?,
17167            ))),
17168            TypeVariant::BumpSequenceResult => Ok(Self::BumpSequenceResult(Box::new(
17169                BumpSequenceResult::arbitrary(u)?,
17170            ))),
17171            TypeVariant::CreateClaimableBalanceResultCode => {
17172                Ok(Self::CreateClaimableBalanceResultCode(Box::new(
17173                    CreateClaimableBalanceResultCode::arbitrary(u)?,
17174                )))
17175            }
17176            TypeVariant::CreateClaimableBalanceResult => Ok(Self::CreateClaimableBalanceResult(
17177                Box::new(CreateClaimableBalanceResult::arbitrary(u)?),
17178            )),
17179            TypeVariant::ClaimClaimableBalanceResultCode => {
17180                Ok(Self::ClaimClaimableBalanceResultCode(Box::new(
17181                    ClaimClaimableBalanceResultCode::arbitrary(u)?,
17182                )))
17183            }
17184            TypeVariant::ClaimClaimableBalanceResult => Ok(Self::ClaimClaimableBalanceResult(
17185                Box::new(ClaimClaimableBalanceResult::arbitrary(u)?),
17186            )),
17187            TypeVariant::BeginSponsoringFutureReservesResultCode => {
17188                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
17189                    BeginSponsoringFutureReservesResultCode::arbitrary(u)?,
17190                )))
17191            }
17192            TypeVariant::BeginSponsoringFutureReservesResult => {
17193                Ok(Self::BeginSponsoringFutureReservesResult(Box::new(
17194                    BeginSponsoringFutureReservesResult::arbitrary(u)?,
17195                )))
17196            }
17197            TypeVariant::EndSponsoringFutureReservesResultCode => {
17198                Ok(Self::EndSponsoringFutureReservesResultCode(Box::new(
17199                    EndSponsoringFutureReservesResultCode::arbitrary(u)?,
17200                )))
17201            }
17202            TypeVariant::EndSponsoringFutureReservesResult => {
17203                Ok(Self::EndSponsoringFutureReservesResult(Box::new(
17204                    EndSponsoringFutureReservesResult::arbitrary(u)?,
17205                )))
17206            }
17207            TypeVariant::RevokeSponsorshipResultCode => Ok(Self::RevokeSponsorshipResultCode(
17208                Box::new(RevokeSponsorshipResultCode::arbitrary(u)?),
17209            )),
17210            TypeVariant::RevokeSponsorshipResult => Ok(Self::RevokeSponsorshipResult(Box::new(
17211                RevokeSponsorshipResult::arbitrary(u)?,
17212            ))),
17213            TypeVariant::ClawbackResultCode => Ok(Self::ClawbackResultCode(Box::new(
17214                ClawbackResultCode::arbitrary(u)?,
17215            ))),
17216            TypeVariant::ClawbackResult => Ok(Self::ClawbackResult(Box::new(
17217                ClawbackResult::arbitrary(u)?,
17218            ))),
17219            TypeVariant::ClawbackClaimableBalanceResultCode => {
17220                Ok(Self::ClawbackClaimableBalanceResultCode(Box::new(
17221                    ClawbackClaimableBalanceResultCode::arbitrary(u)?,
17222                )))
17223            }
17224            TypeVariant::ClawbackClaimableBalanceResult => {
17225                Ok(Self::ClawbackClaimableBalanceResult(Box::new(
17226                    ClawbackClaimableBalanceResult::arbitrary(u)?,
17227                )))
17228            }
17229            TypeVariant::SetTrustLineFlagsResultCode => Ok(Self::SetTrustLineFlagsResultCode(
17230                Box::new(SetTrustLineFlagsResultCode::arbitrary(u)?),
17231            )),
17232            TypeVariant::SetTrustLineFlagsResult => Ok(Self::SetTrustLineFlagsResult(Box::new(
17233                SetTrustLineFlagsResult::arbitrary(u)?,
17234            ))),
17235            TypeVariant::LiquidityPoolDepositResultCode => {
17236                Ok(Self::LiquidityPoolDepositResultCode(Box::new(
17237                    LiquidityPoolDepositResultCode::arbitrary(u)?,
17238                )))
17239            }
17240            TypeVariant::LiquidityPoolDepositResult => Ok(Self::LiquidityPoolDepositResult(
17241                Box::new(LiquidityPoolDepositResult::arbitrary(u)?),
17242            )),
17243            TypeVariant::LiquidityPoolWithdrawResultCode => {
17244                Ok(Self::LiquidityPoolWithdrawResultCode(Box::new(
17245                    LiquidityPoolWithdrawResultCode::arbitrary(u)?,
17246                )))
17247            }
17248            TypeVariant::LiquidityPoolWithdrawResult => Ok(Self::LiquidityPoolWithdrawResult(
17249                Box::new(LiquidityPoolWithdrawResult::arbitrary(u)?),
17250            )),
17251            TypeVariant::InvokeHostFunctionResultCode => Ok(Self::InvokeHostFunctionResultCode(
17252                Box::new(InvokeHostFunctionResultCode::arbitrary(u)?),
17253            )),
17254            TypeVariant::InvokeHostFunctionResult => Ok(Self::InvokeHostFunctionResult(Box::new(
17255                InvokeHostFunctionResult::arbitrary(u)?,
17256            ))),
17257            TypeVariant::ExtendFootprintTtlResultCode => Ok(Self::ExtendFootprintTtlResultCode(
17258                Box::new(ExtendFootprintTtlResultCode::arbitrary(u)?),
17259            )),
17260            TypeVariant::ExtendFootprintTtlResult => Ok(Self::ExtendFootprintTtlResult(Box::new(
17261                ExtendFootprintTtlResult::arbitrary(u)?,
17262            ))),
17263            TypeVariant::RestoreFootprintResultCode => Ok(Self::RestoreFootprintResultCode(
17264                Box::new(RestoreFootprintResultCode::arbitrary(u)?),
17265            )),
17266            TypeVariant::RestoreFootprintResult => Ok(Self::RestoreFootprintResult(Box::new(
17267                RestoreFootprintResult::arbitrary(u)?,
17268            ))),
17269            TypeVariant::OperationResultCode => Ok(Self::OperationResultCode(Box::new(
17270                OperationResultCode::arbitrary(u)?,
17271            ))),
17272            TypeVariant::OperationResult => Ok(Self::OperationResult(Box::new(
17273                OperationResult::arbitrary(u)?,
17274            ))),
17275            TypeVariant::OperationResultTr => Ok(Self::OperationResultTr(Box::new(
17276                OperationResultTr::arbitrary(u)?,
17277            ))),
17278            TypeVariant::TransactionResultCode => Ok(Self::TransactionResultCode(Box::new(
17279                TransactionResultCode::arbitrary(u)?,
17280            ))),
17281            TypeVariant::InnerTransactionResult => Ok(Self::InnerTransactionResult(Box::new(
17282                InnerTransactionResult::arbitrary(u)?,
17283            ))),
17284            TypeVariant::InnerTransactionResultResult => Ok(Self::InnerTransactionResultResult(
17285                Box::new(InnerTransactionResultResult::arbitrary(u)?),
17286            )),
17287            TypeVariant::InnerTransactionResultExt => Ok(Self::InnerTransactionResultExt(
17288                Box::new(InnerTransactionResultExt::arbitrary(u)?),
17289            )),
17290            TypeVariant::InnerTransactionResultPair => Ok(Self::InnerTransactionResultPair(
17291                Box::new(InnerTransactionResultPair::arbitrary(u)?),
17292            )),
17293            TypeVariant::TransactionResult => Ok(Self::TransactionResult(Box::new(
17294                TransactionResult::arbitrary(u)?,
17295            ))),
17296            TypeVariant::TransactionResultResult => Ok(Self::TransactionResultResult(Box::new(
17297                TransactionResultResult::arbitrary(u)?,
17298            ))),
17299            TypeVariant::TransactionResultExt => Ok(Self::TransactionResultExt(Box::new(
17300                TransactionResultExt::arbitrary(u)?,
17301            ))),
17302            TypeVariant::Hash => Ok(Self::Hash(Box::new(Hash::arbitrary(u)?))),
17303            TypeVariant::Uint256 => Ok(Self::Uint256(Box::new(Uint256::arbitrary(u)?))),
17304            TypeVariant::Uint32 => Ok(Self::Uint32(Box::new(Uint32::arbitrary(u)?))),
17305            TypeVariant::Int32 => Ok(Self::Int32(Box::new(Int32::arbitrary(u)?))),
17306            TypeVariant::Uint64 => Ok(Self::Uint64(Box::new(Uint64::arbitrary(u)?))),
17307            TypeVariant::Int64 => Ok(Self::Int64(Box::new(Int64::arbitrary(u)?))),
17308            TypeVariant::TimePoint => Ok(Self::TimePoint(Box::new(TimePoint::arbitrary(u)?))),
17309            TypeVariant::Duration => Ok(Self::Duration(Box::new(Duration::arbitrary(u)?))),
17310            TypeVariant::ExtensionPoint => Ok(Self::ExtensionPoint(Box::new(
17311                ExtensionPoint::arbitrary(u)?,
17312            ))),
17313            TypeVariant::CryptoKeyType => {
17314                Ok(Self::CryptoKeyType(Box::new(CryptoKeyType::arbitrary(u)?)))
17315            }
17316            TypeVariant::PublicKeyType => {
17317                Ok(Self::PublicKeyType(Box::new(PublicKeyType::arbitrary(u)?)))
17318            }
17319            TypeVariant::SignerKeyType => {
17320                Ok(Self::SignerKeyType(Box::new(SignerKeyType::arbitrary(u)?)))
17321            }
17322            TypeVariant::PublicKey => Ok(Self::PublicKey(Box::new(PublicKey::arbitrary(u)?))),
17323            TypeVariant::SignerKey => Ok(Self::SignerKey(Box::new(SignerKey::arbitrary(u)?))),
17324            TypeVariant::SignerKeyEd25519SignedPayload => Ok(Self::SignerKeyEd25519SignedPayload(
17325                Box::new(SignerKeyEd25519SignedPayload::arbitrary(u)?),
17326            )),
17327            TypeVariant::Signature => Ok(Self::Signature(Box::new(Signature::arbitrary(u)?))),
17328            TypeVariant::SignatureHint => {
17329                Ok(Self::SignatureHint(Box::new(SignatureHint::arbitrary(u)?)))
17330            }
17331            TypeVariant::NodeId => Ok(Self::NodeId(Box::new(NodeId::arbitrary(u)?))),
17332            TypeVariant::AccountId => Ok(Self::AccountId(Box::new(AccountId::arbitrary(u)?))),
17333            TypeVariant::ContractId => Ok(Self::ContractId(Box::new(ContractId::arbitrary(u)?))),
17334            TypeVariant::Curve25519Secret => Ok(Self::Curve25519Secret(Box::new(
17335                Curve25519Secret::arbitrary(u)?,
17336            ))),
17337            TypeVariant::Curve25519Public => Ok(Self::Curve25519Public(Box::new(
17338                Curve25519Public::arbitrary(u)?,
17339            ))),
17340            TypeVariant::HmacSha256Key => {
17341                Ok(Self::HmacSha256Key(Box::new(HmacSha256Key::arbitrary(u)?)))
17342            }
17343            TypeVariant::HmacSha256Mac => {
17344                Ok(Self::HmacSha256Mac(Box::new(HmacSha256Mac::arbitrary(u)?)))
17345            }
17346            TypeVariant::ShortHashSeed => {
17347                Ok(Self::ShortHashSeed(Box::new(ShortHashSeed::arbitrary(u)?)))
17348            }
17349            TypeVariant::BinaryFuseFilterType => Ok(Self::BinaryFuseFilterType(Box::new(
17350                BinaryFuseFilterType::arbitrary(u)?,
17351            ))),
17352            TypeVariant::SerializedBinaryFuseFilter => Ok(Self::SerializedBinaryFuseFilter(
17353                Box::new(SerializedBinaryFuseFilter::arbitrary(u)?),
17354            )),
17355            TypeVariant::PoolId => Ok(Self::PoolId(Box::new(PoolId::arbitrary(u)?))),
17356            TypeVariant::ClaimableBalanceIdType => Ok(Self::ClaimableBalanceIdType(Box::new(
17357                ClaimableBalanceIdType::arbitrary(u)?,
17358            ))),
17359            TypeVariant::ClaimableBalanceId => Ok(Self::ClaimableBalanceId(Box::new(
17360                ClaimableBalanceId::arbitrary(u)?,
17361            ))),
17362            #[cfg(feature = "test_feature")]
17363            TypeVariant::TestNextType => {
17364                Ok(Self::TestNextType(Box::new(TestNextType::arbitrary(u)?)))
17365            }
17366        }
17367    }
17368
17369    #[cfg(feature = "alloc")]
17370    #[must_use]
17371    #[allow(clippy::too_many_lines)]
17372    pub fn default(v: TypeVariant) -> Self {
17373        match v {
17374            TypeVariant::Value => Self::Value(Box::default()),
17375            TypeVariant::ScpBallot => Self::ScpBallot(Box::default()),
17376            TypeVariant::ScpStatementType => Self::ScpStatementType(Box::default()),
17377            TypeVariant::ScpNomination => Self::ScpNomination(Box::default()),
17378            TypeVariant::ScpStatement => Self::ScpStatement(Box::default()),
17379            TypeVariant::ScpStatementPledges => Self::ScpStatementPledges(Box::default()),
17380            TypeVariant::ScpStatementPrepare => Self::ScpStatementPrepare(Box::default()),
17381            TypeVariant::ScpStatementConfirm => Self::ScpStatementConfirm(Box::default()),
17382            TypeVariant::ScpStatementExternalize => Self::ScpStatementExternalize(Box::default()),
17383            TypeVariant::ScpEnvelope => Self::ScpEnvelope(Box::default()),
17384            TypeVariant::ScpQuorumSet => Self::ScpQuorumSet(Box::default()),
17385            TypeVariant::EncodedLedgerKey => Self::EncodedLedgerKey(Box::default()),
17386            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
17387                Self::ConfigSettingContractExecutionLanesV0(Box::default())
17388            }
17389            TypeVariant::ConfigSettingContractComputeV0 => {
17390                Self::ConfigSettingContractComputeV0(Box::default())
17391            }
17392            TypeVariant::ConfigSettingContractParallelComputeV0 => {
17393                Self::ConfigSettingContractParallelComputeV0(Box::default())
17394            }
17395            TypeVariant::ConfigSettingContractLedgerCostV0 => {
17396                Self::ConfigSettingContractLedgerCostV0(Box::default())
17397            }
17398            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
17399                Self::ConfigSettingContractLedgerCostExtV0(Box::default())
17400            }
17401            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
17402                Self::ConfigSettingContractHistoricalDataV0(Box::default())
17403            }
17404            TypeVariant::ConfigSettingContractEventsV0 => {
17405                Self::ConfigSettingContractEventsV0(Box::default())
17406            }
17407            TypeVariant::ConfigSettingContractBandwidthV0 => {
17408                Self::ConfigSettingContractBandwidthV0(Box::default())
17409            }
17410            TypeVariant::ContractCostType => Self::ContractCostType(Box::default()),
17411            TypeVariant::ContractCostParamEntry => Self::ContractCostParamEntry(Box::default()),
17412            TypeVariant::StateArchivalSettings => Self::StateArchivalSettings(Box::default()),
17413            TypeVariant::EvictionIterator => Self::EvictionIterator(Box::default()),
17414            TypeVariant::ConfigSettingScpTiming => Self::ConfigSettingScpTiming(Box::default()),
17415            TypeVariant::FrozenLedgerKeys => Self::FrozenLedgerKeys(Box::default()),
17416            TypeVariant::FrozenLedgerKeysDelta => Self::FrozenLedgerKeysDelta(Box::default()),
17417            TypeVariant::FreezeBypassTxs => Self::FreezeBypassTxs(Box::default()),
17418            TypeVariant::FreezeBypassTxsDelta => Self::FreezeBypassTxsDelta(Box::default()),
17419            TypeVariant::ContractCostParams => Self::ContractCostParams(Box::default()),
17420            TypeVariant::ConfigSettingId => Self::ConfigSettingId(Box::default()),
17421            TypeVariant::ConfigSettingEntry => Self::ConfigSettingEntry(Box::default()),
17422            TypeVariant::ScEnvMetaKind => Self::ScEnvMetaKind(Box::default()),
17423            TypeVariant::ScEnvMetaEntry => Self::ScEnvMetaEntry(Box::default()),
17424            TypeVariant::ScEnvMetaEntryInterfaceVersion => {
17425                Self::ScEnvMetaEntryInterfaceVersion(Box::default())
17426            }
17427            TypeVariant::ScMetaV0 => Self::ScMetaV0(Box::default()),
17428            TypeVariant::ScMetaKind => Self::ScMetaKind(Box::default()),
17429            TypeVariant::ScMetaEntry => Self::ScMetaEntry(Box::default()),
17430            TypeVariant::ScSpecType => Self::ScSpecType(Box::default()),
17431            TypeVariant::ScSpecTypeOption => Self::ScSpecTypeOption(Box::default()),
17432            TypeVariant::ScSpecTypeResult => Self::ScSpecTypeResult(Box::default()),
17433            TypeVariant::ScSpecTypeVec => Self::ScSpecTypeVec(Box::default()),
17434            TypeVariant::ScSpecTypeMap => Self::ScSpecTypeMap(Box::default()),
17435            TypeVariant::ScSpecTypeTuple => Self::ScSpecTypeTuple(Box::default()),
17436            TypeVariant::ScSpecTypeBytesN => Self::ScSpecTypeBytesN(Box::default()),
17437            TypeVariant::ScSpecTypeUdt => Self::ScSpecTypeUdt(Box::default()),
17438            TypeVariant::ScSpecTypeDef => Self::ScSpecTypeDef(Box::default()),
17439            TypeVariant::ScSpecUdtStructFieldV0 => Self::ScSpecUdtStructFieldV0(Box::default()),
17440            TypeVariant::ScSpecUdtStructV0 => Self::ScSpecUdtStructV0(Box::default()),
17441            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Self::ScSpecUdtUnionCaseVoidV0(Box::default()),
17442            TypeVariant::ScSpecUdtUnionCaseTupleV0 => {
17443                Self::ScSpecUdtUnionCaseTupleV0(Box::default())
17444            }
17445            TypeVariant::ScSpecUdtUnionCaseV0Kind => Self::ScSpecUdtUnionCaseV0Kind(Box::default()),
17446            TypeVariant::ScSpecUdtUnionCaseV0 => Self::ScSpecUdtUnionCaseV0(Box::default()),
17447            TypeVariant::ScSpecUdtUnionV0 => Self::ScSpecUdtUnionV0(Box::default()),
17448            TypeVariant::ScSpecUdtEnumCaseV0 => Self::ScSpecUdtEnumCaseV0(Box::default()),
17449            TypeVariant::ScSpecUdtEnumV0 => Self::ScSpecUdtEnumV0(Box::default()),
17450            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Self::ScSpecUdtErrorEnumCaseV0(Box::default()),
17451            TypeVariant::ScSpecUdtErrorEnumV0 => Self::ScSpecUdtErrorEnumV0(Box::default()),
17452            TypeVariant::ScSpecFunctionInputV0 => Self::ScSpecFunctionInputV0(Box::default()),
17453            TypeVariant::ScSpecFunctionV0 => Self::ScSpecFunctionV0(Box::default()),
17454            TypeVariant::ScSpecEventParamLocationV0 => {
17455                Self::ScSpecEventParamLocationV0(Box::default())
17456            }
17457            TypeVariant::ScSpecEventParamV0 => Self::ScSpecEventParamV0(Box::default()),
17458            TypeVariant::ScSpecEventDataFormat => Self::ScSpecEventDataFormat(Box::default()),
17459            TypeVariant::ScSpecEventV0 => Self::ScSpecEventV0(Box::default()),
17460            TypeVariant::ScSpecEntryKind => Self::ScSpecEntryKind(Box::default()),
17461            TypeVariant::ScSpecEntry => Self::ScSpecEntry(Box::default()),
17462            TypeVariant::ScValType => Self::ScValType(Box::default()),
17463            TypeVariant::ScErrorType => Self::ScErrorType(Box::default()),
17464            TypeVariant::ScErrorCode => Self::ScErrorCode(Box::default()),
17465            TypeVariant::ScError => Self::ScError(Box::default()),
17466            TypeVariant::UInt128Parts => Self::UInt128Parts(Box::default()),
17467            TypeVariant::Int128Parts => Self::Int128Parts(Box::default()),
17468            TypeVariant::UInt256Parts => Self::UInt256Parts(Box::default()),
17469            TypeVariant::Int256Parts => Self::Int256Parts(Box::default()),
17470            TypeVariant::ContractExecutableType => Self::ContractExecutableType(Box::default()),
17471            TypeVariant::ContractExecutable => Self::ContractExecutable(Box::default()),
17472            TypeVariant::ScAddressType => Self::ScAddressType(Box::default()),
17473            TypeVariant::MuxedEd25519Account => Self::MuxedEd25519Account(Box::default()),
17474            TypeVariant::ScAddress => Self::ScAddress(Box::default()),
17475            TypeVariant::ScVec => Self::ScVec(Box::default()),
17476            TypeVariant::ScMap => Self::ScMap(Box::default()),
17477            TypeVariant::ScBytes => Self::ScBytes(Box::default()),
17478            TypeVariant::ScString => Self::ScString(Box::default()),
17479            TypeVariant::ScSymbol => Self::ScSymbol(Box::default()),
17480            TypeVariant::ScNonceKey => Self::ScNonceKey(Box::default()),
17481            TypeVariant::ScContractInstance => Self::ScContractInstance(Box::default()),
17482            TypeVariant::ScVal => Self::ScVal(Box::default()),
17483            TypeVariant::ScMapEntry => Self::ScMapEntry(Box::default()),
17484            TypeVariant::LedgerCloseMetaBatch => Self::LedgerCloseMetaBatch(Box::default()),
17485            TypeVariant::StoredTransactionSet => Self::StoredTransactionSet(Box::default()),
17486            TypeVariant::StoredDebugTransactionSet => {
17487                Self::StoredDebugTransactionSet(Box::default())
17488            }
17489            TypeVariant::PersistedScpStateV0 => Self::PersistedScpStateV0(Box::default()),
17490            TypeVariant::PersistedScpStateV1 => Self::PersistedScpStateV1(Box::default()),
17491            TypeVariant::PersistedScpState => Self::PersistedScpState(Box::default()),
17492            TypeVariant::Thresholds => Self::Thresholds(Box::default()),
17493            TypeVariant::String32 => Self::String32(Box::default()),
17494            TypeVariant::String64 => Self::String64(Box::default()),
17495            TypeVariant::SequenceNumber => Self::SequenceNumber(Box::default()),
17496            TypeVariant::DataValue => Self::DataValue(Box::default()),
17497            TypeVariant::AssetCode4 => Self::AssetCode4(Box::default()),
17498            TypeVariant::AssetCode12 => Self::AssetCode12(Box::default()),
17499            TypeVariant::AssetType => Self::AssetType(Box::default()),
17500            TypeVariant::AssetCode => Self::AssetCode(Box::default()),
17501            TypeVariant::AlphaNum4 => Self::AlphaNum4(Box::default()),
17502            TypeVariant::AlphaNum12 => Self::AlphaNum12(Box::default()),
17503            TypeVariant::Asset => Self::Asset(Box::default()),
17504            TypeVariant::Price => Self::Price(Box::default()),
17505            TypeVariant::Liabilities => Self::Liabilities(Box::default()),
17506            TypeVariant::ThresholdIndexes => Self::ThresholdIndexes(Box::default()),
17507            TypeVariant::LedgerEntryType => Self::LedgerEntryType(Box::default()),
17508            TypeVariant::Signer => Self::Signer(Box::default()),
17509            TypeVariant::AccountFlags => Self::AccountFlags(Box::default()),
17510            TypeVariant::SponsorshipDescriptor => Self::SponsorshipDescriptor(Box::default()),
17511            TypeVariant::AccountEntryExtensionV3 => Self::AccountEntryExtensionV3(Box::default()),
17512            TypeVariant::AccountEntryExtensionV2 => Self::AccountEntryExtensionV2(Box::default()),
17513            TypeVariant::AccountEntryExtensionV2Ext => {
17514                Self::AccountEntryExtensionV2Ext(Box::default())
17515            }
17516            TypeVariant::AccountEntryExtensionV1 => Self::AccountEntryExtensionV1(Box::default()),
17517            TypeVariant::AccountEntryExtensionV1Ext => {
17518                Self::AccountEntryExtensionV1Ext(Box::default())
17519            }
17520            TypeVariant::AccountEntry => Self::AccountEntry(Box::default()),
17521            TypeVariant::AccountEntryExt => Self::AccountEntryExt(Box::default()),
17522            TypeVariant::TrustLineFlags => Self::TrustLineFlags(Box::default()),
17523            TypeVariant::LiquidityPoolType => Self::LiquidityPoolType(Box::default()),
17524            TypeVariant::TrustLineAsset => Self::TrustLineAsset(Box::default()),
17525            TypeVariant::TrustLineEntryExtensionV2 => {
17526                Self::TrustLineEntryExtensionV2(Box::default())
17527            }
17528            TypeVariant::TrustLineEntryExtensionV2Ext => {
17529                Self::TrustLineEntryExtensionV2Ext(Box::default())
17530            }
17531            TypeVariant::TrustLineEntry => Self::TrustLineEntry(Box::default()),
17532            TypeVariant::TrustLineEntryExt => Self::TrustLineEntryExt(Box::default()),
17533            TypeVariant::TrustLineEntryV1 => Self::TrustLineEntryV1(Box::default()),
17534            TypeVariant::TrustLineEntryV1Ext => Self::TrustLineEntryV1Ext(Box::default()),
17535            TypeVariant::OfferEntryFlags => Self::OfferEntryFlags(Box::default()),
17536            TypeVariant::OfferEntry => Self::OfferEntry(Box::default()),
17537            TypeVariant::OfferEntryExt => Self::OfferEntryExt(Box::default()),
17538            TypeVariant::DataEntry => Self::DataEntry(Box::default()),
17539            TypeVariant::DataEntryExt => Self::DataEntryExt(Box::default()),
17540            TypeVariant::ClaimPredicateType => Self::ClaimPredicateType(Box::default()),
17541            TypeVariant::ClaimPredicate => Self::ClaimPredicate(Box::default()),
17542            TypeVariant::ClaimantType => Self::ClaimantType(Box::default()),
17543            TypeVariant::Claimant => Self::Claimant(Box::default()),
17544            TypeVariant::ClaimantV0 => Self::ClaimantV0(Box::default()),
17545            TypeVariant::ClaimableBalanceFlags => Self::ClaimableBalanceFlags(Box::default()),
17546            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
17547                Self::ClaimableBalanceEntryExtensionV1(Box::default())
17548            }
17549            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
17550                Self::ClaimableBalanceEntryExtensionV1Ext(Box::default())
17551            }
17552            TypeVariant::ClaimableBalanceEntry => Self::ClaimableBalanceEntry(Box::default()),
17553            TypeVariant::ClaimableBalanceEntryExt => Self::ClaimableBalanceEntryExt(Box::default()),
17554            TypeVariant::LiquidityPoolConstantProductParameters => {
17555                Self::LiquidityPoolConstantProductParameters(Box::default())
17556            }
17557            TypeVariant::LiquidityPoolEntry => Self::LiquidityPoolEntry(Box::default()),
17558            TypeVariant::LiquidityPoolEntryBody => Self::LiquidityPoolEntryBody(Box::default()),
17559            TypeVariant::LiquidityPoolEntryConstantProduct => {
17560                Self::LiquidityPoolEntryConstantProduct(Box::default())
17561            }
17562            TypeVariant::ContractDataDurability => Self::ContractDataDurability(Box::default()),
17563            TypeVariant::ContractDataEntry => Self::ContractDataEntry(Box::default()),
17564            TypeVariant::ContractCodeCostInputs => Self::ContractCodeCostInputs(Box::default()),
17565            TypeVariant::ContractCodeEntry => Self::ContractCodeEntry(Box::default()),
17566            TypeVariant::ContractCodeEntryExt => Self::ContractCodeEntryExt(Box::default()),
17567            TypeVariant::ContractCodeEntryV1 => Self::ContractCodeEntryV1(Box::default()),
17568            TypeVariant::TtlEntry => Self::TtlEntry(Box::default()),
17569            TypeVariant::LedgerEntryExtensionV1 => Self::LedgerEntryExtensionV1(Box::default()),
17570            TypeVariant::LedgerEntryExtensionV1Ext => {
17571                Self::LedgerEntryExtensionV1Ext(Box::default())
17572            }
17573            TypeVariant::LedgerEntry => Self::LedgerEntry(Box::default()),
17574            TypeVariant::LedgerEntryData => Self::LedgerEntryData(Box::default()),
17575            TypeVariant::LedgerEntryExt => Self::LedgerEntryExt(Box::default()),
17576            TypeVariant::LedgerKey => Self::LedgerKey(Box::default()),
17577            TypeVariant::LedgerKeyAccount => Self::LedgerKeyAccount(Box::default()),
17578            TypeVariant::LedgerKeyTrustLine => Self::LedgerKeyTrustLine(Box::default()),
17579            TypeVariant::LedgerKeyOffer => Self::LedgerKeyOffer(Box::default()),
17580            TypeVariant::LedgerKeyData => Self::LedgerKeyData(Box::default()),
17581            TypeVariant::LedgerKeyClaimableBalance => {
17582                Self::LedgerKeyClaimableBalance(Box::default())
17583            }
17584            TypeVariant::LedgerKeyLiquidityPool => Self::LedgerKeyLiquidityPool(Box::default()),
17585            TypeVariant::LedgerKeyContractData => Self::LedgerKeyContractData(Box::default()),
17586            TypeVariant::LedgerKeyContractCode => Self::LedgerKeyContractCode(Box::default()),
17587            TypeVariant::LedgerKeyConfigSetting => Self::LedgerKeyConfigSetting(Box::default()),
17588            TypeVariant::LedgerKeyTtl => Self::LedgerKeyTtl(Box::default()),
17589            TypeVariant::EnvelopeType => Self::EnvelopeType(Box::default()),
17590            TypeVariant::BucketListType => Self::BucketListType(Box::default()),
17591            TypeVariant::BucketEntryType => Self::BucketEntryType(Box::default()),
17592            TypeVariant::HotArchiveBucketEntryType => {
17593                Self::HotArchiveBucketEntryType(Box::default())
17594            }
17595            TypeVariant::BucketMetadata => Self::BucketMetadata(Box::default()),
17596            TypeVariant::BucketMetadataExt => Self::BucketMetadataExt(Box::default()),
17597            TypeVariant::BucketEntry => Self::BucketEntry(Box::default()),
17598            TypeVariant::HotArchiveBucketEntry => Self::HotArchiveBucketEntry(Box::default()),
17599            TypeVariant::UpgradeType => Self::UpgradeType(Box::default()),
17600            TypeVariant::StellarValueType => Self::StellarValueType(Box::default()),
17601            TypeVariant::LedgerCloseValueSignature => {
17602                Self::LedgerCloseValueSignature(Box::default())
17603            }
17604            TypeVariant::StellarValue => Self::StellarValue(Box::default()),
17605            TypeVariant::StellarValueExt => Self::StellarValueExt(Box::default()),
17606            #[cfg(feature = "cap_0083")]
17607            TypeVariant::StellarValueProposedValue => {
17608                Self::StellarValueProposedValue(Box::default())
17609            }
17610            TypeVariant::LedgerHeaderFlags => Self::LedgerHeaderFlags(Box::default()),
17611            TypeVariant::LedgerHeaderExtensionV1 => Self::LedgerHeaderExtensionV1(Box::default()),
17612            TypeVariant::LedgerHeaderExtensionV1Ext => {
17613                Self::LedgerHeaderExtensionV1Ext(Box::default())
17614            }
17615            TypeVariant::LedgerHeader => Self::LedgerHeader(Box::default()),
17616            TypeVariant::LedgerHeaderExt => Self::LedgerHeaderExt(Box::default()),
17617            TypeVariant::LedgerUpgradeType => Self::LedgerUpgradeType(Box::default()),
17618            TypeVariant::ConfigUpgradeSetKey => Self::ConfigUpgradeSetKey(Box::default()),
17619            TypeVariant::LedgerUpgrade => Self::LedgerUpgrade(Box::default()),
17620            TypeVariant::ConfigUpgradeSet => Self::ConfigUpgradeSet(Box::default()),
17621            TypeVariant::TxSetComponentType => Self::TxSetComponentType(Box::default()),
17622            TypeVariant::DependentTxCluster => Self::DependentTxCluster(Box::default()),
17623            TypeVariant::ParallelTxExecutionStage => Self::ParallelTxExecutionStage(Box::default()),
17624            TypeVariant::ParallelTxsComponent => Self::ParallelTxsComponent(Box::default()),
17625            TypeVariant::TxSetComponent => Self::TxSetComponent(Box::default()),
17626            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
17627                Self::TxSetComponentTxsMaybeDiscountedFee(Box::default())
17628            }
17629            TypeVariant::TransactionPhase => Self::TransactionPhase(Box::default()),
17630            TypeVariant::TransactionSet => Self::TransactionSet(Box::default()),
17631            TypeVariant::TransactionSetV1 => Self::TransactionSetV1(Box::default()),
17632            TypeVariant::GeneralizedTransactionSet => {
17633                Self::GeneralizedTransactionSet(Box::default())
17634            }
17635            TypeVariant::TransactionResultPair => Self::TransactionResultPair(Box::default()),
17636            TypeVariant::TransactionResultSet => Self::TransactionResultSet(Box::default()),
17637            TypeVariant::TransactionHistoryEntry => Self::TransactionHistoryEntry(Box::default()),
17638            TypeVariant::TransactionHistoryEntryExt => {
17639                Self::TransactionHistoryEntryExt(Box::default())
17640            }
17641            TypeVariant::TransactionHistoryResultEntry => {
17642                Self::TransactionHistoryResultEntry(Box::default())
17643            }
17644            TypeVariant::TransactionHistoryResultEntryExt => {
17645                Self::TransactionHistoryResultEntryExt(Box::default())
17646            }
17647            TypeVariant::LedgerHeaderHistoryEntry => Self::LedgerHeaderHistoryEntry(Box::default()),
17648            TypeVariant::LedgerHeaderHistoryEntryExt => {
17649                Self::LedgerHeaderHistoryEntryExt(Box::default())
17650            }
17651            TypeVariant::LedgerScpMessages => Self::LedgerScpMessages(Box::default()),
17652            TypeVariant::ScpHistoryEntryV0 => Self::ScpHistoryEntryV0(Box::default()),
17653            TypeVariant::ScpHistoryEntry => Self::ScpHistoryEntry(Box::default()),
17654            TypeVariant::LedgerEntryChangeType => Self::LedgerEntryChangeType(Box::default()),
17655            TypeVariant::LedgerEntryChange => Self::LedgerEntryChange(Box::default()),
17656            TypeVariant::LedgerEntryChanges => Self::LedgerEntryChanges(Box::default()),
17657            TypeVariant::OperationMeta => Self::OperationMeta(Box::default()),
17658            TypeVariant::TransactionMetaV1 => Self::TransactionMetaV1(Box::default()),
17659            TypeVariant::TransactionMetaV2 => Self::TransactionMetaV2(Box::default()),
17660            TypeVariant::ContractEventType => Self::ContractEventType(Box::default()),
17661            TypeVariant::ContractEvent => Self::ContractEvent(Box::default()),
17662            TypeVariant::ContractEventBody => Self::ContractEventBody(Box::default()),
17663            TypeVariant::ContractEventV0 => Self::ContractEventV0(Box::default()),
17664            TypeVariant::DiagnosticEvent => Self::DiagnosticEvent(Box::default()),
17665            TypeVariant::SorobanTransactionMetaExtV1 => {
17666                Self::SorobanTransactionMetaExtV1(Box::default())
17667            }
17668            TypeVariant::SorobanTransactionMetaExt => {
17669                Self::SorobanTransactionMetaExt(Box::default())
17670            }
17671            TypeVariant::SorobanTransactionMeta => Self::SorobanTransactionMeta(Box::default()),
17672            TypeVariant::TransactionMetaV3 => Self::TransactionMetaV3(Box::default()),
17673            TypeVariant::OperationMetaV2 => Self::OperationMetaV2(Box::default()),
17674            TypeVariant::SorobanTransactionMetaV2 => Self::SorobanTransactionMetaV2(Box::default()),
17675            TypeVariant::TransactionEventStage => Self::TransactionEventStage(Box::default()),
17676            TypeVariant::TransactionEvent => Self::TransactionEvent(Box::default()),
17677            TypeVariant::TransactionMetaV4 => Self::TransactionMetaV4(Box::default()),
17678            TypeVariant::InvokeHostFunctionSuccessPreImage => {
17679                Self::InvokeHostFunctionSuccessPreImage(Box::default())
17680            }
17681            TypeVariant::TransactionMeta => Self::TransactionMeta(Box::default()),
17682            TypeVariant::TransactionResultMeta => Self::TransactionResultMeta(Box::default()),
17683            TypeVariant::TransactionResultMetaV1 => Self::TransactionResultMetaV1(Box::default()),
17684            TypeVariant::UpgradeEntryMeta => Self::UpgradeEntryMeta(Box::default()),
17685            TypeVariant::LedgerCloseMetaV0 => Self::LedgerCloseMetaV0(Box::default()),
17686            TypeVariant::LedgerCloseMetaExtV1 => Self::LedgerCloseMetaExtV1(Box::default()),
17687            TypeVariant::LedgerCloseMetaExt => Self::LedgerCloseMetaExt(Box::default()),
17688            TypeVariant::LedgerCloseMetaV1 => Self::LedgerCloseMetaV1(Box::default()),
17689            TypeVariant::LedgerCloseMetaV2 => Self::LedgerCloseMetaV2(Box::default()),
17690            TypeVariant::LedgerCloseMeta => Self::LedgerCloseMeta(Box::default()),
17691            TypeVariant::ErrorCode => Self::ErrorCode(Box::default()),
17692            TypeVariant::SError => Self::SError(Box::default()),
17693            TypeVariant::SendMore => Self::SendMore(Box::default()),
17694            TypeVariant::SendMoreExtended => Self::SendMoreExtended(Box::default()),
17695            TypeVariant::AuthCert => Self::AuthCert(Box::default()),
17696            TypeVariant::Hello => Self::Hello(Box::default()),
17697            TypeVariant::Auth => Self::Auth(Box::default()),
17698            TypeVariant::IpAddrType => Self::IpAddrType(Box::default()),
17699            TypeVariant::PeerAddress => Self::PeerAddress(Box::default()),
17700            TypeVariant::PeerAddressIp => Self::PeerAddressIp(Box::default()),
17701            TypeVariant::MessageType => Self::MessageType(Box::default()),
17702            TypeVariant::DontHave => Self::DontHave(Box::default()),
17703            TypeVariant::SurveyMessageCommandType => Self::SurveyMessageCommandType(Box::default()),
17704            TypeVariant::SurveyMessageResponseType => {
17705                Self::SurveyMessageResponseType(Box::default())
17706            }
17707            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
17708                Self::TimeSlicedSurveyStartCollectingMessage(Box::default())
17709            }
17710            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
17711                Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::default())
17712            }
17713            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
17714                Self::TimeSlicedSurveyStopCollectingMessage(Box::default())
17715            }
17716            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
17717                Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::default())
17718            }
17719            TypeVariant::SurveyRequestMessage => Self::SurveyRequestMessage(Box::default()),
17720            TypeVariant::TimeSlicedSurveyRequestMessage => {
17721                Self::TimeSlicedSurveyRequestMessage(Box::default())
17722            }
17723            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
17724                Self::SignedTimeSlicedSurveyRequestMessage(Box::default())
17725            }
17726            TypeVariant::EncryptedBody => Self::EncryptedBody(Box::default()),
17727            TypeVariant::SurveyResponseMessage => Self::SurveyResponseMessage(Box::default()),
17728            TypeVariant::TimeSlicedSurveyResponseMessage => {
17729                Self::TimeSlicedSurveyResponseMessage(Box::default())
17730            }
17731            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
17732                Self::SignedTimeSlicedSurveyResponseMessage(Box::default())
17733            }
17734            TypeVariant::PeerStats => Self::PeerStats(Box::default()),
17735            TypeVariant::TimeSlicedNodeData => Self::TimeSlicedNodeData(Box::default()),
17736            TypeVariant::TimeSlicedPeerData => Self::TimeSlicedPeerData(Box::default()),
17737            TypeVariant::TimeSlicedPeerDataList => Self::TimeSlicedPeerDataList(Box::default()),
17738            TypeVariant::TopologyResponseBodyV2 => Self::TopologyResponseBodyV2(Box::default()),
17739            TypeVariant::SurveyResponseBody => Self::SurveyResponseBody(Box::default()),
17740            TypeVariant::TxAdvertVector => Self::TxAdvertVector(Box::default()),
17741            TypeVariant::FloodAdvert => Self::FloodAdvert(Box::default()),
17742            TypeVariant::TxDemandVector => Self::TxDemandVector(Box::default()),
17743            TypeVariant::FloodDemand => Self::FloodDemand(Box::default()),
17744            TypeVariant::StellarMessage => Self::StellarMessage(Box::default()),
17745            TypeVariant::AuthenticatedMessage => Self::AuthenticatedMessage(Box::default()),
17746            TypeVariant::AuthenticatedMessageV0 => Self::AuthenticatedMessageV0(Box::default()),
17747            TypeVariant::LiquidityPoolParameters => Self::LiquidityPoolParameters(Box::default()),
17748            TypeVariant::MuxedAccount => Self::MuxedAccount(Box::default()),
17749            TypeVariant::MuxedAccountMed25519 => Self::MuxedAccountMed25519(Box::default()),
17750            TypeVariant::DecoratedSignature => Self::DecoratedSignature(Box::default()),
17751            TypeVariant::OperationType => Self::OperationType(Box::default()),
17752            TypeVariant::CreateAccountOp => Self::CreateAccountOp(Box::default()),
17753            TypeVariant::PaymentOp => Self::PaymentOp(Box::default()),
17754            TypeVariant::PathPaymentStrictReceiveOp => {
17755                Self::PathPaymentStrictReceiveOp(Box::default())
17756            }
17757            TypeVariant::PathPaymentStrictSendOp => Self::PathPaymentStrictSendOp(Box::default()),
17758            TypeVariant::ManageSellOfferOp => Self::ManageSellOfferOp(Box::default()),
17759            TypeVariant::ManageBuyOfferOp => Self::ManageBuyOfferOp(Box::default()),
17760            TypeVariant::CreatePassiveSellOfferOp => Self::CreatePassiveSellOfferOp(Box::default()),
17761            TypeVariant::SetOptionsOp => Self::SetOptionsOp(Box::default()),
17762            TypeVariant::ChangeTrustAsset => Self::ChangeTrustAsset(Box::default()),
17763            TypeVariant::ChangeTrustOp => Self::ChangeTrustOp(Box::default()),
17764            TypeVariant::AllowTrustOp => Self::AllowTrustOp(Box::default()),
17765            TypeVariant::ManageDataOp => Self::ManageDataOp(Box::default()),
17766            TypeVariant::BumpSequenceOp => Self::BumpSequenceOp(Box::default()),
17767            TypeVariant::CreateClaimableBalanceOp => Self::CreateClaimableBalanceOp(Box::default()),
17768            TypeVariant::ClaimClaimableBalanceOp => Self::ClaimClaimableBalanceOp(Box::default()),
17769            TypeVariant::BeginSponsoringFutureReservesOp => {
17770                Self::BeginSponsoringFutureReservesOp(Box::default())
17771            }
17772            TypeVariant::RevokeSponsorshipType => Self::RevokeSponsorshipType(Box::default()),
17773            TypeVariant::RevokeSponsorshipOp => Self::RevokeSponsorshipOp(Box::default()),
17774            TypeVariant::RevokeSponsorshipOpSigner => {
17775                Self::RevokeSponsorshipOpSigner(Box::default())
17776            }
17777            TypeVariant::ClawbackOp => Self::ClawbackOp(Box::default()),
17778            TypeVariant::ClawbackClaimableBalanceOp => {
17779                Self::ClawbackClaimableBalanceOp(Box::default())
17780            }
17781            TypeVariant::SetTrustLineFlagsOp => Self::SetTrustLineFlagsOp(Box::default()),
17782            TypeVariant::LiquidityPoolDepositOp => Self::LiquidityPoolDepositOp(Box::default()),
17783            TypeVariant::LiquidityPoolWithdrawOp => Self::LiquidityPoolWithdrawOp(Box::default()),
17784            TypeVariant::HostFunctionType => Self::HostFunctionType(Box::default()),
17785            TypeVariant::ContractIdPreimageType => Self::ContractIdPreimageType(Box::default()),
17786            TypeVariant::ContractIdPreimage => Self::ContractIdPreimage(Box::default()),
17787            TypeVariant::ContractIdPreimageFromAddress => {
17788                Self::ContractIdPreimageFromAddress(Box::default())
17789            }
17790            TypeVariant::CreateContractArgs => Self::CreateContractArgs(Box::default()),
17791            TypeVariant::CreateContractArgsV2 => Self::CreateContractArgsV2(Box::default()),
17792            TypeVariant::InvokeContractArgs => Self::InvokeContractArgs(Box::default()),
17793            TypeVariant::HostFunction => Self::HostFunction(Box::default()),
17794            TypeVariant::SorobanAuthorizedFunctionType => {
17795                Self::SorobanAuthorizedFunctionType(Box::default())
17796            }
17797            TypeVariant::SorobanAuthorizedFunction => {
17798                Self::SorobanAuthorizedFunction(Box::default())
17799            }
17800            TypeVariant::SorobanAuthorizedInvocation => {
17801                Self::SorobanAuthorizedInvocation(Box::default())
17802            }
17803            TypeVariant::SorobanAddressCredentials => {
17804                Self::SorobanAddressCredentials(Box::default())
17805            }
17806            TypeVariant::SorobanDelegateSignature => Self::SorobanDelegateSignature(Box::default()),
17807            TypeVariant::SorobanAddressCredentialsWithDelegates => {
17808                Self::SorobanAddressCredentialsWithDelegates(Box::default())
17809            }
17810            TypeVariant::SorobanCredentialsType => Self::SorobanCredentialsType(Box::default()),
17811            TypeVariant::SorobanCredentials => Self::SorobanCredentials(Box::default()),
17812            TypeVariant::SorobanAuthorizationEntry => {
17813                Self::SorobanAuthorizationEntry(Box::default())
17814            }
17815            TypeVariant::SorobanAuthorizationEntries => {
17816                Self::SorobanAuthorizationEntries(Box::default())
17817            }
17818            TypeVariant::InvokeHostFunctionOp => Self::InvokeHostFunctionOp(Box::default()),
17819            TypeVariant::ExtendFootprintTtlOp => Self::ExtendFootprintTtlOp(Box::default()),
17820            TypeVariant::RestoreFootprintOp => Self::RestoreFootprintOp(Box::default()),
17821            TypeVariant::Operation => Self::Operation(Box::default()),
17822            TypeVariant::OperationBody => Self::OperationBody(Box::default()),
17823            TypeVariant::HashIdPreimage => Self::HashIdPreimage(Box::default()),
17824            TypeVariant::HashIdPreimageOperationId => {
17825                Self::HashIdPreimageOperationId(Box::default())
17826            }
17827            TypeVariant::HashIdPreimageRevokeId => Self::HashIdPreimageRevokeId(Box::default()),
17828            TypeVariant::HashIdPreimageContractId => Self::HashIdPreimageContractId(Box::default()),
17829            TypeVariant::HashIdPreimageSorobanAuthorization => {
17830                Self::HashIdPreimageSorobanAuthorization(Box::default())
17831            }
17832            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
17833                Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::default())
17834            }
17835            TypeVariant::MemoType => Self::MemoType(Box::default()),
17836            TypeVariant::Memo => Self::Memo(Box::default()),
17837            TypeVariant::TimeBounds => Self::TimeBounds(Box::default()),
17838            TypeVariant::LedgerBounds => Self::LedgerBounds(Box::default()),
17839            TypeVariant::PreconditionsV2 => Self::PreconditionsV2(Box::default()),
17840            TypeVariant::PreconditionType => Self::PreconditionType(Box::default()),
17841            TypeVariant::Preconditions => Self::Preconditions(Box::default()),
17842            TypeVariant::LedgerFootprint => Self::LedgerFootprint(Box::default()),
17843            TypeVariant::SorobanResources => Self::SorobanResources(Box::default()),
17844            TypeVariant::SorobanResourcesExtV0 => Self::SorobanResourcesExtV0(Box::default()),
17845            TypeVariant::SorobanTransactionData => Self::SorobanTransactionData(Box::default()),
17846            TypeVariant::SorobanTransactionDataExt => {
17847                Self::SorobanTransactionDataExt(Box::default())
17848            }
17849            TypeVariant::TransactionV0 => Self::TransactionV0(Box::default()),
17850            TypeVariant::TransactionV0Ext => Self::TransactionV0Ext(Box::default()),
17851            TypeVariant::TransactionV0Envelope => Self::TransactionV0Envelope(Box::default()),
17852            TypeVariant::Transaction => Self::Transaction(Box::default()),
17853            TypeVariant::TransactionExt => Self::TransactionExt(Box::default()),
17854            TypeVariant::TransactionV1Envelope => Self::TransactionV1Envelope(Box::default()),
17855            TypeVariant::FeeBumpTransaction => Self::FeeBumpTransaction(Box::default()),
17856            TypeVariant::FeeBumpTransactionInnerTx => {
17857                Self::FeeBumpTransactionInnerTx(Box::default())
17858            }
17859            TypeVariant::FeeBumpTransactionExt => Self::FeeBumpTransactionExt(Box::default()),
17860            TypeVariant::FeeBumpTransactionEnvelope => {
17861                Self::FeeBumpTransactionEnvelope(Box::default())
17862            }
17863            TypeVariant::TransactionEnvelope => Self::TransactionEnvelope(Box::default()),
17864            TypeVariant::TransactionSignaturePayload => {
17865                Self::TransactionSignaturePayload(Box::default())
17866            }
17867            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
17868                Self::TransactionSignaturePayloadTaggedTransaction(Box::default())
17869            }
17870            TypeVariant::ClaimAtomType => Self::ClaimAtomType(Box::default()),
17871            TypeVariant::ClaimOfferAtomV0 => Self::ClaimOfferAtomV0(Box::default()),
17872            TypeVariant::ClaimOfferAtom => Self::ClaimOfferAtom(Box::default()),
17873            TypeVariant::ClaimLiquidityAtom => Self::ClaimLiquidityAtom(Box::default()),
17874            TypeVariant::ClaimAtom => Self::ClaimAtom(Box::default()),
17875            TypeVariant::CreateAccountResultCode => Self::CreateAccountResultCode(Box::default()),
17876            TypeVariant::CreateAccountResult => Self::CreateAccountResult(Box::default()),
17877            TypeVariant::PaymentResultCode => Self::PaymentResultCode(Box::default()),
17878            TypeVariant::PaymentResult => Self::PaymentResult(Box::default()),
17879            TypeVariant::PathPaymentStrictReceiveResultCode => {
17880                Self::PathPaymentStrictReceiveResultCode(Box::default())
17881            }
17882            TypeVariant::SimplePaymentResult => Self::SimplePaymentResult(Box::default()),
17883            TypeVariant::PathPaymentStrictReceiveResult => {
17884                Self::PathPaymentStrictReceiveResult(Box::default())
17885            }
17886            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
17887                Self::PathPaymentStrictReceiveResultSuccess(Box::default())
17888            }
17889            TypeVariant::PathPaymentStrictSendResultCode => {
17890                Self::PathPaymentStrictSendResultCode(Box::default())
17891            }
17892            TypeVariant::PathPaymentStrictSendResult => {
17893                Self::PathPaymentStrictSendResult(Box::default())
17894            }
17895            TypeVariant::PathPaymentStrictSendResultSuccess => {
17896                Self::PathPaymentStrictSendResultSuccess(Box::default())
17897            }
17898            TypeVariant::ManageSellOfferResultCode => {
17899                Self::ManageSellOfferResultCode(Box::default())
17900            }
17901            TypeVariant::ManageOfferEffect => Self::ManageOfferEffect(Box::default()),
17902            TypeVariant::ManageOfferSuccessResult => Self::ManageOfferSuccessResult(Box::default()),
17903            TypeVariant::ManageOfferSuccessResultOffer => {
17904                Self::ManageOfferSuccessResultOffer(Box::default())
17905            }
17906            TypeVariant::ManageSellOfferResult => Self::ManageSellOfferResult(Box::default()),
17907            TypeVariant::ManageBuyOfferResultCode => Self::ManageBuyOfferResultCode(Box::default()),
17908            TypeVariant::ManageBuyOfferResult => Self::ManageBuyOfferResult(Box::default()),
17909            TypeVariant::SetOptionsResultCode => Self::SetOptionsResultCode(Box::default()),
17910            TypeVariant::SetOptionsResult => Self::SetOptionsResult(Box::default()),
17911            TypeVariant::ChangeTrustResultCode => Self::ChangeTrustResultCode(Box::default()),
17912            TypeVariant::ChangeTrustResult => Self::ChangeTrustResult(Box::default()),
17913            TypeVariant::AllowTrustResultCode => Self::AllowTrustResultCode(Box::default()),
17914            TypeVariant::AllowTrustResult => Self::AllowTrustResult(Box::default()),
17915            TypeVariant::AccountMergeResultCode => Self::AccountMergeResultCode(Box::default()),
17916            TypeVariant::AccountMergeResult => Self::AccountMergeResult(Box::default()),
17917            TypeVariant::InflationResultCode => Self::InflationResultCode(Box::default()),
17918            TypeVariant::InflationPayout => Self::InflationPayout(Box::default()),
17919            TypeVariant::InflationResult => Self::InflationResult(Box::default()),
17920            TypeVariant::ManageDataResultCode => Self::ManageDataResultCode(Box::default()),
17921            TypeVariant::ManageDataResult => Self::ManageDataResult(Box::default()),
17922            TypeVariant::BumpSequenceResultCode => Self::BumpSequenceResultCode(Box::default()),
17923            TypeVariant::BumpSequenceResult => Self::BumpSequenceResult(Box::default()),
17924            TypeVariant::CreateClaimableBalanceResultCode => {
17925                Self::CreateClaimableBalanceResultCode(Box::default())
17926            }
17927            TypeVariant::CreateClaimableBalanceResult => {
17928                Self::CreateClaimableBalanceResult(Box::default())
17929            }
17930            TypeVariant::ClaimClaimableBalanceResultCode => {
17931                Self::ClaimClaimableBalanceResultCode(Box::default())
17932            }
17933            TypeVariant::ClaimClaimableBalanceResult => {
17934                Self::ClaimClaimableBalanceResult(Box::default())
17935            }
17936            TypeVariant::BeginSponsoringFutureReservesResultCode => {
17937                Self::BeginSponsoringFutureReservesResultCode(Box::default())
17938            }
17939            TypeVariant::BeginSponsoringFutureReservesResult => {
17940                Self::BeginSponsoringFutureReservesResult(Box::default())
17941            }
17942            TypeVariant::EndSponsoringFutureReservesResultCode => {
17943                Self::EndSponsoringFutureReservesResultCode(Box::default())
17944            }
17945            TypeVariant::EndSponsoringFutureReservesResult => {
17946                Self::EndSponsoringFutureReservesResult(Box::default())
17947            }
17948            TypeVariant::RevokeSponsorshipResultCode => {
17949                Self::RevokeSponsorshipResultCode(Box::default())
17950            }
17951            TypeVariant::RevokeSponsorshipResult => Self::RevokeSponsorshipResult(Box::default()),
17952            TypeVariant::ClawbackResultCode => Self::ClawbackResultCode(Box::default()),
17953            TypeVariant::ClawbackResult => Self::ClawbackResult(Box::default()),
17954            TypeVariant::ClawbackClaimableBalanceResultCode => {
17955                Self::ClawbackClaimableBalanceResultCode(Box::default())
17956            }
17957            TypeVariant::ClawbackClaimableBalanceResult => {
17958                Self::ClawbackClaimableBalanceResult(Box::default())
17959            }
17960            TypeVariant::SetTrustLineFlagsResultCode => {
17961                Self::SetTrustLineFlagsResultCode(Box::default())
17962            }
17963            TypeVariant::SetTrustLineFlagsResult => Self::SetTrustLineFlagsResult(Box::default()),
17964            TypeVariant::LiquidityPoolDepositResultCode => {
17965                Self::LiquidityPoolDepositResultCode(Box::default())
17966            }
17967            TypeVariant::LiquidityPoolDepositResult => {
17968                Self::LiquidityPoolDepositResult(Box::default())
17969            }
17970            TypeVariant::LiquidityPoolWithdrawResultCode => {
17971                Self::LiquidityPoolWithdrawResultCode(Box::default())
17972            }
17973            TypeVariant::LiquidityPoolWithdrawResult => {
17974                Self::LiquidityPoolWithdrawResult(Box::default())
17975            }
17976            TypeVariant::InvokeHostFunctionResultCode => {
17977                Self::InvokeHostFunctionResultCode(Box::default())
17978            }
17979            TypeVariant::InvokeHostFunctionResult => Self::InvokeHostFunctionResult(Box::default()),
17980            TypeVariant::ExtendFootprintTtlResultCode => {
17981                Self::ExtendFootprintTtlResultCode(Box::default())
17982            }
17983            TypeVariant::ExtendFootprintTtlResult => Self::ExtendFootprintTtlResult(Box::default()),
17984            TypeVariant::RestoreFootprintResultCode => {
17985                Self::RestoreFootprintResultCode(Box::default())
17986            }
17987            TypeVariant::RestoreFootprintResult => Self::RestoreFootprintResult(Box::default()),
17988            TypeVariant::OperationResultCode => Self::OperationResultCode(Box::default()),
17989            TypeVariant::OperationResult => Self::OperationResult(Box::default()),
17990            TypeVariant::OperationResultTr => Self::OperationResultTr(Box::default()),
17991            TypeVariant::TransactionResultCode => Self::TransactionResultCode(Box::default()),
17992            TypeVariant::InnerTransactionResult => Self::InnerTransactionResult(Box::default()),
17993            TypeVariant::InnerTransactionResultResult => {
17994                Self::InnerTransactionResultResult(Box::default())
17995            }
17996            TypeVariant::InnerTransactionResultExt => {
17997                Self::InnerTransactionResultExt(Box::default())
17998            }
17999            TypeVariant::InnerTransactionResultPair => {
18000                Self::InnerTransactionResultPair(Box::default())
18001            }
18002            TypeVariant::TransactionResult => Self::TransactionResult(Box::default()),
18003            TypeVariant::TransactionResultResult => Self::TransactionResultResult(Box::default()),
18004            TypeVariant::TransactionResultExt => Self::TransactionResultExt(Box::default()),
18005            TypeVariant::Hash => Self::Hash(Box::default()),
18006            TypeVariant::Uint256 => Self::Uint256(Box::default()),
18007            TypeVariant::Uint32 => Self::Uint32(Box::default()),
18008            TypeVariant::Int32 => Self::Int32(Box::default()),
18009            TypeVariant::Uint64 => Self::Uint64(Box::default()),
18010            TypeVariant::Int64 => Self::Int64(Box::default()),
18011            TypeVariant::TimePoint => Self::TimePoint(Box::default()),
18012            TypeVariant::Duration => Self::Duration(Box::default()),
18013            TypeVariant::ExtensionPoint => Self::ExtensionPoint(Box::default()),
18014            TypeVariant::CryptoKeyType => Self::CryptoKeyType(Box::default()),
18015            TypeVariant::PublicKeyType => Self::PublicKeyType(Box::default()),
18016            TypeVariant::SignerKeyType => Self::SignerKeyType(Box::default()),
18017            TypeVariant::PublicKey => Self::PublicKey(Box::default()),
18018            TypeVariant::SignerKey => Self::SignerKey(Box::default()),
18019            TypeVariant::SignerKeyEd25519SignedPayload => {
18020                Self::SignerKeyEd25519SignedPayload(Box::default())
18021            }
18022            TypeVariant::Signature => Self::Signature(Box::default()),
18023            TypeVariant::SignatureHint => Self::SignatureHint(Box::default()),
18024            TypeVariant::NodeId => Self::NodeId(Box::default()),
18025            TypeVariant::AccountId => Self::AccountId(Box::default()),
18026            TypeVariant::ContractId => Self::ContractId(Box::default()),
18027            TypeVariant::Curve25519Secret => Self::Curve25519Secret(Box::default()),
18028            TypeVariant::Curve25519Public => Self::Curve25519Public(Box::default()),
18029            TypeVariant::HmacSha256Key => Self::HmacSha256Key(Box::default()),
18030            TypeVariant::HmacSha256Mac => Self::HmacSha256Mac(Box::default()),
18031            TypeVariant::ShortHashSeed => Self::ShortHashSeed(Box::default()),
18032            TypeVariant::BinaryFuseFilterType => Self::BinaryFuseFilterType(Box::default()),
18033            TypeVariant::SerializedBinaryFuseFilter => {
18034                Self::SerializedBinaryFuseFilter(Box::default())
18035            }
18036            TypeVariant::PoolId => Self::PoolId(Box::default()),
18037            TypeVariant::ClaimableBalanceIdType => Self::ClaimableBalanceIdType(Box::default()),
18038            TypeVariant::ClaimableBalanceId => Self::ClaimableBalanceId(Box::default()),
18039            #[cfg(feature = "test_feature")]
18040            TypeVariant::TestNextType => Self::TestNextType(Box::default()),
18041        }
18042    }
18043
18044    #[cfg(feature = "alloc")]
18045    #[must_use]
18046    #[allow(clippy::too_many_lines)]
18047    pub fn value(&self) -> &dyn core::any::Any {
18048        #[allow(clippy::match_same_arms)]
18049        match self {
18050            Self::Value(ref v) => v.as_ref(),
18051            Self::ScpBallot(ref v) => v.as_ref(),
18052            Self::ScpStatementType(ref v) => v.as_ref(),
18053            Self::ScpNomination(ref v) => v.as_ref(),
18054            Self::ScpStatement(ref v) => v.as_ref(),
18055            Self::ScpStatementPledges(ref v) => v.as_ref(),
18056            Self::ScpStatementPrepare(ref v) => v.as_ref(),
18057            Self::ScpStatementConfirm(ref v) => v.as_ref(),
18058            Self::ScpStatementExternalize(ref v) => v.as_ref(),
18059            Self::ScpEnvelope(ref v) => v.as_ref(),
18060            Self::ScpQuorumSet(ref v) => v.as_ref(),
18061            Self::EncodedLedgerKey(ref v) => v.as_ref(),
18062            Self::ConfigSettingContractExecutionLanesV0(ref v) => v.as_ref(),
18063            Self::ConfigSettingContractComputeV0(ref v) => v.as_ref(),
18064            Self::ConfigSettingContractParallelComputeV0(ref v) => v.as_ref(),
18065            Self::ConfigSettingContractLedgerCostV0(ref v) => v.as_ref(),
18066            Self::ConfigSettingContractLedgerCostExtV0(ref v) => v.as_ref(),
18067            Self::ConfigSettingContractHistoricalDataV0(ref v) => v.as_ref(),
18068            Self::ConfigSettingContractEventsV0(ref v) => v.as_ref(),
18069            Self::ConfigSettingContractBandwidthV0(ref v) => v.as_ref(),
18070            Self::ContractCostType(ref v) => v.as_ref(),
18071            Self::ContractCostParamEntry(ref v) => v.as_ref(),
18072            Self::StateArchivalSettings(ref v) => v.as_ref(),
18073            Self::EvictionIterator(ref v) => v.as_ref(),
18074            Self::ConfigSettingScpTiming(ref v) => v.as_ref(),
18075            Self::FrozenLedgerKeys(ref v) => v.as_ref(),
18076            Self::FrozenLedgerKeysDelta(ref v) => v.as_ref(),
18077            Self::FreezeBypassTxs(ref v) => v.as_ref(),
18078            Self::FreezeBypassTxsDelta(ref v) => v.as_ref(),
18079            Self::ContractCostParams(ref v) => v.as_ref(),
18080            Self::ConfigSettingId(ref v) => v.as_ref(),
18081            Self::ConfigSettingEntry(ref v) => v.as_ref(),
18082            Self::ScEnvMetaKind(ref v) => v.as_ref(),
18083            Self::ScEnvMetaEntry(ref v) => v.as_ref(),
18084            Self::ScEnvMetaEntryInterfaceVersion(ref v) => v.as_ref(),
18085            Self::ScMetaV0(ref v) => v.as_ref(),
18086            Self::ScMetaKind(ref v) => v.as_ref(),
18087            Self::ScMetaEntry(ref v) => v.as_ref(),
18088            Self::ScSpecType(ref v) => v.as_ref(),
18089            Self::ScSpecTypeOption(ref v) => v.as_ref(),
18090            Self::ScSpecTypeResult(ref v) => v.as_ref(),
18091            Self::ScSpecTypeVec(ref v) => v.as_ref(),
18092            Self::ScSpecTypeMap(ref v) => v.as_ref(),
18093            Self::ScSpecTypeTuple(ref v) => v.as_ref(),
18094            Self::ScSpecTypeBytesN(ref v) => v.as_ref(),
18095            Self::ScSpecTypeUdt(ref v) => v.as_ref(),
18096            Self::ScSpecTypeDef(ref v) => v.as_ref(),
18097            Self::ScSpecUdtStructFieldV0(ref v) => v.as_ref(),
18098            Self::ScSpecUdtStructV0(ref v) => v.as_ref(),
18099            Self::ScSpecUdtUnionCaseVoidV0(ref v) => v.as_ref(),
18100            Self::ScSpecUdtUnionCaseTupleV0(ref v) => v.as_ref(),
18101            Self::ScSpecUdtUnionCaseV0Kind(ref v) => v.as_ref(),
18102            Self::ScSpecUdtUnionCaseV0(ref v) => v.as_ref(),
18103            Self::ScSpecUdtUnionV0(ref v) => v.as_ref(),
18104            Self::ScSpecUdtEnumCaseV0(ref v) => v.as_ref(),
18105            Self::ScSpecUdtEnumV0(ref v) => v.as_ref(),
18106            Self::ScSpecUdtErrorEnumCaseV0(ref v) => v.as_ref(),
18107            Self::ScSpecUdtErrorEnumV0(ref v) => v.as_ref(),
18108            Self::ScSpecFunctionInputV0(ref v) => v.as_ref(),
18109            Self::ScSpecFunctionV0(ref v) => v.as_ref(),
18110            Self::ScSpecEventParamLocationV0(ref v) => v.as_ref(),
18111            Self::ScSpecEventParamV0(ref v) => v.as_ref(),
18112            Self::ScSpecEventDataFormat(ref v) => v.as_ref(),
18113            Self::ScSpecEventV0(ref v) => v.as_ref(),
18114            Self::ScSpecEntryKind(ref v) => v.as_ref(),
18115            Self::ScSpecEntry(ref v) => v.as_ref(),
18116            Self::ScValType(ref v) => v.as_ref(),
18117            Self::ScErrorType(ref v) => v.as_ref(),
18118            Self::ScErrorCode(ref v) => v.as_ref(),
18119            Self::ScError(ref v) => v.as_ref(),
18120            Self::UInt128Parts(ref v) => v.as_ref(),
18121            Self::Int128Parts(ref v) => v.as_ref(),
18122            Self::UInt256Parts(ref v) => v.as_ref(),
18123            Self::Int256Parts(ref v) => v.as_ref(),
18124            Self::ContractExecutableType(ref v) => v.as_ref(),
18125            Self::ContractExecutable(ref v) => v.as_ref(),
18126            Self::ScAddressType(ref v) => v.as_ref(),
18127            Self::MuxedEd25519Account(ref v) => v.as_ref(),
18128            Self::ScAddress(ref v) => v.as_ref(),
18129            Self::ScVec(ref v) => v.as_ref(),
18130            Self::ScMap(ref v) => v.as_ref(),
18131            Self::ScBytes(ref v) => v.as_ref(),
18132            Self::ScString(ref v) => v.as_ref(),
18133            Self::ScSymbol(ref v) => v.as_ref(),
18134            Self::ScNonceKey(ref v) => v.as_ref(),
18135            Self::ScContractInstance(ref v) => v.as_ref(),
18136            Self::ScVal(ref v) => v.as_ref(),
18137            Self::ScMapEntry(ref v) => v.as_ref(),
18138            Self::LedgerCloseMetaBatch(ref v) => v.as_ref(),
18139            Self::StoredTransactionSet(ref v) => v.as_ref(),
18140            Self::StoredDebugTransactionSet(ref v) => v.as_ref(),
18141            Self::PersistedScpStateV0(ref v) => v.as_ref(),
18142            Self::PersistedScpStateV1(ref v) => v.as_ref(),
18143            Self::PersistedScpState(ref v) => v.as_ref(),
18144            Self::Thresholds(ref v) => v.as_ref(),
18145            Self::String32(ref v) => v.as_ref(),
18146            Self::String64(ref v) => v.as_ref(),
18147            Self::SequenceNumber(ref v) => v.as_ref(),
18148            Self::DataValue(ref v) => v.as_ref(),
18149            Self::AssetCode4(ref v) => v.as_ref(),
18150            Self::AssetCode12(ref v) => v.as_ref(),
18151            Self::AssetType(ref v) => v.as_ref(),
18152            Self::AssetCode(ref v) => v.as_ref(),
18153            Self::AlphaNum4(ref v) => v.as_ref(),
18154            Self::AlphaNum12(ref v) => v.as_ref(),
18155            Self::Asset(ref v) => v.as_ref(),
18156            Self::Price(ref v) => v.as_ref(),
18157            Self::Liabilities(ref v) => v.as_ref(),
18158            Self::ThresholdIndexes(ref v) => v.as_ref(),
18159            Self::LedgerEntryType(ref v) => v.as_ref(),
18160            Self::Signer(ref v) => v.as_ref(),
18161            Self::AccountFlags(ref v) => v.as_ref(),
18162            Self::SponsorshipDescriptor(ref v) => v.as_ref(),
18163            Self::AccountEntryExtensionV3(ref v) => v.as_ref(),
18164            Self::AccountEntryExtensionV2(ref v) => v.as_ref(),
18165            Self::AccountEntryExtensionV2Ext(ref v) => v.as_ref(),
18166            Self::AccountEntryExtensionV1(ref v) => v.as_ref(),
18167            Self::AccountEntryExtensionV1Ext(ref v) => v.as_ref(),
18168            Self::AccountEntry(ref v) => v.as_ref(),
18169            Self::AccountEntryExt(ref v) => v.as_ref(),
18170            Self::TrustLineFlags(ref v) => v.as_ref(),
18171            Self::LiquidityPoolType(ref v) => v.as_ref(),
18172            Self::TrustLineAsset(ref v) => v.as_ref(),
18173            Self::TrustLineEntryExtensionV2(ref v) => v.as_ref(),
18174            Self::TrustLineEntryExtensionV2Ext(ref v) => v.as_ref(),
18175            Self::TrustLineEntry(ref v) => v.as_ref(),
18176            Self::TrustLineEntryExt(ref v) => v.as_ref(),
18177            Self::TrustLineEntryV1(ref v) => v.as_ref(),
18178            Self::TrustLineEntryV1Ext(ref v) => v.as_ref(),
18179            Self::OfferEntryFlags(ref v) => v.as_ref(),
18180            Self::OfferEntry(ref v) => v.as_ref(),
18181            Self::OfferEntryExt(ref v) => v.as_ref(),
18182            Self::DataEntry(ref v) => v.as_ref(),
18183            Self::DataEntryExt(ref v) => v.as_ref(),
18184            Self::ClaimPredicateType(ref v) => v.as_ref(),
18185            Self::ClaimPredicate(ref v) => v.as_ref(),
18186            Self::ClaimantType(ref v) => v.as_ref(),
18187            Self::Claimant(ref v) => v.as_ref(),
18188            Self::ClaimantV0(ref v) => v.as_ref(),
18189            Self::ClaimableBalanceFlags(ref v) => v.as_ref(),
18190            Self::ClaimableBalanceEntryExtensionV1(ref v) => v.as_ref(),
18191            Self::ClaimableBalanceEntryExtensionV1Ext(ref v) => v.as_ref(),
18192            Self::ClaimableBalanceEntry(ref v) => v.as_ref(),
18193            Self::ClaimableBalanceEntryExt(ref v) => v.as_ref(),
18194            Self::LiquidityPoolConstantProductParameters(ref v) => v.as_ref(),
18195            Self::LiquidityPoolEntry(ref v) => v.as_ref(),
18196            Self::LiquidityPoolEntryBody(ref v) => v.as_ref(),
18197            Self::LiquidityPoolEntryConstantProduct(ref v) => v.as_ref(),
18198            Self::ContractDataDurability(ref v) => v.as_ref(),
18199            Self::ContractDataEntry(ref v) => v.as_ref(),
18200            Self::ContractCodeCostInputs(ref v) => v.as_ref(),
18201            Self::ContractCodeEntry(ref v) => v.as_ref(),
18202            Self::ContractCodeEntryExt(ref v) => v.as_ref(),
18203            Self::ContractCodeEntryV1(ref v) => v.as_ref(),
18204            Self::TtlEntry(ref v) => v.as_ref(),
18205            Self::LedgerEntryExtensionV1(ref v) => v.as_ref(),
18206            Self::LedgerEntryExtensionV1Ext(ref v) => v.as_ref(),
18207            Self::LedgerEntry(ref v) => v.as_ref(),
18208            Self::LedgerEntryData(ref v) => v.as_ref(),
18209            Self::LedgerEntryExt(ref v) => v.as_ref(),
18210            Self::LedgerKey(ref v) => v.as_ref(),
18211            Self::LedgerKeyAccount(ref v) => v.as_ref(),
18212            Self::LedgerKeyTrustLine(ref v) => v.as_ref(),
18213            Self::LedgerKeyOffer(ref v) => v.as_ref(),
18214            Self::LedgerKeyData(ref v) => v.as_ref(),
18215            Self::LedgerKeyClaimableBalance(ref v) => v.as_ref(),
18216            Self::LedgerKeyLiquidityPool(ref v) => v.as_ref(),
18217            Self::LedgerKeyContractData(ref v) => v.as_ref(),
18218            Self::LedgerKeyContractCode(ref v) => v.as_ref(),
18219            Self::LedgerKeyConfigSetting(ref v) => v.as_ref(),
18220            Self::LedgerKeyTtl(ref v) => v.as_ref(),
18221            Self::EnvelopeType(ref v) => v.as_ref(),
18222            Self::BucketListType(ref v) => v.as_ref(),
18223            Self::BucketEntryType(ref v) => v.as_ref(),
18224            Self::HotArchiveBucketEntryType(ref v) => v.as_ref(),
18225            Self::BucketMetadata(ref v) => v.as_ref(),
18226            Self::BucketMetadataExt(ref v) => v.as_ref(),
18227            Self::BucketEntry(ref v) => v.as_ref(),
18228            Self::HotArchiveBucketEntry(ref v) => v.as_ref(),
18229            Self::UpgradeType(ref v) => v.as_ref(),
18230            Self::StellarValueType(ref v) => v.as_ref(),
18231            Self::LedgerCloseValueSignature(ref v) => v.as_ref(),
18232            Self::StellarValue(ref v) => v.as_ref(),
18233            Self::StellarValueExt(ref v) => v.as_ref(),
18234            #[cfg(feature = "cap_0083")]
18235            Self::StellarValueProposedValue(ref v) => v.as_ref(),
18236            Self::LedgerHeaderFlags(ref v) => v.as_ref(),
18237            Self::LedgerHeaderExtensionV1(ref v) => v.as_ref(),
18238            Self::LedgerHeaderExtensionV1Ext(ref v) => v.as_ref(),
18239            Self::LedgerHeader(ref v) => v.as_ref(),
18240            Self::LedgerHeaderExt(ref v) => v.as_ref(),
18241            Self::LedgerUpgradeType(ref v) => v.as_ref(),
18242            Self::ConfigUpgradeSetKey(ref v) => v.as_ref(),
18243            Self::LedgerUpgrade(ref v) => v.as_ref(),
18244            Self::ConfigUpgradeSet(ref v) => v.as_ref(),
18245            Self::TxSetComponentType(ref v) => v.as_ref(),
18246            Self::DependentTxCluster(ref v) => v.as_ref(),
18247            Self::ParallelTxExecutionStage(ref v) => v.as_ref(),
18248            Self::ParallelTxsComponent(ref v) => v.as_ref(),
18249            Self::TxSetComponent(ref v) => v.as_ref(),
18250            Self::TxSetComponentTxsMaybeDiscountedFee(ref v) => v.as_ref(),
18251            Self::TransactionPhase(ref v) => v.as_ref(),
18252            Self::TransactionSet(ref v) => v.as_ref(),
18253            Self::TransactionSetV1(ref v) => v.as_ref(),
18254            Self::GeneralizedTransactionSet(ref v) => v.as_ref(),
18255            Self::TransactionResultPair(ref v) => v.as_ref(),
18256            Self::TransactionResultSet(ref v) => v.as_ref(),
18257            Self::TransactionHistoryEntry(ref v) => v.as_ref(),
18258            Self::TransactionHistoryEntryExt(ref v) => v.as_ref(),
18259            Self::TransactionHistoryResultEntry(ref v) => v.as_ref(),
18260            Self::TransactionHistoryResultEntryExt(ref v) => v.as_ref(),
18261            Self::LedgerHeaderHistoryEntry(ref v) => v.as_ref(),
18262            Self::LedgerHeaderHistoryEntryExt(ref v) => v.as_ref(),
18263            Self::LedgerScpMessages(ref v) => v.as_ref(),
18264            Self::ScpHistoryEntryV0(ref v) => v.as_ref(),
18265            Self::ScpHistoryEntry(ref v) => v.as_ref(),
18266            Self::LedgerEntryChangeType(ref v) => v.as_ref(),
18267            Self::LedgerEntryChange(ref v) => v.as_ref(),
18268            Self::LedgerEntryChanges(ref v) => v.as_ref(),
18269            Self::OperationMeta(ref v) => v.as_ref(),
18270            Self::TransactionMetaV1(ref v) => v.as_ref(),
18271            Self::TransactionMetaV2(ref v) => v.as_ref(),
18272            Self::ContractEventType(ref v) => v.as_ref(),
18273            Self::ContractEvent(ref v) => v.as_ref(),
18274            Self::ContractEventBody(ref v) => v.as_ref(),
18275            Self::ContractEventV0(ref v) => v.as_ref(),
18276            Self::DiagnosticEvent(ref v) => v.as_ref(),
18277            Self::SorobanTransactionMetaExtV1(ref v) => v.as_ref(),
18278            Self::SorobanTransactionMetaExt(ref v) => v.as_ref(),
18279            Self::SorobanTransactionMeta(ref v) => v.as_ref(),
18280            Self::TransactionMetaV3(ref v) => v.as_ref(),
18281            Self::OperationMetaV2(ref v) => v.as_ref(),
18282            Self::SorobanTransactionMetaV2(ref v) => v.as_ref(),
18283            Self::TransactionEventStage(ref v) => v.as_ref(),
18284            Self::TransactionEvent(ref v) => v.as_ref(),
18285            Self::TransactionMetaV4(ref v) => v.as_ref(),
18286            Self::InvokeHostFunctionSuccessPreImage(ref v) => v.as_ref(),
18287            Self::TransactionMeta(ref v) => v.as_ref(),
18288            Self::TransactionResultMeta(ref v) => v.as_ref(),
18289            Self::TransactionResultMetaV1(ref v) => v.as_ref(),
18290            Self::UpgradeEntryMeta(ref v) => v.as_ref(),
18291            Self::LedgerCloseMetaV0(ref v) => v.as_ref(),
18292            Self::LedgerCloseMetaExtV1(ref v) => v.as_ref(),
18293            Self::LedgerCloseMetaExt(ref v) => v.as_ref(),
18294            Self::LedgerCloseMetaV1(ref v) => v.as_ref(),
18295            Self::LedgerCloseMetaV2(ref v) => v.as_ref(),
18296            Self::LedgerCloseMeta(ref v) => v.as_ref(),
18297            Self::ErrorCode(ref v) => v.as_ref(),
18298            Self::SError(ref v) => v.as_ref(),
18299            Self::SendMore(ref v) => v.as_ref(),
18300            Self::SendMoreExtended(ref v) => v.as_ref(),
18301            Self::AuthCert(ref v) => v.as_ref(),
18302            Self::Hello(ref v) => v.as_ref(),
18303            Self::Auth(ref v) => v.as_ref(),
18304            Self::IpAddrType(ref v) => v.as_ref(),
18305            Self::PeerAddress(ref v) => v.as_ref(),
18306            Self::PeerAddressIp(ref v) => v.as_ref(),
18307            Self::MessageType(ref v) => v.as_ref(),
18308            Self::DontHave(ref v) => v.as_ref(),
18309            Self::SurveyMessageCommandType(ref v) => v.as_ref(),
18310            Self::SurveyMessageResponseType(ref v) => v.as_ref(),
18311            Self::TimeSlicedSurveyStartCollectingMessage(ref v) => v.as_ref(),
18312            Self::SignedTimeSlicedSurveyStartCollectingMessage(ref v) => v.as_ref(),
18313            Self::TimeSlicedSurveyStopCollectingMessage(ref v) => v.as_ref(),
18314            Self::SignedTimeSlicedSurveyStopCollectingMessage(ref v) => v.as_ref(),
18315            Self::SurveyRequestMessage(ref v) => v.as_ref(),
18316            Self::TimeSlicedSurveyRequestMessage(ref v) => v.as_ref(),
18317            Self::SignedTimeSlicedSurveyRequestMessage(ref v) => v.as_ref(),
18318            Self::EncryptedBody(ref v) => v.as_ref(),
18319            Self::SurveyResponseMessage(ref v) => v.as_ref(),
18320            Self::TimeSlicedSurveyResponseMessage(ref v) => v.as_ref(),
18321            Self::SignedTimeSlicedSurveyResponseMessage(ref v) => v.as_ref(),
18322            Self::PeerStats(ref v) => v.as_ref(),
18323            Self::TimeSlicedNodeData(ref v) => v.as_ref(),
18324            Self::TimeSlicedPeerData(ref v) => v.as_ref(),
18325            Self::TimeSlicedPeerDataList(ref v) => v.as_ref(),
18326            Self::TopologyResponseBodyV2(ref v) => v.as_ref(),
18327            Self::SurveyResponseBody(ref v) => v.as_ref(),
18328            Self::TxAdvertVector(ref v) => v.as_ref(),
18329            Self::FloodAdvert(ref v) => v.as_ref(),
18330            Self::TxDemandVector(ref v) => v.as_ref(),
18331            Self::FloodDemand(ref v) => v.as_ref(),
18332            Self::StellarMessage(ref v) => v.as_ref(),
18333            Self::AuthenticatedMessage(ref v) => v.as_ref(),
18334            Self::AuthenticatedMessageV0(ref v) => v.as_ref(),
18335            Self::LiquidityPoolParameters(ref v) => v.as_ref(),
18336            Self::MuxedAccount(ref v) => v.as_ref(),
18337            Self::MuxedAccountMed25519(ref v) => v.as_ref(),
18338            Self::DecoratedSignature(ref v) => v.as_ref(),
18339            Self::OperationType(ref v) => v.as_ref(),
18340            Self::CreateAccountOp(ref v) => v.as_ref(),
18341            Self::PaymentOp(ref v) => v.as_ref(),
18342            Self::PathPaymentStrictReceiveOp(ref v) => v.as_ref(),
18343            Self::PathPaymentStrictSendOp(ref v) => v.as_ref(),
18344            Self::ManageSellOfferOp(ref v) => v.as_ref(),
18345            Self::ManageBuyOfferOp(ref v) => v.as_ref(),
18346            Self::CreatePassiveSellOfferOp(ref v) => v.as_ref(),
18347            Self::SetOptionsOp(ref v) => v.as_ref(),
18348            Self::ChangeTrustAsset(ref v) => v.as_ref(),
18349            Self::ChangeTrustOp(ref v) => v.as_ref(),
18350            Self::AllowTrustOp(ref v) => v.as_ref(),
18351            Self::ManageDataOp(ref v) => v.as_ref(),
18352            Self::BumpSequenceOp(ref v) => v.as_ref(),
18353            Self::CreateClaimableBalanceOp(ref v) => v.as_ref(),
18354            Self::ClaimClaimableBalanceOp(ref v) => v.as_ref(),
18355            Self::BeginSponsoringFutureReservesOp(ref v) => v.as_ref(),
18356            Self::RevokeSponsorshipType(ref v) => v.as_ref(),
18357            Self::RevokeSponsorshipOp(ref v) => v.as_ref(),
18358            Self::RevokeSponsorshipOpSigner(ref v) => v.as_ref(),
18359            Self::ClawbackOp(ref v) => v.as_ref(),
18360            Self::ClawbackClaimableBalanceOp(ref v) => v.as_ref(),
18361            Self::SetTrustLineFlagsOp(ref v) => v.as_ref(),
18362            Self::LiquidityPoolDepositOp(ref v) => v.as_ref(),
18363            Self::LiquidityPoolWithdrawOp(ref v) => v.as_ref(),
18364            Self::HostFunctionType(ref v) => v.as_ref(),
18365            Self::ContractIdPreimageType(ref v) => v.as_ref(),
18366            Self::ContractIdPreimage(ref v) => v.as_ref(),
18367            Self::ContractIdPreimageFromAddress(ref v) => v.as_ref(),
18368            Self::CreateContractArgs(ref v) => v.as_ref(),
18369            Self::CreateContractArgsV2(ref v) => v.as_ref(),
18370            Self::InvokeContractArgs(ref v) => v.as_ref(),
18371            Self::HostFunction(ref v) => v.as_ref(),
18372            Self::SorobanAuthorizedFunctionType(ref v) => v.as_ref(),
18373            Self::SorobanAuthorizedFunction(ref v) => v.as_ref(),
18374            Self::SorobanAuthorizedInvocation(ref v) => v.as_ref(),
18375            Self::SorobanAddressCredentials(ref v) => v.as_ref(),
18376            Self::SorobanDelegateSignature(ref v) => v.as_ref(),
18377            Self::SorobanAddressCredentialsWithDelegates(ref v) => v.as_ref(),
18378            Self::SorobanCredentialsType(ref v) => v.as_ref(),
18379            Self::SorobanCredentials(ref v) => v.as_ref(),
18380            Self::SorobanAuthorizationEntry(ref v) => v.as_ref(),
18381            Self::SorobanAuthorizationEntries(ref v) => v.as_ref(),
18382            Self::InvokeHostFunctionOp(ref v) => v.as_ref(),
18383            Self::ExtendFootprintTtlOp(ref v) => v.as_ref(),
18384            Self::RestoreFootprintOp(ref v) => v.as_ref(),
18385            Self::Operation(ref v) => v.as_ref(),
18386            Self::OperationBody(ref v) => v.as_ref(),
18387            Self::HashIdPreimage(ref v) => v.as_ref(),
18388            Self::HashIdPreimageOperationId(ref v) => v.as_ref(),
18389            Self::HashIdPreimageRevokeId(ref v) => v.as_ref(),
18390            Self::HashIdPreimageContractId(ref v) => v.as_ref(),
18391            Self::HashIdPreimageSorobanAuthorization(ref v) => v.as_ref(),
18392            Self::HashIdPreimageSorobanAuthorizationWithAddress(ref v) => v.as_ref(),
18393            Self::MemoType(ref v) => v.as_ref(),
18394            Self::Memo(ref v) => v.as_ref(),
18395            Self::TimeBounds(ref v) => v.as_ref(),
18396            Self::LedgerBounds(ref v) => v.as_ref(),
18397            Self::PreconditionsV2(ref v) => v.as_ref(),
18398            Self::PreconditionType(ref v) => v.as_ref(),
18399            Self::Preconditions(ref v) => v.as_ref(),
18400            Self::LedgerFootprint(ref v) => v.as_ref(),
18401            Self::SorobanResources(ref v) => v.as_ref(),
18402            Self::SorobanResourcesExtV0(ref v) => v.as_ref(),
18403            Self::SorobanTransactionData(ref v) => v.as_ref(),
18404            Self::SorobanTransactionDataExt(ref v) => v.as_ref(),
18405            Self::TransactionV0(ref v) => v.as_ref(),
18406            Self::TransactionV0Ext(ref v) => v.as_ref(),
18407            Self::TransactionV0Envelope(ref v) => v.as_ref(),
18408            Self::Transaction(ref v) => v.as_ref(),
18409            Self::TransactionExt(ref v) => v.as_ref(),
18410            Self::TransactionV1Envelope(ref v) => v.as_ref(),
18411            Self::FeeBumpTransaction(ref v) => v.as_ref(),
18412            Self::FeeBumpTransactionInnerTx(ref v) => v.as_ref(),
18413            Self::FeeBumpTransactionExt(ref v) => v.as_ref(),
18414            Self::FeeBumpTransactionEnvelope(ref v) => v.as_ref(),
18415            Self::TransactionEnvelope(ref v) => v.as_ref(),
18416            Self::TransactionSignaturePayload(ref v) => v.as_ref(),
18417            Self::TransactionSignaturePayloadTaggedTransaction(ref v) => v.as_ref(),
18418            Self::ClaimAtomType(ref v) => v.as_ref(),
18419            Self::ClaimOfferAtomV0(ref v) => v.as_ref(),
18420            Self::ClaimOfferAtom(ref v) => v.as_ref(),
18421            Self::ClaimLiquidityAtom(ref v) => v.as_ref(),
18422            Self::ClaimAtom(ref v) => v.as_ref(),
18423            Self::CreateAccountResultCode(ref v) => v.as_ref(),
18424            Self::CreateAccountResult(ref v) => v.as_ref(),
18425            Self::PaymentResultCode(ref v) => v.as_ref(),
18426            Self::PaymentResult(ref v) => v.as_ref(),
18427            Self::PathPaymentStrictReceiveResultCode(ref v) => v.as_ref(),
18428            Self::SimplePaymentResult(ref v) => v.as_ref(),
18429            Self::PathPaymentStrictReceiveResult(ref v) => v.as_ref(),
18430            Self::PathPaymentStrictReceiveResultSuccess(ref v) => v.as_ref(),
18431            Self::PathPaymentStrictSendResultCode(ref v) => v.as_ref(),
18432            Self::PathPaymentStrictSendResult(ref v) => v.as_ref(),
18433            Self::PathPaymentStrictSendResultSuccess(ref v) => v.as_ref(),
18434            Self::ManageSellOfferResultCode(ref v) => v.as_ref(),
18435            Self::ManageOfferEffect(ref v) => v.as_ref(),
18436            Self::ManageOfferSuccessResult(ref v) => v.as_ref(),
18437            Self::ManageOfferSuccessResultOffer(ref v) => v.as_ref(),
18438            Self::ManageSellOfferResult(ref v) => v.as_ref(),
18439            Self::ManageBuyOfferResultCode(ref v) => v.as_ref(),
18440            Self::ManageBuyOfferResult(ref v) => v.as_ref(),
18441            Self::SetOptionsResultCode(ref v) => v.as_ref(),
18442            Self::SetOptionsResult(ref v) => v.as_ref(),
18443            Self::ChangeTrustResultCode(ref v) => v.as_ref(),
18444            Self::ChangeTrustResult(ref v) => v.as_ref(),
18445            Self::AllowTrustResultCode(ref v) => v.as_ref(),
18446            Self::AllowTrustResult(ref v) => v.as_ref(),
18447            Self::AccountMergeResultCode(ref v) => v.as_ref(),
18448            Self::AccountMergeResult(ref v) => v.as_ref(),
18449            Self::InflationResultCode(ref v) => v.as_ref(),
18450            Self::InflationPayout(ref v) => v.as_ref(),
18451            Self::InflationResult(ref v) => v.as_ref(),
18452            Self::ManageDataResultCode(ref v) => v.as_ref(),
18453            Self::ManageDataResult(ref v) => v.as_ref(),
18454            Self::BumpSequenceResultCode(ref v) => v.as_ref(),
18455            Self::BumpSequenceResult(ref v) => v.as_ref(),
18456            Self::CreateClaimableBalanceResultCode(ref v) => v.as_ref(),
18457            Self::CreateClaimableBalanceResult(ref v) => v.as_ref(),
18458            Self::ClaimClaimableBalanceResultCode(ref v) => v.as_ref(),
18459            Self::ClaimClaimableBalanceResult(ref v) => v.as_ref(),
18460            Self::BeginSponsoringFutureReservesResultCode(ref v) => v.as_ref(),
18461            Self::BeginSponsoringFutureReservesResult(ref v) => v.as_ref(),
18462            Self::EndSponsoringFutureReservesResultCode(ref v) => v.as_ref(),
18463            Self::EndSponsoringFutureReservesResult(ref v) => v.as_ref(),
18464            Self::RevokeSponsorshipResultCode(ref v) => v.as_ref(),
18465            Self::RevokeSponsorshipResult(ref v) => v.as_ref(),
18466            Self::ClawbackResultCode(ref v) => v.as_ref(),
18467            Self::ClawbackResult(ref v) => v.as_ref(),
18468            Self::ClawbackClaimableBalanceResultCode(ref v) => v.as_ref(),
18469            Self::ClawbackClaimableBalanceResult(ref v) => v.as_ref(),
18470            Self::SetTrustLineFlagsResultCode(ref v) => v.as_ref(),
18471            Self::SetTrustLineFlagsResult(ref v) => v.as_ref(),
18472            Self::LiquidityPoolDepositResultCode(ref v) => v.as_ref(),
18473            Self::LiquidityPoolDepositResult(ref v) => v.as_ref(),
18474            Self::LiquidityPoolWithdrawResultCode(ref v) => v.as_ref(),
18475            Self::LiquidityPoolWithdrawResult(ref v) => v.as_ref(),
18476            Self::InvokeHostFunctionResultCode(ref v) => v.as_ref(),
18477            Self::InvokeHostFunctionResult(ref v) => v.as_ref(),
18478            Self::ExtendFootprintTtlResultCode(ref v) => v.as_ref(),
18479            Self::ExtendFootprintTtlResult(ref v) => v.as_ref(),
18480            Self::RestoreFootprintResultCode(ref v) => v.as_ref(),
18481            Self::RestoreFootprintResult(ref v) => v.as_ref(),
18482            Self::OperationResultCode(ref v) => v.as_ref(),
18483            Self::OperationResult(ref v) => v.as_ref(),
18484            Self::OperationResultTr(ref v) => v.as_ref(),
18485            Self::TransactionResultCode(ref v) => v.as_ref(),
18486            Self::InnerTransactionResult(ref v) => v.as_ref(),
18487            Self::InnerTransactionResultResult(ref v) => v.as_ref(),
18488            Self::InnerTransactionResultExt(ref v) => v.as_ref(),
18489            Self::InnerTransactionResultPair(ref v) => v.as_ref(),
18490            Self::TransactionResult(ref v) => v.as_ref(),
18491            Self::TransactionResultResult(ref v) => v.as_ref(),
18492            Self::TransactionResultExt(ref v) => v.as_ref(),
18493            Self::Hash(ref v) => v.as_ref(),
18494            Self::Uint256(ref v) => v.as_ref(),
18495            Self::Uint32(ref v) => v.as_ref(),
18496            Self::Int32(ref v) => v.as_ref(),
18497            Self::Uint64(ref v) => v.as_ref(),
18498            Self::Int64(ref v) => v.as_ref(),
18499            Self::TimePoint(ref v) => v.as_ref(),
18500            Self::Duration(ref v) => v.as_ref(),
18501            Self::ExtensionPoint(ref v) => v.as_ref(),
18502            Self::CryptoKeyType(ref v) => v.as_ref(),
18503            Self::PublicKeyType(ref v) => v.as_ref(),
18504            Self::SignerKeyType(ref v) => v.as_ref(),
18505            Self::PublicKey(ref v) => v.as_ref(),
18506            Self::SignerKey(ref v) => v.as_ref(),
18507            Self::SignerKeyEd25519SignedPayload(ref v) => v.as_ref(),
18508            Self::Signature(ref v) => v.as_ref(),
18509            Self::SignatureHint(ref v) => v.as_ref(),
18510            Self::NodeId(ref v) => v.as_ref(),
18511            Self::AccountId(ref v) => v.as_ref(),
18512            Self::ContractId(ref v) => v.as_ref(),
18513            Self::Curve25519Secret(ref v) => v.as_ref(),
18514            Self::Curve25519Public(ref v) => v.as_ref(),
18515            Self::HmacSha256Key(ref v) => v.as_ref(),
18516            Self::HmacSha256Mac(ref v) => v.as_ref(),
18517            Self::ShortHashSeed(ref v) => v.as_ref(),
18518            Self::BinaryFuseFilterType(ref v) => v.as_ref(),
18519            Self::SerializedBinaryFuseFilter(ref v) => v.as_ref(),
18520            Self::PoolId(ref v) => v.as_ref(),
18521            Self::ClaimableBalanceIdType(ref v) => v.as_ref(),
18522            Self::ClaimableBalanceId(ref v) => v.as_ref(),
18523            #[cfg(feature = "test_feature")]
18524            Self::TestNextType(ref v) => v.as_ref(),
18525        }
18526    }
18527
18528    #[must_use]
18529    #[allow(clippy::too_many_lines)]
18530    pub const fn name(&self) -> &'static str {
18531        match self {
18532            Self::Value(_) => "Value",
18533            Self::ScpBallot(_) => "ScpBallot",
18534            Self::ScpStatementType(_) => "ScpStatementType",
18535            Self::ScpNomination(_) => "ScpNomination",
18536            Self::ScpStatement(_) => "ScpStatement",
18537            Self::ScpStatementPledges(_) => "ScpStatementPledges",
18538            Self::ScpStatementPrepare(_) => "ScpStatementPrepare",
18539            Self::ScpStatementConfirm(_) => "ScpStatementConfirm",
18540            Self::ScpStatementExternalize(_) => "ScpStatementExternalize",
18541            Self::ScpEnvelope(_) => "ScpEnvelope",
18542            Self::ScpQuorumSet(_) => "ScpQuorumSet",
18543            Self::EncodedLedgerKey(_) => "EncodedLedgerKey",
18544            Self::ConfigSettingContractExecutionLanesV0(_) => {
18545                "ConfigSettingContractExecutionLanesV0"
18546            }
18547            Self::ConfigSettingContractComputeV0(_) => "ConfigSettingContractComputeV0",
18548            Self::ConfigSettingContractParallelComputeV0(_) => {
18549                "ConfigSettingContractParallelComputeV0"
18550            }
18551            Self::ConfigSettingContractLedgerCostV0(_) => "ConfigSettingContractLedgerCostV0",
18552            Self::ConfigSettingContractLedgerCostExtV0(_) => "ConfigSettingContractLedgerCostExtV0",
18553            Self::ConfigSettingContractHistoricalDataV0(_) => {
18554                "ConfigSettingContractHistoricalDataV0"
18555            }
18556            Self::ConfigSettingContractEventsV0(_) => "ConfigSettingContractEventsV0",
18557            Self::ConfigSettingContractBandwidthV0(_) => "ConfigSettingContractBandwidthV0",
18558            Self::ContractCostType(_) => "ContractCostType",
18559            Self::ContractCostParamEntry(_) => "ContractCostParamEntry",
18560            Self::StateArchivalSettings(_) => "StateArchivalSettings",
18561            Self::EvictionIterator(_) => "EvictionIterator",
18562            Self::ConfigSettingScpTiming(_) => "ConfigSettingScpTiming",
18563            Self::FrozenLedgerKeys(_) => "FrozenLedgerKeys",
18564            Self::FrozenLedgerKeysDelta(_) => "FrozenLedgerKeysDelta",
18565            Self::FreezeBypassTxs(_) => "FreezeBypassTxs",
18566            Self::FreezeBypassTxsDelta(_) => "FreezeBypassTxsDelta",
18567            Self::ContractCostParams(_) => "ContractCostParams",
18568            Self::ConfigSettingId(_) => "ConfigSettingId",
18569            Self::ConfigSettingEntry(_) => "ConfigSettingEntry",
18570            Self::ScEnvMetaKind(_) => "ScEnvMetaKind",
18571            Self::ScEnvMetaEntry(_) => "ScEnvMetaEntry",
18572            Self::ScEnvMetaEntryInterfaceVersion(_) => "ScEnvMetaEntryInterfaceVersion",
18573            Self::ScMetaV0(_) => "ScMetaV0",
18574            Self::ScMetaKind(_) => "ScMetaKind",
18575            Self::ScMetaEntry(_) => "ScMetaEntry",
18576            Self::ScSpecType(_) => "ScSpecType",
18577            Self::ScSpecTypeOption(_) => "ScSpecTypeOption",
18578            Self::ScSpecTypeResult(_) => "ScSpecTypeResult",
18579            Self::ScSpecTypeVec(_) => "ScSpecTypeVec",
18580            Self::ScSpecTypeMap(_) => "ScSpecTypeMap",
18581            Self::ScSpecTypeTuple(_) => "ScSpecTypeTuple",
18582            Self::ScSpecTypeBytesN(_) => "ScSpecTypeBytesN",
18583            Self::ScSpecTypeUdt(_) => "ScSpecTypeUdt",
18584            Self::ScSpecTypeDef(_) => "ScSpecTypeDef",
18585            Self::ScSpecUdtStructFieldV0(_) => "ScSpecUdtStructFieldV0",
18586            Self::ScSpecUdtStructV0(_) => "ScSpecUdtStructV0",
18587            Self::ScSpecUdtUnionCaseVoidV0(_) => "ScSpecUdtUnionCaseVoidV0",
18588            Self::ScSpecUdtUnionCaseTupleV0(_) => "ScSpecUdtUnionCaseTupleV0",
18589            Self::ScSpecUdtUnionCaseV0Kind(_) => "ScSpecUdtUnionCaseV0Kind",
18590            Self::ScSpecUdtUnionCaseV0(_) => "ScSpecUdtUnionCaseV0",
18591            Self::ScSpecUdtUnionV0(_) => "ScSpecUdtUnionV0",
18592            Self::ScSpecUdtEnumCaseV0(_) => "ScSpecUdtEnumCaseV0",
18593            Self::ScSpecUdtEnumV0(_) => "ScSpecUdtEnumV0",
18594            Self::ScSpecUdtErrorEnumCaseV0(_) => "ScSpecUdtErrorEnumCaseV0",
18595            Self::ScSpecUdtErrorEnumV0(_) => "ScSpecUdtErrorEnumV0",
18596            Self::ScSpecFunctionInputV0(_) => "ScSpecFunctionInputV0",
18597            Self::ScSpecFunctionV0(_) => "ScSpecFunctionV0",
18598            Self::ScSpecEventParamLocationV0(_) => "ScSpecEventParamLocationV0",
18599            Self::ScSpecEventParamV0(_) => "ScSpecEventParamV0",
18600            Self::ScSpecEventDataFormat(_) => "ScSpecEventDataFormat",
18601            Self::ScSpecEventV0(_) => "ScSpecEventV0",
18602            Self::ScSpecEntryKind(_) => "ScSpecEntryKind",
18603            Self::ScSpecEntry(_) => "ScSpecEntry",
18604            Self::ScValType(_) => "ScValType",
18605            Self::ScErrorType(_) => "ScErrorType",
18606            Self::ScErrorCode(_) => "ScErrorCode",
18607            Self::ScError(_) => "ScError",
18608            Self::UInt128Parts(_) => "UInt128Parts",
18609            Self::Int128Parts(_) => "Int128Parts",
18610            Self::UInt256Parts(_) => "UInt256Parts",
18611            Self::Int256Parts(_) => "Int256Parts",
18612            Self::ContractExecutableType(_) => "ContractExecutableType",
18613            Self::ContractExecutable(_) => "ContractExecutable",
18614            Self::ScAddressType(_) => "ScAddressType",
18615            Self::MuxedEd25519Account(_) => "MuxedEd25519Account",
18616            Self::ScAddress(_) => "ScAddress",
18617            Self::ScVec(_) => "ScVec",
18618            Self::ScMap(_) => "ScMap",
18619            Self::ScBytes(_) => "ScBytes",
18620            Self::ScString(_) => "ScString",
18621            Self::ScSymbol(_) => "ScSymbol",
18622            Self::ScNonceKey(_) => "ScNonceKey",
18623            Self::ScContractInstance(_) => "ScContractInstance",
18624            Self::ScVal(_) => "ScVal",
18625            Self::ScMapEntry(_) => "ScMapEntry",
18626            Self::LedgerCloseMetaBatch(_) => "LedgerCloseMetaBatch",
18627            Self::StoredTransactionSet(_) => "StoredTransactionSet",
18628            Self::StoredDebugTransactionSet(_) => "StoredDebugTransactionSet",
18629            Self::PersistedScpStateV0(_) => "PersistedScpStateV0",
18630            Self::PersistedScpStateV1(_) => "PersistedScpStateV1",
18631            Self::PersistedScpState(_) => "PersistedScpState",
18632            Self::Thresholds(_) => "Thresholds",
18633            Self::String32(_) => "String32",
18634            Self::String64(_) => "String64",
18635            Self::SequenceNumber(_) => "SequenceNumber",
18636            Self::DataValue(_) => "DataValue",
18637            Self::AssetCode4(_) => "AssetCode4",
18638            Self::AssetCode12(_) => "AssetCode12",
18639            Self::AssetType(_) => "AssetType",
18640            Self::AssetCode(_) => "AssetCode",
18641            Self::AlphaNum4(_) => "AlphaNum4",
18642            Self::AlphaNum12(_) => "AlphaNum12",
18643            Self::Asset(_) => "Asset",
18644            Self::Price(_) => "Price",
18645            Self::Liabilities(_) => "Liabilities",
18646            Self::ThresholdIndexes(_) => "ThresholdIndexes",
18647            Self::LedgerEntryType(_) => "LedgerEntryType",
18648            Self::Signer(_) => "Signer",
18649            Self::AccountFlags(_) => "AccountFlags",
18650            Self::SponsorshipDescriptor(_) => "SponsorshipDescriptor",
18651            Self::AccountEntryExtensionV3(_) => "AccountEntryExtensionV3",
18652            Self::AccountEntryExtensionV2(_) => "AccountEntryExtensionV2",
18653            Self::AccountEntryExtensionV2Ext(_) => "AccountEntryExtensionV2Ext",
18654            Self::AccountEntryExtensionV1(_) => "AccountEntryExtensionV1",
18655            Self::AccountEntryExtensionV1Ext(_) => "AccountEntryExtensionV1Ext",
18656            Self::AccountEntry(_) => "AccountEntry",
18657            Self::AccountEntryExt(_) => "AccountEntryExt",
18658            Self::TrustLineFlags(_) => "TrustLineFlags",
18659            Self::LiquidityPoolType(_) => "LiquidityPoolType",
18660            Self::TrustLineAsset(_) => "TrustLineAsset",
18661            Self::TrustLineEntryExtensionV2(_) => "TrustLineEntryExtensionV2",
18662            Self::TrustLineEntryExtensionV2Ext(_) => "TrustLineEntryExtensionV2Ext",
18663            Self::TrustLineEntry(_) => "TrustLineEntry",
18664            Self::TrustLineEntryExt(_) => "TrustLineEntryExt",
18665            Self::TrustLineEntryV1(_) => "TrustLineEntryV1",
18666            Self::TrustLineEntryV1Ext(_) => "TrustLineEntryV1Ext",
18667            Self::OfferEntryFlags(_) => "OfferEntryFlags",
18668            Self::OfferEntry(_) => "OfferEntry",
18669            Self::OfferEntryExt(_) => "OfferEntryExt",
18670            Self::DataEntry(_) => "DataEntry",
18671            Self::DataEntryExt(_) => "DataEntryExt",
18672            Self::ClaimPredicateType(_) => "ClaimPredicateType",
18673            Self::ClaimPredicate(_) => "ClaimPredicate",
18674            Self::ClaimantType(_) => "ClaimantType",
18675            Self::Claimant(_) => "Claimant",
18676            Self::ClaimantV0(_) => "ClaimantV0",
18677            Self::ClaimableBalanceFlags(_) => "ClaimableBalanceFlags",
18678            Self::ClaimableBalanceEntryExtensionV1(_) => "ClaimableBalanceEntryExtensionV1",
18679            Self::ClaimableBalanceEntryExtensionV1Ext(_) => "ClaimableBalanceEntryExtensionV1Ext",
18680            Self::ClaimableBalanceEntry(_) => "ClaimableBalanceEntry",
18681            Self::ClaimableBalanceEntryExt(_) => "ClaimableBalanceEntryExt",
18682            Self::LiquidityPoolConstantProductParameters(_) => {
18683                "LiquidityPoolConstantProductParameters"
18684            }
18685            Self::LiquidityPoolEntry(_) => "LiquidityPoolEntry",
18686            Self::LiquidityPoolEntryBody(_) => "LiquidityPoolEntryBody",
18687            Self::LiquidityPoolEntryConstantProduct(_) => "LiquidityPoolEntryConstantProduct",
18688            Self::ContractDataDurability(_) => "ContractDataDurability",
18689            Self::ContractDataEntry(_) => "ContractDataEntry",
18690            Self::ContractCodeCostInputs(_) => "ContractCodeCostInputs",
18691            Self::ContractCodeEntry(_) => "ContractCodeEntry",
18692            Self::ContractCodeEntryExt(_) => "ContractCodeEntryExt",
18693            Self::ContractCodeEntryV1(_) => "ContractCodeEntryV1",
18694            Self::TtlEntry(_) => "TtlEntry",
18695            Self::LedgerEntryExtensionV1(_) => "LedgerEntryExtensionV1",
18696            Self::LedgerEntryExtensionV1Ext(_) => "LedgerEntryExtensionV1Ext",
18697            Self::LedgerEntry(_) => "LedgerEntry",
18698            Self::LedgerEntryData(_) => "LedgerEntryData",
18699            Self::LedgerEntryExt(_) => "LedgerEntryExt",
18700            Self::LedgerKey(_) => "LedgerKey",
18701            Self::LedgerKeyAccount(_) => "LedgerKeyAccount",
18702            Self::LedgerKeyTrustLine(_) => "LedgerKeyTrustLine",
18703            Self::LedgerKeyOffer(_) => "LedgerKeyOffer",
18704            Self::LedgerKeyData(_) => "LedgerKeyData",
18705            Self::LedgerKeyClaimableBalance(_) => "LedgerKeyClaimableBalance",
18706            Self::LedgerKeyLiquidityPool(_) => "LedgerKeyLiquidityPool",
18707            Self::LedgerKeyContractData(_) => "LedgerKeyContractData",
18708            Self::LedgerKeyContractCode(_) => "LedgerKeyContractCode",
18709            Self::LedgerKeyConfigSetting(_) => "LedgerKeyConfigSetting",
18710            Self::LedgerKeyTtl(_) => "LedgerKeyTtl",
18711            Self::EnvelopeType(_) => "EnvelopeType",
18712            Self::BucketListType(_) => "BucketListType",
18713            Self::BucketEntryType(_) => "BucketEntryType",
18714            Self::HotArchiveBucketEntryType(_) => "HotArchiveBucketEntryType",
18715            Self::BucketMetadata(_) => "BucketMetadata",
18716            Self::BucketMetadataExt(_) => "BucketMetadataExt",
18717            Self::BucketEntry(_) => "BucketEntry",
18718            Self::HotArchiveBucketEntry(_) => "HotArchiveBucketEntry",
18719            Self::UpgradeType(_) => "UpgradeType",
18720            Self::StellarValueType(_) => "StellarValueType",
18721            Self::LedgerCloseValueSignature(_) => "LedgerCloseValueSignature",
18722            Self::StellarValue(_) => "StellarValue",
18723            Self::StellarValueExt(_) => "StellarValueExt",
18724            #[cfg(feature = "cap_0083")]
18725            Self::StellarValueProposedValue(_) => "StellarValueProposedValue",
18726            Self::LedgerHeaderFlags(_) => "LedgerHeaderFlags",
18727            Self::LedgerHeaderExtensionV1(_) => "LedgerHeaderExtensionV1",
18728            Self::LedgerHeaderExtensionV1Ext(_) => "LedgerHeaderExtensionV1Ext",
18729            Self::LedgerHeader(_) => "LedgerHeader",
18730            Self::LedgerHeaderExt(_) => "LedgerHeaderExt",
18731            Self::LedgerUpgradeType(_) => "LedgerUpgradeType",
18732            Self::ConfigUpgradeSetKey(_) => "ConfigUpgradeSetKey",
18733            Self::LedgerUpgrade(_) => "LedgerUpgrade",
18734            Self::ConfigUpgradeSet(_) => "ConfigUpgradeSet",
18735            Self::TxSetComponentType(_) => "TxSetComponentType",
18736            Self::DependentTxCluster(_) => "DependentTxCluster",
18737            Self::ParallelTxExecutionStage(_) => "ParallelTxExecutionStage",
18738            Self::ParallelTxsComponent(_) => "ParallelTxsComponent",
18739            Self::TxSetComponent(_) => "TxSetComponent",
18740            Self::TxSetComponentTxsMaybeDiscountedFee(_) => "TxSetComponentTxsMaybeDiscountedFee",
18741            Self::TransactionPhase(_) => "TransactionPhase",
18742            Self::TransactionSet(_) => "TransactionSet",
18743            Self::TransactionSetV1(_) => "TransactionSetV1",
18744            Self::GeneralizedTransactionSet(_) => "GeneralizedTransactionSet",
18745            Self::TransactionResultPair(_) => "TransactionResultPair",
18746            Self::TransactionResultSet(_) => "TransactionResultSet",
18747            Self::TransactionHistoryEntry(_) => "TransactionHistoryEntry",
18748            Self::TransactionHistoryEntryExt(_) => "TransactionHistoryEntryExt",
18749            Self::TransactionHistoryResultEntry(_) => "TransactionHistoryResultEntry",
18750            Self::TransactionHistoryResultEntryExt(_) => "TransactionHistoryResultEntryExt",
18751            Self::LedgerHeaderHistoryEntry(_) => "LedgerHeaderHistoryEntry",
18752            Self::LedgerHeaderHistoryEntryExt(_) => "LedgerHeaderHistoryEntryExt",
18753            Self::LedgerScpMessages(_) => "LedgerScpMessages",
18754            Self::ScpHistoryEntryV0(_) => "ScpHistoryEntryV0",
18755            Self::ScpHistoryEntry(_) => "ScpHistoryEntry",
18756            Self::LedgerEntryChangeType(_) => "LedgerEntryChangeType",
18757            Self::LedgerEntryChange(_) => "LedgerEntryChange",
18758            Self::LedgerEntryChanges(_) => "LedgerEntryChanges",
18759            Self::OperationMeta(_) => "OperationMeta",
18760            Self::TransactionMetaV1(_) => "TransactionMetaV1",
18761            Self::TransactionMetaV2(_) => "TransactionMetaV2",
18762            Self::ContractEventType(_) => "ContractEventType",
18763            Self::ContractEvent(_) => "ContractEvent",
18764            Self::ContractEventBody(_) => "ContractEventBody",
18765            Self::ContractEventV0(_) => "ContractEventV0",
18766            Self::DiagnosticEvent(_) => "DiagnosticEvent",
18767            Self::SorobanTransactionMetaExtV1(_) => "SorobanTransactionMetaExtV1",
18768            Self::SorobanTransactionMetaExt(_) => "SorobanTransactionMetaExt",
18769            Self::SorobanTransactionMeta(_) => "SorobanTransactionMeta",
18770            Self::TransactionMetaV3(_) => "TransactionMetaV3",
18771            Self::OperationMetaV2(_) => "OperationMetaV2",
18772            Self::SorobanTransactionMetaV2(_) => "SorobanTransactionMetaV2",
18773            Self::TransactionEventStage(_) => "TransactionEventStage",
18774            Self::TransactionEvent(_) => "TransactionEvent",
18775            Self::TransactionMetaV4(_) => "TransactionMetaV4",
18776            Self::InvokeHostFunctionSuccessPreImage(_) => "InvokeHostFunctionSuccessPreImage",
18777            Self::TransactionMeta(_) => "TransactionMeta",
18778            Self::TransactionResultMeta(_) => "TransactionResultMeta",
18779            Self::TransactionResultMetaV1(_) => "TransactionResultMetaV1",
18780            Self::UpgradeEntryMeta(_) => "UpgradeEntryMeta",
18781            Self::LedgerCloseMetaV0(_) => "LedgerCloseMetaV0",
18782            Self::LedgerCloseMetaExtV1(_) => "LedgerCloseMetaExtV1",
18783            Self::LedgerCloseMetaExt(_) => "LedgerCloseMetaExt",
18784            Self::LedgerCloseMetaV1(_) => "LedgerCloseMetaV1",
18785            Self::LedgerCloseMetaV2(_) => "LedgerCloseMetaV2",
18786            Self::LedgerCloseMeta(_) => "LedgerCloseMeta",
18787            Self::ErrorCode(_) => "ErrorCode",
18788            Self::SError(_) => "SError",
18789            Self::SendMore(_) => "SendMore",
18790            Self::SendMoreExtended(_) => "SendMoreExtended",
18791            Self::AuthCert(_) => "AuthCert",
18792            Self::Hello(_) => "Hello",
18793            Self::Auth(_) => "Auth",
18794            Self::IpAddrType(_) => "IpAddrType",
18795            Self::PeerAddress(_) => "PeerAddress",
18796            Self::PeerAddressIp(_) => "PeerAddressIp",
18797            Self::MessageType(_) => "MessageType",
18798            Self::DontHave(_) => "DontHave",
18799            Self::SurveyMessageCommandType(_) => "SurveyMessageCommandType",
18800            Self::SurveyMessageResponseType(_) => "SurveyMessageResponseType",
18801            Self::TimeSlicedSurveyStartCollectingMessage(_) => {
18802                "TimeSlicedSurveyStartCollectingMessage"
18803            }
18804            Self::SignedTimeSlicedSurveyStartCollectingMessage(_) => {
18805                "SignedTimeSlicedSurveyStartCollectingMessage"
18806            }
18807            Self::TimeSlicedSurveyStopCollectingMessage(_) => {
18808                "TimeSlicedSurveyStopCollectingMessage"
18809            }
18810            Self::SignedTimeSlicedSurveyStopCollectingMessage(_) => {
18811                "SignedTimeSlicedSurveyStopCollectingMessage"
18812            }
18813            Self::SurveyRequestMessage(_) => "SurveyRequestMessage",
18814            Self::TimeSlicedSurveyRequestMessage(_) => "TimeSlicedSurveyRequestMessage",
18815            Self::SignedTimeSlicedSurveyRequestMessage(_) => "SignedTimeSlicedSurveyRequestMessage",
18816            Self::EncryptedBody(_) => "EncryptedBody",
18817            Self::SurveyResponseMessage(_) => "SurveyResponseMessage",
18818            Self::TimeSlicedSurveyResponseMessage(_) => "TimeSlicedSurveyResponseMessage",
18819            Self::SignedTimeSlicedSurveyResponseMessage(_) => {
18820                "SignedTimeSlicedSurveyResponseMessage"
18821            }
18822            Self::PeerStats(_) => "PeerStats",
18823            Self::TimeSlicedNodeData(_) => "TimeSlicedNodeData",
18824            Self::TimeSlicedPeerData(_) => "TimeSlicedPeerData",
18825            Self::TimeSlicedPeerDataList(_) => "TimeSlicedPeerDataList",
18826            Self::TopologyResponseBodyV2(_) => "TopologyResponseBodyV2",
18827            Self::SurveyResponseBody(_) => "SurveyResponseBody",
18828            Self::TxAdvertVector(_) => "TxAdvertVector",
18829            Self::FloodAdvert(_) => "FloodAdvert",
18830            Self::TxDemandVector(_) => "TxDemandVector",
18831            Self::FloodDemand(_) => "FloodDemand",
18832            Self::StellarMessage(_) => "StellarMessage",
18833            Self::AuthenticatedMessage(_) => "AuthenticatedMessage",
18834            Self::AuthenticatedMessageV0(_) => "AuthenticatedMessageV0",
18835            Self::LiquidityPoolParameters(_) => "LiquidityPoolParameters",
18836            Self::MuxedAccount(_) => "MuxedAccount",
18837            Self::MuxedAccountMed25519(_) => "MuxedAccountMed25519",
18838            Self::DecoratedSignature(_) => "DecoratedSignature",
18839            Self::OperationType(_) => "OperationType",
18840            Self::CreateAccountOp(_) => "CreateAccountOp",
18841            Self::PaymentOp(_) => "PaymentOp",
18842            Self::PathPaymentStrictReceiveOp(_) => "PathPaymentStrictReceiveOp",
18843            Self::PathPaymentStrictSendOp(_) => "PathPaymentStrictSendOp",
18844            Self::ManageSellOfferOp(_) => "ManageSellOfferOp",
18845            Self::ManageBuyOfferOp(_) => "ManageBuyOfferOp",
18846            Self::CreatePassiveSellOfferOp(_) => "CreatePassiveSellOfferOp",
18847            Self::SetOptionsOp(_) => "SetOptionsOp",
18848            Self::ChangeTrustAsset(_) => "ChangeTrustAsset",
18849            Self::ChangeTrustOp(_) => "ChangeTrustOp",
18850            Self::AllowTrustOp(_) => "AllowTrustOp",
18851            Self::ManageDataOp(_) => "ManageDataOp",
18852            Self::BumpSequenceOp(_) => "BumpSequenceOp",
18853            Self::CreateClaimableBalanceOp(_) => "CreateClaimableBalanceOp",
18854            Self::ClaimClaimableBalanceOp(_) => "ClaimClaimableBalanceOp",
18855            Self::BeginSponsoringFutureReservesOp(_) => "BeginSponsoringFutureReservesOp",
18856            Self::RevokeSponsorshipType(_) => "RevokeSponsorshipType",
18857            Self::RevokeSponsorshipOp(_) => "RevokeSponsorshipOp",
18858            Self::RevokeSponsorshipOpSigner(_) => "RevokeSponsorshipOpSigner",
18859            Self::ClawbackOp(_) => "ClawbackOp",
18860            Self::ClawbackClaimableBalanceOp(_) => "ClawbackClaimableBalanceOp",
18861            Self::SetTrustLineFlagsOp(_) => "SetTrustLineFlagsOp",
18862            Self::LiquidityPoolDepositOp(_) => "LiquidityPoolDepositOp",
18863            Self::LiquidityPoolWithdrawOp(_) => "LiquidityPoolWithdrawOp",
18864            Self::HostFunctionType(_) => "HostFunctionType",
18865            Self::ContractIdPreimageType(_) => "ContractIdPreimageType",
18866            Self::ContractIdPreimage(_) => "ContractIdPreimage",
18867            Self::ContractIdPreimageFromAddress(_) => "ContractIdPreimageFromAddress",
18868            Self::CreateContractArgs(_) => "CreateContractArgs",
18869            Self::CreateContractArgsV2(_) => "CreateContractArgsV2",
18870            Self::InvokeContractArgs(_) => "InvokeContractArgs",
18871            Self::HostFunction(_) => "HostFunction",
18872            Self::SorobanAuthorizedFunctionType(_) => "SorobanAuthorizedFunctionType",
18873            Self::SorobanAuthorizedFunction(_) => "SorobanAuthorizedFunction",
18874            Self::SorobanAuthorizedInvocation(_) => "SorobanAuthorizedInvocation",
18875            Self::SorobanAddressCredentials(_) => "SorobanAddressCredentials",
18876            Self::SorobanDelegateSignature(_) => "SorobanDelegateSignature",
18877            Self::SorobanAddressCredentialsWithDelegates(_) => {
18878                "SorobanAddressCredentialsWithDelegates"
18879            }
18880            Self::SorobanCredentialsType(_) => "SorobanCredentialsType",
18881            Self::SorobanCredentials(_) => "SorobanCredentials",
18882            Self::SorobanAuthorizationEntry(_) => "SorobanAuthorizationEntry",
18883            Self::SorobanAuthorizationEntries(_) => "SorobanAuthorizationEntries",
18884            Self::InvokeHostFunctionOp(_) => "InvokeHostFunctionOp",
18885            Self::ExtendFootprintTtlOp(_) => "ExtendFootprintTtlOp",
18886            Self::RestoreFootprintOp(_) => "RestoreFootprintOp",
18887            Self::Operation(_) => "Operation",
18888            Self::OperationBody(_) => "OperationBody",
18889            Self::HashIdPreimage(_) => "HashIdPreimage",
18890            Self::HashIdPreimageOperationId(_) => "HashIdPreimageOperationId",
18891            Self::HashIdPreimageRevokeId(_) => "HashIdPreimageRevokeId",
18892            Self::HashIdPreimageContractId(_) => "HashIdPreimageContractId",
18893            Self::HashIdPreimageSorobanAuthorization(_) => "HashIdPreimageSorobanAuthorization",
18894            Self::HashIdPreimageSorobanAuthorizationWithAddress(_) => {
18895                "HashIdPreimageSorobanAuthorizationWithAddress"
18896            }
18897            Self::MemoType(_) => "MemoType",
18898            Self::Memo(_) => "Memo",
18899            Self::TimeBounds(_) => "TimeBounds",
18900            Self::LedgerBounds(_) => "LedgerBounds",
18901            Self::PreconditionsV2(_) => "PreconditionsV2",
18902            Self::PreconditionType(_) => "PreconditionType",
18903            Self::Preconditions(_) => "Preconditions",
18904            Self::LedgerFootprint(_) => "LedgerFootprint",
18905            Self::SorobanResources(_) => "SorobanResources",
18906            Self::SorobanResourcesExtV0(_) => "SorobanResourcesExtV0",
18907            Self::SorobanTransactionData(_) => "SorobanTransactionData",
18908            Self::SorobanTransactionDataExt(_) => "SorobanTransactionDataExt",
18909            Self::TransactionV0(_) => "TransactionV0",
18910            Self::TransactionV0Ext(_) => "TransactionV0Ext",
18911            Self::TransactionV0Envelope(_) => "TransactionV0Envelope",
18912            Self::Transaction(_) => "Transaction",
18913            Self::TransactionExt(_) => "TransactionExt",
18914            Self::TransactionV1Envelope(_) => "TransactionV1Envelope",
18915            Self::FeeBumpTransaction(_) => "FeeBumpTransaction",
18916            Self::FeeBumpTransactionInnerTx(_) => "FeeBumpTransactionInnerTx",
18917            Self::FeeBumpTransactionExt(_) => "FeeBumpTransactionExt",
18918            Self::FeeBumpTransactionEnvelope(_) => "FeeBumpTransactionEnvelope",
18919            Self::TransactionEnvelope(_) => "TransactionEnvelope",
18920            Self::TransactionSignaturePayload(_) => "TransactionSignaturePayload",
18921            Self::TransactionSignaturePayloadTaggedTransaction(_) => {
18922                "TransactionSignaturePayloadTaggedTransaction"
18923            }
18924            Self::ClaimAtomType(_) => "ClaimAtomType",
18925            Self::ClaimOfferAtomV0(_) => "ClaimOfferAtomV0",
18926            Self::ClaimOfferAtom(_) => "ClaimOfferAtom",
18927            Self::ClaimLiquidityAtom(_) => "ClaimLiquidityAtom",
18928            Self::ClaimAtom(_) => "ClaimAtom",
18929            Self::CreateAccountResultCode(_) => "CreateAccountResultCode",
18930            Self::CreateAccountResult(_) => "CreateAccountResult",
18931            Self::PaymentResultCode(_) => "PaymentResultCode",
18932            Self::PaymentResult(_) => "PaymentResult",
18933            Self::PathPaymentStrictReceiveResultCode(_) => "PathPaymentStrictReceiveResultCode",
18934            Self::SimplePaymentResult(_) => "SimplePaymentResult",
18935            Self::PathPaymentStrictReceiveResult(_) => "PathPaymentStrictReceiveResult",
18936            Self::PathPaymentStrictReceiveResultSuccess(_) => {
18937                "PathPaymentStrictReceiveResultSuccess"
18938            }
18939            Self::PathPaymentStrictSendResultCode(_) => "PathPaymentStrictSendResultCode",
18940            Self::PathPaymentStrictSendResult(_) => "PathPaymentStrictSendResult",
18941            Self::PathPaymentStrictSendResultSuccess(_) => "PathPaymentStrictSendResultSuccess",
18942            Self::ManageSellOfferResultCode(_) => "ManageSellOfferResultCode",
18943            Self::ManageOfferEffect(_) => "ManageOfferEffect",
18944            Self::ManageOfferSuccessResult(_) => "ManageOfferSuccessResult",
18945            Self::ManageOfferSuccessResultOffer(_) => "ManageOfferSuccessResultOffer",
18946            Self::ManageSellOfferResult(_) => "ManageSellOfferResult",
18947            Self::ManageBuyOfferResultCode(_) => "ManageBuyOfferResultCode",
18948            Self::ManageBuyOfferResult(_) => "ManageBuyOfferResult",
18949            Self::SetOptionsResultCode(_) => "SetOptionsResultCode",
18950            Self::SetOptionsResult(_) => "SetOptionsResult",
18951            Self::ChangeTrustResultCode(_) => "ChangeTrustResultCode",
18952            Self::ChangeTrustResult(_) => "ChangeTrustResult",
18953            Self::AllowTrustResultCode(_) => "AllowTrustResultCode",
18954            Self::AllowTrustResult(_) => "AllowTrustResult",
18955            Self::AccountMergeResultCode(_) => "AccountMergeResultCode",
18956            Self::AccountMergeResult(_) => "AccountMergeResult",
18957            Self::InflationResultCode(_) => "InflationResultCode",
18958            Self::InflationPayout(_) => "InflationPayout",
18959            Self::InflationResult(_) => "InflationResult",
18960            Self::ManageDataResultCode(_) => "ManageDataResultCode",
18961            Self::ManageDataResult(_) => "ManageDataResult",
18962            Self::BumpSequenceResultCode(_) => "BumpSequenceResultCode",
18963            Self::BumpSequenceResult(_) => "BumpSequenceResult",
18964            Self::CreateClaimableBalanceResultCode(_) => "CreateClaimableBalanceResultCode",
18965            Self::CreateClaimableBalanceResult(_) => "CreateClaimableBalanceResult",
18966            Self::ClaimClaimableBalanceResultCode(_) => "ClaimClaimableBalanceResultCode",
18967            Self::ClaimClaimableBalanceResult(_) => "ClaimClaimableBalanceResult",
18968            Self::BeginSponsoringFutureReservesResultCode(_) => {
18969                "BeginSponsoringFutureReservesResultCode"
18970            }
18971            Self::BeginSponsoringFutureReservesResult(_) => "BeginSponsoringFutureReservesResult",
18972            Self::EndSponsoringFutureReservesResultCode(_) => {
18973                "EndSponsoringFutureReservesResultCode"
18974            }
18975            Self::EndSponsoringFutureReservesResult(_) => "EndSponsoringFutureReservesResult",
18976            Self::RevokeSponsorshipResultCode(_) => "RevokeSponsorshipResultCode",
18977            Self::RevokeSponsorshipResult(_) => "RevokeSponsorshipResult",
18978            Self::ClawbackResultCode(_) => "ClawbackResultCode",
18979            Self::ClawbackResult(_) => "ClawbackResult",
18980            Self::ClawbackClaimableBalanceResultCode(_) => "ClawbackClaimableBalanceResultCode",
18981            Self::ClawbackClaimableBalanceResult(_) => "ClawbackClaimableBalanceResult",
18982            Self::SetTrustLineFlagsResultCode(_) => "SetTrustLineFlagsResultCode",
18983            Self::SetTrustLineFlagsResult(_) => "SetTrustLineFlagsResult",
18984            Self::LiquidityPoolDepositResultCode(_) => "LiquidityPoolDepositResultCode",
18985            Self::LiquidityPoolDepositResult(_) => "LiquidityPoolDepositResult",
18986            Self::LiquidityPoolWithdrawResultCode(_) => "LiquidityPoolWithdrawResultCode",
18987            Self::LiquidityPoolWithdrawResult(_) => "LiquidityPoolWithdrawResult",
18988            Self::InvokeHostFunctionResultCode(_) => "InvokeHostFunctionResultCode",
18989            Self::InvokeHostFunctionResult(_) => "InvokeHostFunctionResult",
18990            Self::ExtendFootprintTtlResultCode(_) => "ExtendFootprintTtlResultCode",
18991            Self::ExtendFootprintTtlResult(_) => "ExtendFootprintTtlResult",
18992            Self::RestoreFootprintResultCode(_) => "RestoreFootprintResultCode",
18993            Self::RestoreFootprintResult(_) => "RestoreFootprintResult",
18994            Self::OperationResultCode(_) => "OperationResultCode",
18995            Self::OperationResult(_) => "OperationResult",
18996            Self::OperationResultTr(_) => "OperationResultTr",
18997            Self::TransactionResultCode(_) => "TransactionResultCode",
18998            Self::InnerTransactionResult(_) => "InnerTransactionResult",
18999            Self::InnerTransactionResultResult(_) => "InnerTransactionResultResult",
19000            Self::InnerTransactionResultExt(_) => "InnerTransactionResultExt",
19001            Self::InnerTransactionResultPair(_) => "InnerTransactionResultPair",
19002            Self::TransactionResult(_) => "TransactionResult",
19003            Self::TransactionResultResult(_) => "TransactionResultResult",
19004            Self::TransactionResultExt(_) => "TransactionResultExt",
19005            Self::Hash(_) => "Hash",
19006            Self::Uint256(_) => "Uint256",
19007            Self::Uint32(_) => "Uint32",
19008            Self::Int32(_) => "Int32",
19009            Self::Uint64(_) => "Uint64",
19010            Self::Int64(_) => "Int64",
19011            Self::TimePoint(_) => "TimePoint",
19012            Self::Duration(_) => "Duration",
19013            Self::ExtensionPoint(_) => "ExtensionPoint",
19014            Self::CryptoKeyType(_) => "CryptoKeyType",
19015            Self::PublicKeyType(_) => "PublicKeyType",
19016            Self::SignerKeyType(_) => "SignerKeyType",
19017            Self::PublicKey(_) => "PublicKey",
19018            Self::SignerKey(_) => "SignerKey",
19019            Self::SignerKeyEd25519SignedPayload(_) => "SignerKeyEd25519SignedPayload",
19020            Self::Signature(_) => "Signature",
19021            Self::SignatureHint(_) => "SignatureHint",
19022            Self::NodeId(_) => "NodeId",
19023            Self::AccountId(_) => "AccountId",
19024            Self::ContractId(_) => "ContractId",
19025            Self::Curve25519Secret(_) => "Curve25519Secret",
19026            Self::Curve25519Public(_) => "Curve25519Public",
19027            Self::HmacSha256Key(_) => "HmacSha256Key",
19028            Self::HmacSha256Mac(_) => "HmacSha256Mac",
19029            Self::ShortHashSeed(_) => "ShortHashSeed",
19030            Self::BinaryFuseFilterType(_) => "BinaryFuseFilterType",
19031            Self::SerializedBinaryFuseFilter(_) => "SerializedBinaryFuseFilter",
19032            Self::PoolId(_) => "PoolId",
19033            Self::ClaimableBalanceIdType(_) => "ClaimableBalanceIdType",
19034            Self::ClaimableBalanceId(_) => "ClaimableBalanceId",
19035            #[cfg(feature = "test_feature")]
19036            Self::TestNextType(_) => "TestNextType",
19037        }
19038    }
19039
19040    #[must_use]
19041    #[allow(clippy::too_many_lines)]
19042    pub const fn variants() -> [TypeVariant; Self::_VARIANTS.len()] {
19043        Self::VARIANTS
19044    }
19045
19046    #[must_use]
19047    #[allow(clippy::too_many_lines)]
19048    pub const fn variant(&self) -> TypeVariant {
19049        match self {
19050            Self::Value(_) => TypeVariant::Value,
19051            Self::ScpBallot(_) => TypeVariant::ScpBallot,
19052            Self::ScpStatementType(_) => TypeVariant::ScpStatementType,
19053            Self::ScpNomination(_) => TypeVariant::ScpNomination,
19054            Self::ScpStatement(_) => TypeVariant::ScpStatement,
19055            Self::ScpStatementPledges(_) => TypeVariant::ScpStatementPledges,
19056            Self::ScpStatementPrepare(_) => TypeVariant::ScpStatementPrepare,
19057            Self::ScpStatementConfirm(_) => TypeVariant::ScpStatementConfirm,
19058            Self::ScpStatementExternalize(_) => TypeVariant::ScpStatementExternalize,
19059            Self::ScpEnvelope(_) => TypeVariant::ScpEnvelope,
19060            Self::ScpQuorumSet(_) => TypeVariant::ScpQuorumSet,
19061            Self::EncodedLedgerKey(_) => TypeVariant::EncodedLedgerKey,
19062            Self::ConfigSettingContractExecutionLanesV0(_) => {
19063                TypeVariant::ConfigSettingContractExecutionLanesV0
19064            }
19065            Self::ConfigSettingContractComputeV0(_) => TypeVariant::ConfigSettingContractComputeV0,
19066            Self::ConfigSettingContractParallelComputeV0(_) => {
19067                TypeVariant::ConfigSettingContractParallelComputeV0
19068            }
19069            Self::ConfigSettingContractLedgerCostV0(_) => {
19070                TypeVariant::ConfigSettingContractLedgerCostV0
19071            }
19072            Self::ConfigSettingContractLedgerCostExtV0(_) => {
19073                TypeVariant::ConfigSettingContractLedgerCostExtV0
19074            }
19075            Self::ConfigSettingContractHistoricalDataV0(_) => {
19076                TypeVariant::ConfigSettingContractHistoricalDataV0
19077            }
19078            Self::ConfigSettingContractEventsV0(_) => TypeVariant::ConfigSettingContractEventsV0,
19079            Self::ConfigSettingContractBandwidthV0(_) => {
19080                TypeVariant::ConfigSettingContractBandwidthV0
19081            }
19082            Self::ContractCostType(_) => TypeVariant::ContractCostType,
19083            Self::ContractCostParamEntry(_) => TypeVariant::ContractCostParamEntry,
19084            Self::StateArchivalSettings(_) => TypeVariant::StateArchivalSettings,
19085            Self::EvictionIterator(_) => TypeVariant::EvictionIterator,
19086            Self::ConfigSettingScpTiming(_) => TypeVariant::ConfigSettingScpTiming,
19087            Self::FrozenLedgerKeys(_) => TypeVariant::FrozenLedgerKeys,
19088            Self::FrozenLedgerKeysDelta(_) => TypeVariant::FrozenLedgerKeysDelta,
19089            Self::FreezeBypassTxs(_) => TypeVariant::FreezeBypassTxs,
19090            Self::FreezeBypassTxsDelta(_) => TypeVariant::FreezeBypassTxsDelta,
19091            Self::ContractCostParams(_) => TypeVariant::ContractCostParams,
19092            Self::ConfigSettingId(_) => TypeVariant::ConfigSettingId,
19093            Self::ConfigSettingEntry(_) => TypeVariant::ConfigSettingEntry,
19094            Self::ScEnvMetaKind(_) => TypeVariant::ScEnvMetaKind,
19095            Self::ScEnvMetaEntry(_) => TypeVariant::ScEnvMetaEntry,
19096            Self::ScEnvMetaEntryInterfaceVersion(_) => TypeVariant::ScEnvMetaEntryInterfaceVersion,
19097            Self::ScMetaV0(_) => TypeVariant::ScMetaV0,
19098            Self::ScMetaKind(_) => TypeVariant::ScMetaKind,
19099            Self::ScMetaEntry(_) => TypeVariant::ScMetaEntry,
19100            Self::ScSpecType(_) => TypeVariant::ScSpecType,
19101            Self::ScSpecTypeOption(_) => TypeVariant::ScSpecTypeOption,
19102            Self::ScSpecTypeResult(_) => TypeVariant::ScSpecTypeResult,
19103            Self::ScSpecTypeVec(_) => TypeVariant::ScSpecTypeVec,
19104            Self::ScSpecTypeMap(_) => TypeVariant::ScSpecTypeMap,
19105            Self::ScSpecTypeTuple(_) => TypeVariant::ScSpecTypeTuple,
19106            Self::ScSpecTypeBytesN(_) => TypeVariant::ScSpecTypeBytesN,
19107            Self::ScSpecTypeUdt(_) => TypeVariant::ScSpecTypeUdt,
19108            Self::ScSpecTypeDef(_) => TypeVariant::ScSpecTypeDef,
19109            Self::ScSpecUdtStructFieldV0(_) => TypeVariant::ScSpecUdtStructFieldV0,
19110            Self::ScSpecUdtStructV0(_) => TypeVariant::ScSpecUdtStructV0,
19111            Self::ScSpecUdtUnionCaseVoidV0(_) => TypeVariant::ScSpecUdtUnionCaseVoidV0,
19112            Self::ScSpecUdtUnionCaseTupleV0(_) => TypeVariant::ScSpecUdtUnionCaseTupleV0,
19113            Self::ScSpecUdtUnionCaseV0Kind(_) => TypeVariant::ScSpecUdtUnionCaseV0Kind,
19114            Self::ScSpecUdtUnionCaseV0(_) => TypeVariant::ScSpecUdtUnionCaseV0,
19115            Self::ScSpecUdtUnionV0(_) => TypeVariant::ScSpecUdtUnionV0,
19116            Self::ScSpecUdtEnumCaseV0(_) => TypeVariant::ScSpecUdtEnumCaseV0,
19117            Self::ScSpecUdtEnumV0(_) => TypeVariant::ScSpecUdtEnumV0,
19118            Self::ScSpecUdtErrorEnumCaseV0(_) => TypeVariant::ScSpecUdtErrorEnumCaseV0,
19119            Self::ScSpecUdtErrorEnumV0(_) => TypeVariant::ScSpecUdtErrorEnumV0,
19120            Self::ScSpecFunctionInputV0(_) => TypeVariant::ScSpecFunctionInputV0,
19121            Self::ScSpecFunctionV0(_) => TypeVariant::ScSpecFunctionV0,
19122            Self::ScSpecEventParamLocationV0(_) => TypeVariant::ScSpecEventParamLocationV0,
19123            Self::ScSpecEventParamV0(_) => TypeVariant::ScSpecEventParamV0,
19124            Self::ScSpecEventDataFormat(_) => TypeVariant::ScSpecEventDataFormat,
19125            Self::ScSpecEventV0(_) => TypeVariant::ScSpecEventV0,
19126            Self::ScSpecEntryKind(_) => TypeVariant::ScSpecEntryKind,
19127            Self::ScSpecEntry(_) => TypeVariant::ScSpecEntry,
19128            Self::ScValType(_) => TypeVariant::ScValType,
19129            Self::ScErrorType(_) => TypeVariant::ScErrorType,
19130            Self::ScErrorCode(_) => TypeVariant::ScErrorCode,
19131            Self::ScError(_) => TypeVariant::ScError,
19132            Self::UInt128Parts(_) => TypeVariant::UInt128Parts,
19133            Self::Int128Parts(_) => TypeVariant::Int128Parts,
19134            Self::UInt256Parts(_) => TypeVariant::UInt256Parts,
19135            Self::Int256Parts(_) => TypeVariant::Int256Parts,
19136            Self::ContractExecutableType(_) => TypeVariant::ContractExecutableType,
19137            Self::ContractExecutable(_) => TypeVariant::ContractExecutable,
19138            Self::ScAddressType(_) => TypeVariant::ScAddressType,
19139            Self::MuxedEd25519Account(_) => TypeVariant::MuxedEd25519Account,
19140            Self::ScAddress(_) => TypeVariant::ScAddress,
19141            Self::ScVec(_) => TypeVariant::ScVec,
19142            Self::ScMap(_) => TypeVariant::ScMap,
19143            Self::ScBytes(_) => TypeVariant::ScBytes,
19144            Self::ScString(_) => TypeVariant::ScString,
19145            Self::ScSymbol(_) => TypeVariant::ScSymbol,
19146            Self::ScNonceKey(_) => TypeVariant::ScNonceKey,
19147            Self::ScContractInstance(_) => TypeVariant::ScContractInstance,
19148            Self::ScVal(_) => TypeVariant::ScVal,
19149            Self::ScMapEntry(_) => TypeVariant::ScMapEntry,
19150            Self::LedgerCloseMetaBatch(_) => TypeVariant::LedgerCloseMetaBatch,
19151            Self::StoredTransactionSet(_) => TypeVariant::StoredTransactionSet,
19152            Self::StoredDebugTransactionSet(_) => TypeVariant::StoredDebugTransactionSet,
19153            Self::PersistedScpStateV0(_) => TypeVariant::PersistedScpStateV0,
19154            Self::PersistedScpStateV1(_) => TypeVariant::PersistedScpStateV1,
19155            Self::PersistedScpState(_) => TypeVariant::PersistedScpState,
19156            Self::Thresholds(_) => TypeVariant::Thresholds,
19157            Self::String32(_) => TypeVariant::String32,
19158            Self::String64(_) => TypeVariant::String64,
19159            Self::SequenceNumber(_) => TypeVariant::SequenceNumber,
19160            Self::DataValue(_) => TypeVariant::DataValue,
19161            Self::AssetCode4(_) => TypeVariant::AssetCode4,
19162            Self::AssetCode12(_) => TypeVariant::AssetCode12,
19163            Self::AssetType(_) => TypeVariant::AssetType,
19164            Self::AssetCode(_) => TypeVariant::AssetCode,
19165            Self::AlphaNum4(_) => TypeVariant::AlphaNum4,
19166            Self::AlphaNum12(_) => TypeVariant::AlphaNum12,
19167            Self::Asset(_) => TypeVariant::Asset,
19168            Self::Price(_) => TypeVariant::Price,
19169            Self::Liabilities(_) => TypeVariant::Liabilities,
19170            Self::ThresholdIndexes(_) => TypeVariant::ThresholdIndexes,
19171            Self::LedgerEntryType(_) => TypeVariant::LedgerEntryType,
19172            Self::Signer(_) => TypeVariant::Signer,
19173            Self::AccountFlags(_) => TypeVariant::AccountFlags,
19174            Self::SponsorshipDescriptor(_) => TypeVariant::SponsorshipDescriptor,
19175            Self::AccountEntryExtensionV3(_) => TypeVariant::AccountEntryExtensionV3,
19176            Self::AccountEntryExtensionV2(_) => TypeVariant::AccountEntryExtensionV2,
19177            Self::AccountEntryExtensionV2Ext(_) => TypeVariant::AccountEntryExtensionV2Ext,
19178            Self::AccountEntryExtensionV1(_) => TypeVariant::AccountEntryExtensionV1,
19179            Self::AccountEntryExtensionV1Ext(_) => TypeVariant::AccountEntryExtensionV1Ext,
19180            Self::AccountEntry(_) => TypeVariant::AccountEntry,
19181            Self::AccountEntryExt(_) => TypeVariant::AccountEntryExt,
19182            Self::TrustLineFlags(_) => TypeVariant::TrustLineFlags,
19183            Self::LiquidityPoolType(_) => TypeVariant::LiquidityPoolType,
19184            Self::TrustLineAsset(_) => TypeVariant::TrustLineAsset,
19185            Self::TrustLineEntryExtensionV2(_) => TypeVariant::TrustLineEntryExtensionV2,
19186            Self::TrustLineEntryExtensionV2Ext(_) => TypeVariant::TrustLineEntryExtensionV2Ext,
19187            Self::TrustLineEntry(_) => TypeVariant::TrustLineEntry,
19188            Self::TrustLineEntryExt(_) => TypeVariant::TrustLineEntryExt,
19189            Self::TrustLineEntryV1(_) => TypeVariant::TrustLineEntryV1,
19190            Self::TrustLineEntryV1Ext(_) => TypeVariant::TrustLineEntryV1Ext,
19191            Self::OfferEntryFlags(_) => TypeVariant::OfferEntryFlags,
19192            Self::OfferEntry(_) => TypeVariant::OfferEntry,
19193            Self::OfferEntryExt(_) => TypeVariant::OfferEntryExt,
19194            Self::DataEntry(_) => TypeVariant::DataEntry,
19195            Self::DataEntryExt(_) => TypeVariant::DataEntryExt,
19196            Self::ClaimPredicateType(_) => TypeVariant::ClaimPredicateType,
19197            Self::ClaimPredicate(_) => TypeVariant::ClaimPredicate,
19198            Self::ClaimantType(_) => TypeVariant::ClaimantType,
19199            Self::Claimant(_) => TypeVariant::Claimant,
19200            Self::ClaimantV0(_) => TypeVariant::ClaimantV0,
19201            Self::ClaimableBalanceFlags(_) => TypeVariant::ClaimableBalanceFlags,
19202            Self::ClaimableBalanceEntryExtensionV1(_) => {
19203                TypeVariant::ClaimableBalanceEntryExtensionV1
19204            }
19205            Self::ClaimableBalanceEntryExtensionV1Ext(_) => {
19206                TypeVariant::ClaimableBalanceEntryExtensionV1Ext
19207            }
19208            Self::ClaimableBalanceEntry(_) => TypeVariant::ClaimableBalanceEntry,
19209            Self::ClaimableBalanceEntryExt(_) => TypeVariant::ClaimableBalanceEntryExt,
19210            Self::LiquidityPoolConstantProductParameters(_) => {
19211                TypeVariant::LiquidityPoolConstantProductParameters
19212            }
19213            Self::LiquidityPoolEntry(_) => TypeVariant::LiquidityPoolEntry,
19214            Self::LiquidityPoolEntryBody(_) => TypeVariant::LiquidityPoolEntryBody,
19215            Self::LiquidityPoolEntryConstantProduct(_) => {
19216                TypeVariant::LiquidityPoolEntryConstantProduct
19217            }
19218            Self::ContractDataDurability(_) => TypeVariant::ContractDataDurability,
19219            Self::ContractDataEntry(_) => TypeVariant::ContractDataEntry,
19220            Self::ContractCodeCostInputs(_) => TypeVariant::ContractCodeCostInputs,
19221            Self::ContractCodeEntry(_) => TypeVariant::ContractCodeEntry,
19222            Self::ContractCodeEntryExt(_) => TypeVariant::ContractCodeEntryExt,
19223            Self::ContractCodeEntryV1(_) => TypeVariant::ContractCodeEntryV1,
19224            Self::TtlEntry(_) => TypeVariant::TtlEntry,
19225            Self::LedgerEntryExtensionV1(_) => TypeVariant::LedgerEntryExtensionV1,
19226            Self::LedgerEntryExtensionV1Ext(_) => TypeVariant::LedgerEntryExtensionV1Ext,
19227            Self::LedgerEntry(_) => TypeVariant::LedgerEntry,
19228            Self::LedgerEntryData(_) => TypeVariant::LedgerEntryData,
19229            Self::LedgerEntryExt(_) => TypeVariant::LedgerEntryExt,
19230            Self::LedgerKey(_) => TypeVariant::LedgerKey,
19231            Self::LedgerKeyAccount(_) => TypeVariant::LedgerKeyAccount,
19232            Self::LedgerKeyTrustLine(_) => TypeVariant::LedgerKeyTrustLine,
19233            Self::LedgerKeyOffer(_) => TypeVariant::LedgerKeyOffer,
19234            Self::LedgerKeyData(_) => TypeVariant::LedgerKeyData,
19235            Self::LedgerKeyClaimableBalance(_) => TypeVariant::LedgerKeyClaimableBalance,
19236            Self::LedgerKeyLiquidityPool(_) => TypeVariant::LedgerKeyLiquidityPool,
19237            Self::LedgerKeyContractData(_) => TypeVariant::LedgerKeyContractData,
19238            Self::LedgerKeyContractCode(_) => TypeVariant::LedgerKeyContractCode,
19239            Self::LedgerKeyConfigSetting(_) => TypeVariant::LedgerKeyConfigSetting,
19240            Self::LedgerKeyTtl(_) => TypeVariant::LedgerKeyTtl,
19241            Self::EnvelopeType(_) => TypeVariant::EnvelopeType,
19242            Self::BucketListType(_) => TypeVariant::BucketListType,
19243            Self::BucketEntryType(_) => TypeVariant::BucketEntryType,
19244            Self::HotArchiveBucketEntryType(_) => TypeVariant::HotArchiveBucketEntryType,
19245            Self::BucketMetadata(_) => TypeVariant::BucketMetadata,
19246            Self::BucketMetadataExt(_) => TypeVariant::BucketMetadataExt,
19247            Self::BucketEntry(_) => TypeVariant::BucketEntry,
19248            Self::HotArchiveBucketEntry(_) => TypeVariant::HotArchiveBucketEntry,
19249            Self::UpgradeType(_) => TypeVariant::UpgradeType,
19250            Self::StellarValueType(_) => TypeVariant::StellarValueType,
19251            Self::LedgerCloseValueSignature(_) => TypeVariant::LedgerCloseValueSignature,
19252            Self::StellarValue(_) => TypeVariant::StellarValue,
19253            Self::StellarValueExt(_) => TypeVariant::StellarValueExt,
19254            #[cfg(feature = "cap_0083")]
19255            Self::StellarValueProposedValue(_) => TypeVariant::StellarValueProposedValue,
19256            Self::LedgerHeaderFlags(_) => TypeVariant::LedgerHeaderFlags,
19257            Self::LedgerHeaderExtensionV1(_) => TypeVariant::LedgerHeaderExtensionV1,
19258            Self::LedgerHeaderExtensionV1Ext(_) => TypeVariant::LedgerHeaderExtensionV1Ext,
19259            Self::LedgerHeader(_) => TypeVariant::LedgerHeader,
19260            Self::LedgerHeaderExt(_) => TypeVariant::LedgerHeaderExt,
19261            Self::LedgerUpgradeType(_) => TypeVariant::LedgerUpgradeType,
19262            Self::ConfigUpgradeSetKey(_) => TypeVariant::ConfigUpgradeSetKey,
19263            Self::LedgerUpgrade(_) => TypeVariant::LedgerUpgrade,
19264            Self::ConfigUpgradeSet(_) => TypeVariant::ConfigUpgradeSet,
19265            Self::TxSetComponentType(_) => TypeVariant::TxSetComponentType,
19266            Self::DependentTxCluster(_) => TypeVariant::DependentTxCluster,
19267            Self::ParallelTxExecutionStage(_) => TypeVariant::ParallelTxExecutionStage,
19268            Self::ParallelTxsComponent(_) => TypeVariant::ParallelTxsComponent,
19269            Self::TxSetComponent(_) => TypeVariant::TxSetComponent,
19270            Self::TxSetComponentTxsMaybeDiscountedFee(_) => {
19271                TypeVariant::TxSetComponentTxsMaybeDiscountedFee
19272            }
19273            Self::TransactionPhase(_) => TypeVariant::TransactionPhase,
19274            Self::TransactionSet(_) => TypeVariant::TransactionSet,
19275            Self::TransactionSetV1(_) => TypeVariant::TransactionSetV1,
19276            Self::GeneralizedTransactionSet(_) => TypeVariant::GeneralizedTransactionSet,
19277            Self::TransactionResultPair(_) => TypeVariant::TransactionResultPair,
19278            Self::TransactionResultSet(_) => TypeVariant::TransactionResultSet,
19279            Self::TransactionHistoryEntry(_) => TypeVariant::TransactionHistoryEntry,
19280            Self::TransactionHistoryEntryExt(_) => TypeVariant::TransactionHistoryEntryExt,
19281            Self::TransactionHistoryResultEntry(_) => TypeVariant::TransactionHistoryResultEntry,
19282            Self::TransactionHistoryResultEntryExt(_) => {
19283                TypeVariant::TransactionHistoryResultEntryExt
19284            }
19285            Self::LedgerHeaderHistoryEntry(_) => TypeVariant::LedgerHeaderHistoryEntry,
19286            Self::LedgerHeaderHistoryEntryExt(_) => TypeVariant::LedgerHeaderHistoryEntryExt,
19287            Self::LedgerScpMessages(_) => TypeVariant::LedgerScpMessages,
19288            Self::ScpHistoryEntryV0(_) => TypeVariant::ScpHistoryEntryV0,
19289            Self::ScpHistoryEntry(_) => TypeVariant::ScpHistoryEntry,
19290            Self::LedgerEntryChangeType(_) => TypeVariant::LedgerEntryChangeType,
19291            Self::LedgerEntryChange(_) => TypeVariant::LedgerEntryChange,
19292            Self::LedgerEntryChanges(_) => TypeVariant::LedgerEntryChanges,
19293            Self::OperationMeta(_) => TypeVariant::OperationMeta,
19294            Self::TransactionMetaV1(_) => TypeVariant::TransactionMetaV1,
19295            Self::TransactionMetaV2(_) => TypeVariant::TransactionMetaV2,
19296            Self::ContractEventType(_) => TypeVariant::ContractEventType,
19297            Self::ContractEvent(_) => TypeVariant::ContractEvent,
19298            Self::ContractEventBody(_) => TypeVariant::ContractEventBody,
19299            Self::ContractEventV0(_) => TypeVariant::ContractEventV0,
19300            Self::DiagnosticEvent(_) => TypeVariant::DiagnosticEvent,
19301            Self::SorobanTransactionMetaExtV1(_) => TypeVariant::SorobanTransactionMetaExtV1,
19302            Self::SorobanTransactionMetaExt(_) => TypeVariant::SorobanTransactionMetaExt,
19303            Self::SorobanTransactionMeta(_) => TypeVariant::SorobanTransactionMeta,
19304            Self::TransactionMetaV3(_) => TypeVariant::TransactionMetaV3,
19305            Self::OperationMetaV2(_) => TypeVariant::OperationMetaV2,
19306            Self::SorobanTransactionMetaV2(_) => TypeVariant::SorobanTransactionMetaV2,
19307            Self::TransactionEventStage(_) => TypeVariant::TransactionEventStage,
19308            Self::TransactionEvent(_) => TypeVariant::TransactionEvent,
19309            Self::TransactionMetaV4(_) => TypeVariant::TransactionMetaV4,
19310            Self::InvokeHostFunctionSuccessPreImage(_) => {
19311                TypeVariant::InvokeHostFunctionSuccessPreImage
19312            }
19313            Self::TransactionMeta(_) => TypeVariant::TransactionMeta,
19314            Self::TransactionResultMeta(_) => TypeVariant::TransactionResultMeta,
19315            Self::TransactionResultMetaV1(_) => TypeVariant::TransactionResultMetaV1,
19316            Self::UpgradeEntryMeta(_) => TypeVariant::UpgradeEntryMeta,
19317            Self::LedgerCloseMetaV0(_) => TypeVariant::LedgerCloseMetaV0,
19318            Self::LedgerCloseMetaExtV1(_) => TypeVariant::LedgerCloseMetaExtV1,
19319            Self::LedgerCloseMetaExt(_) => TypeVariant::LedgerCloseMetaExt,
19320            Self::LedgerCloseMetaV1(_) => TypeVariant::LedgerCloseMetaV1,
19321            Self::LedgerCloseMetaV2(_) => TypeVariant::LedgerCloseMetaV2,
19322            Self::LedgerCloseMeta(_) => TypeVariant::LedgerCloseMeta,
19323            Self::ErrorCode(_) => TypeVariant::ErrorCode,
19324            Self::SError(_) => TypeVariant::SError,
19325            Self::SendMore(_) => TypeVariant::SendMore,
19326            Self::SendMoreExtended(_) => TypeVariant::SendMoreExtended,
19327            Self::AuthCert(_) => TypeVariant::AuthCert,
19328            Self::Hello(_) => TypeVariant::Hello,
19329            Self::Auth(_) => TypeVariant::Auth,
19330            Self::IpAddrType(_) => TypeVariant::IpAddrType,
19331            Self::PeerAddress(_) => TypeVariant::PeerAddress,
19332            Self::PeerAddressIp(_) => TypeVariant::PeerAddressIp,
19333            Self::MessageType(_) => TypeVariant::MessageType,
19334            Self::DontHave(_) => TypeVariant::DontHave,
19335            Self::SurveyMessageCommandType(_) => TypeVariant::SurveyMessageCommandType,
19336            Self::SurveyMessageResponseType(_) => TypeVariant::SurveyMessageResponseType,
19337            Self::TimeSlicedSurveyStartCollectingMessage(_) => {
19338                TypeVariant::TimeSlicedSurveyStartCollectingMessage
19339            }
19340            Self::SignedTimeSlicedSurveyStartCollectingMessage(_) => {
19341                TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage
19342            }
19343            Self::TimeSlicedSurveyStopCollectingMessage(_) => {
19344                TypeVariant::TimeSlicedSurveyStopCollectingMessage
19345            }
19346            Self::SignedTimeSlicedSurveyStopCollectingMessage(_) => {
19347                TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage
19348            }
19349            Self::SurveyRequestMessage(_) => TypeVariant::SurveyRequestMessage,
19350            Self::TimeSlicedSurveyRequestMessage(_) => TypeVariant::TimeSlicedSurveyRequestMessage,
19351            Self::SignedTimeSlicedSurveyRequestMessage(_) => {
19352                TypeVariant::SignedTimeSlicedSurveyRequestMessage
19353            }
19354            Self::EncryptedBody(_) => TypeVariant::EncryptedBody,
19355            Self::SurveyResponseMessage(_) => TypeVariant::SurveyResponseMessage,
19356            Self::TimeSlicedSurveyResponseMessage(_) => {
19357                TypeVariant::TimeSlicedSurveyResponseMessage
19358            }
19359            Self::SignedTimeSlicedSurveyResponseMessage(_) => {
19360                TypeVariant::SignedTimeSlicedSurveyResponseMessage
19361            }
19362            Self::PeerStats(_) => TypeVariant::PeerStats,
19363            Self::TimeSlicedNodeData(_) => TypeVariant::TimeSlicedNodeData,
19364            Self::TimeSlicedPeerData(_) => TypeVariant::TimeSlicedPeerData,
19365            Self::TimeSlicedPeerDataList(_) => TypeVariant::TimeSlicedPeerDataList,
19366            Self::TopologyResponseBodyV2(_) => TypeVariant::TopologyResponseBodyV2,
19367            Self::SurveyResponseBody(_) => TypeVariant::SurveyResponseBody,
19368            Self::TxAdvertVector(_) => TypeVariant::TxAdvertVector,
19369            Self::FloodAdvert(_) => TypeVariant::FloodAdvert,
19370            Self::TxDemandVector(_) => TypeVariant::TxDemandVector,
19371            Self::FloodDemand(_) => TypeVariant::FloodDemand,
19372            Self::StellarMessage(_) => TypeVariant::StellarMessage,
19373            Self::AuthenticatedMessage(_) => TypeVariant::AuthenticatedMessage,
19374            Self::AuthenticatedMessageV0(_) => TypeVariant::AuthenticatedMessageV0,
19375            Self::LiquidityPoolParameters(_) => TypeVariant::LiquidityPoolParameters,
19376            Self::MuxedAccount(_) => TypeVariant::MuxedAccount,
19377            Self::MuxedAccountMed25519(_) => TypeVariant::MuxedAccountMed25519,
19378            Self::DecoratedSignature(_) => TypeVariant::DecoratedSignature,
19379            Self::OperationType(_) => TypeVariant::OperationType,
19380            Self::CreateAccountOp(_) => TypeVariant::CreateAccountOp,
19381            Self::PaymentOp(_) => TypeVariant::PaymentOp,
19382            Self::PathPaymentStrictReceiveOp(_) => TypeVariant::PathPaymentStrictReceiveOp,
19383            Self::PathPaymentStrictSendOp(_) => TypeVariant::PathPaymentStrictSendOp,
19384            Self::ManageSellOfferOp(_) => TypeVariant::ManageSellOfferOp,
19385            Self::ManageBuyOfferOp(_) => TypeVariant::ManageBuyOfferOp,
19386            Self::CreatePassiveSellOfferOp(_) => TypeVariant::CreatePassiveSellOfferOp,
19387            Self::SetOptionsOp(_) => TypeVariant::SetOptionsOp,
19388            Self::ChangeTrustAsset(_) => TypeVariant::ChangeTrustAsset,
19389            Self::ChangeTrustOp(_) => TypeVariant::ChangeTrustOp,
19390            Self::AllowTrustOp(_) => TypeVariant::AllowTrustOp,
19391            Self::ManageDataOp(_) => TypeVariant::ManageDataOp,
19392            Self::BumpSequenceOp(_) => TypeVariant::BumpSequenceOp,
19393            Self::CreateClaimableBalanceOp(_) => TypeVariant::CreateClaimableBalanceOp,
19394            Self::ClaimClaimableBalanceOp(_) => TypeVariant::ClaimClaimableBalanceOp,
19395            Self::BeginSponsoringFutureReservesOp(_) => {
19396                TypeVariant::BeginSponsoringFutureReservesOp
19397            }
19398            Self::RevokeSponsorshipType(_) => TypeVariant::RevokeSponsorshipType,
19399            Self::RevokeSponsorshipOp(_) => TypeVariant::RevokeSponsorshipOp,
19400            Self::RevokeSponsorshipOpSigner(_) => TypeVariant::RevokeSponsorshipOpSigner,
19401            Self::ClawbackOp(_) => TypeVariant::ClawbackOp,
19402            Self::ClawbackClaimableBalanceOp(_) => TypeVariant::ClawbackClaimableBalanceOp,
19403            Self::SetTrustLineFlagsOp(_) => TypeVariant::SetTrustLineFlagsOp,
19404            Self::LiquidityPoolDepositOp(_) => TypeVariant::LiquidityPoolDepositOp,
19405            Self::LiquidityPoolWithdrawOp(_) => TypeVariant::LiquidityPoolWithdrawOp,
19406            Self::HostFunctionType(_) => TypeVariant::HostFunctionType,
19407            Self::ContractIdPreimageType(_) => TypeVariant::ContractIdPreimageType,
19408            Self::ContractIdPreimage(_) => TypeVariant::ContractIdPreimage,
19409            Self::ContractIdPreimageFromAddress(_) => TypeVariant::ContractIdPreimageFromAddress,
19410            Self::CreateContractArgs(_) => TypeVariant::CreateContractArgs,
19411            Self::CreateContractArgsV2(_) => TypeVariant::CreateContractArgsV2,
19412            Self::InvokeContractArgs(_) => TypeVariant::InvokeContractArgs,
19413            Self::HostFunction(_) => TypeVariant::HostFunction,
19414            Self::SorobanAuthorizedFunctionType(_) => TypeVariant::SorobanAuthorizedFunctionType,
19415            Self::SorobanAuthorizedFunction(_) => TypeVariant::SorobanAuthorizedFunction,
19416            Self::SorobanAuthorizedInvocation(_) => TypeVariant::SorobanAuthorizedInvocation,
19417            Self::SorobanAddressCredentials(_) => TypeVariant::SorobanAddressCredentials,
19418            Self::SorobanDelegateSignature(_) => TypeVariant::SorobanDelegateSignature,
19419            Self::SorobanAddressCredentialsWithDelegates(_) => {
19420                TypeVariant::SorobanAddressCredentialsWithDelegates
19421            }
19422            Self::SorobanCredentialsType(_) => TypeVariant::SorobanCredentialsType,
19423            Self::SorobanCredentials(_) => TypeVariant::SorobanCredentials,
19424            Self::SorobanAuthorizationEntry(_) => TypeVariant::SorobanAuthorizationEntry,
19425            Self::SorobanAuthorizationEntries(_) => TypeVariant::SorobanAuthorizationEntries,
19426            Self::InvokeHostFunctionOp(_) => TypeVariant::InvokeHostFunctionOp,
19427            Self::ExtendFootprintTtlOp(_) => TypeVariant::ExtendFootprintTtlOp,
19428            Self::RestoreFootprintOp(_) => TypeVariant::RestoreFootprintOp,
19429            Self::Operation(_) => TypeVariant::Operation,
19430            Self::OperationBody(_) => TypeVariant::OperationBody,
19431            Self::HashIdPreimage(_) => TypeVariant::HashIdPreimage,
19432            Self::HashIdPreimageOperationId(_) => TypeVariant::HashIdPreimageOperationId,
19433            Self::HashIdPreimageRevokeId(_) => TypeVariant::HashIdPreimageRevokeId,
19434            Self::HashIdPreimageContractId(_) => TypeVariant::HashIdPreimageContractId,
19435            Self::HashIdPreimageSorobanAuthorization(_) => {
19436                TypeVariant::HashIdPreimageSorobanAuthorization
19437            }
19438            Self::HashIdPreimageSorobanAuthorizationWithAddress(_) => {
19439                TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress
19440            }
19441            Self::MemoType(_) => TypeVariant::MemoType,
19442            Self::Memo(_) => TypeVariant::Memo,
19443            Self::TimeBounds(_) => TypeVariant::TimeBounds,
19444            Self::LedgerBounds(_) => TypeVariant::LedgerBounds,
19445            Self::PreconditionsV2(_) => TypeVariant::PreconditionsV2,
19446            Self::PreconditionType(_) => TypeVariant::PreconditionType,
19447            Self::Preconditions(_) => TypeVariant::Preconditions,
19448            Self::LedgerFootprint(_) => TypeVariant::LedgerFootprint,
19449            Self::SorobanResources(_) => TypeVariant::SorobanResources,
19450            Self::SorobanResourcesExtV0(_) => TypeVariant::SorobanResourcesExtV0,
19451            Self::SorobanTransactionData(_) => TypeVariant::SorobanTransactionData,
19452            Self::SorobanTransactionDataExt(_) => TypeVariant::SorobanTransactionDataExt,
19453            Self::TransactionV0(_) => TypeVariant::TransactionV0,
19454            Self::TransactionV0Ext(_) => TypeVariant::TransactionV0Ext,
19455            Self::TransactionV0Envelope(_) => TypeVariant::TransactionV0Envelope,
19456            Self::Transaction(_) => TypeVariant::Transaction,
19457            Self::TransactionExt(_) => TypeVariant::TransactionExt,
19458            Self::TransactionV1Envelope(_) => TypeVariant::TransactionV1Envelope,
19459            Self::FeeBumpTransaction(_) => TypeVariant::FeeBumpTransaction,
19460            Self::FeeBumpTransactionInnerTx(_) => TypeVariant::FeeBumpTransactionInnerTx,
19461            Self::FeeBumpTransactionExt(_) => TypeVariant::FeeBumpTransactionExt,
19462            Self::FeeBumpTransactionEnvelope(_) => TypeVariant::FeeBumpTransactionEnvelope,
19463            Self::TransactionEnvelope(_) => TypeVariant::TransactionEnvelope,
19464            Self::TransactionSignaturePayload(_) => TypeVariant::TransactionSignaturePayload,
19465            Self::TransactionSignaturePayloadTaggedTransaction(_) => {
19466                TypeVariant::TransactionSignaturePayloadTaggedTransaction
19467            }
19468            Self::ClaimAtomType(_) => TypeVariant::ClaimAtomType,
19469            Self::ClaimOfferAtomV0(_) => TypeVariant::ClaimOfferAtomV0,
19470            Self::ClaimOfferAtom(_) => TypeVariant::ClaimOfferAtom,
19471            Self::ClaimLiquidityAtom(_) => TypeVariant::ClaimLiquidityAtom,
19472            Self::ClaimAtom(_) => TypeVariant::ClaimAtom,
19473            Self::CreateAccountResultCode(_) => TypeVariant::CreateAccountResultCode,
19474            Self::CreateAccountResult(_) => TypeVariant::CreateAccountResult,
19475            Self::PaymentResultCode(_) => TypeVariant::PaymentResultCode,
19476            Self::PaymentResult(_) => TypeVariant::PaymentResult,
19477            Self::PathPaymentStrictReceiveResultCode(_) => {
19478                TypeVariant::PathPaymentStrictReceiveResultCode
19479            }
19480            Self::SimplePaymentResult(_) => TypeVariant::SimplePaymentResult,
19481            Self::PathPaymentStrictReceiveResult(_) => TypeVariant::PathPaymentStrictReceiveResult,
19482            Self::PathPaymentStrictReceiveResultSuccess(_) => {
19483                TypeVariant::PathPaymentStrictReceiveResultSuccess
19484            }
19485            Self::PathPaymentStrictSendResultCode(_) => {
19486                TypeVariant::PathPaymentStrictSendResultCode
19487            }
19488            Self::PathPaymentStrictSendResult(_) => TypeVariant::PathPaymentStrictSendResult,
19489            Self::PathPaymentStrictSendResultSuccess(_) => {
19490                TypeVariant::PathPaymentStrictSendResultSuccess
19491            }
19492            Self::ManageSellOfferResultCode(_) => TypeVariant::ManageSellOfferResultCode,
19493            Self::ManageOfferEffect(_) => TypeVariant::ManageOfferEffect,
19494            Self::ManageOfferSuccessResult(_) => TypeVariant::ManageOfferSuccessResult,
19495            Self::ManageOfferSuccessResultOffer(_) => TypeVariant::ManageOfferSuccessResultOffer,
19496            Self::ManageSellOfferResult(_) => TypeVariant::ManageSellOfferResult,
19497            Self::ManageBuyOfferResultCode(_) => TypeVariant::ManageBuyOfferResultCode,
19498            Self::ManageBuyOfferResult(_) => TypeVariant::ManageBuyOfferResult,
19499            Self::SetOptionsResultCode(_) => TypeVariant::SetOptionsResultCode,
19500            Self::SetOptionsResult(_) => TypeVariant::SetOptionsResult,
19501            Self::ChangeTrustResultCode(_) => TypeVariant::ChangeTrustResultCode,
19502            Self::ChangeTrustResult(_) => TypeVariant::ChangeTrustResult,
19503            Self::AllowTrustResultCode(_) => TypeVariant::AllowTrustResultCode,
19504            Self::AllowTrustResult(_) => TypeVariant::AllowTrustResult,
19505            Self::AccountMergeResultCode(_) => TypeVariant::AccountMergeResultCode,
19506            Self::AccountMergeResult(_) => TypeVariant::AccountMergeResult,
19507            Self::InflationResultCode(_) => TypeVariant::InflationResultCode,
19508            Self::InflationPayout(_) => TypeVariant::InflationPayout,
19509            Self::InflationResult(_) => TypeVariant::InflationResult,
19510            Self::ManageDataResultCode(_) => TypeVariant::ManageDataResultCode,
19511            Self::ManageDataResult(_) => TypeVariant::ManageDataResult,
19512            Self::BumpSequenceResultCode(_) => TypeVariant::BumpSequenceResultCode,
19513            Self::BumpSequenceResult(_) => TypeVariant::BumpSequenceResult,
19514            Self::CreateClaimableBalanceResultCode(_) => {
19515                TypeVariant::CreateClaimableBalanceResultCode
19516            }
19517            Self::CreateClaimableBalanceResult(_) => TypeVariant::CreateClaimableBalanceResult,
19518            Self::ClaimClaimableBalanceResultCode(_) => {
19519                TypeVariant::ClaimClaimableBalanceResultCode
19520            }
19521            Self::ClaimClaimableBalanceResult(_) => TypeVariant::ClaimClaimableBalanceResult,
19522            Self::BeginSponsoringFutureReservesResultCode(_) => {
19523                TypeVariant::BeginSponsoringFutureReservesResultCode
19524            }
19525            Self::BeginSponsoringFutureReservesResult(_) => {
19526                TypeVariant::BeginSponsoringFutureReservesResult
19527            }
19528            Self::EndSponsoringFutureReservesResultCode(_) => {
19529                TypeVariant::EndSponsoringFutureReservesResultCode
19530            }
19531            Self::EndSponsoringFutureReservesResult(_) => {
19532                TypeVariant::EndSponsoringFutureReservesResult
19533            }
19534            Self::RevokeSponsorshipResultCode(_) => TypeVariant::RevokeSponsorshipResultCode,
19535            Self::RevokeSponsorshipResult(_) => TypeVariant::RevokeSponsorshipResult,
19536            Self::ClawbackResultCode(_) => TypeVariant::ClawbackResultCode,
19537            Self::ClawbackResult(_) => TypeVariant::ClawbackResult,
19538            Self::ClawbackClaimableBalanceResultCode(_) => {
19539                TypeVariant::ClawbackClaimableBalanceResultCode
19540            }
19541            Self::ClawbackClaimableBalanceResult(_) => TypeVariant::ClawbackClaimableBalanceResult,
19542            Self::SetTrustLineFlagsResultCode(_) => TypeVariant::SetTrustLineFlagsResultCode,
19543            Self::SetTrustLineFlagsResult(_) => TypeVariant::SetTrustLineFlagsResult,
19544            Self::LiquidityPoolDepositResultCode(_) => TypeVariant::LiquidityPoolDepositResultCode,
19545            Self::LiquidityPoolDepositResult(_) => TypeVariant::LiquidityPoolDepositResult,
19546            Self::LiquidityPoolWithdrawResultCode(_) => {
19547                TypeVariant::LiquidityPoolWithdrawResultCode
19548            }
19549            Self::LiquidityPoolWithdrawResult(_) => TypeVariant::LiquidityPoolWithdrawResult,
19550            Self::InvokeHostFunctionResultCode(_) => TypeVariant::InvokeHostFunctionResultCode,
19551            Self::InvokeHostFunctionResult(_) => TypeVariant::InvokeHostFunctionResult,
19552            Self::ExtendFootprintTtlResultCode(_) => TypeVariant::ExtendFootprintTtlResultCode,
19553            Self::ExtendFootprintTtlResult(_) => TypeVariant::ExtendFootprintTtlResult,
19554            Self::RestoreFootprintResultCode(_) => TypeVariant::RestoreFootprintResultCode,
19555            Self::RestoreFootprintResult(_) => TypeVariant::RestoreFootprintResult,
19556            Self::OperationResultCode(_) => TypeVariant::OperationResultCode,
19557            Self::OperationResult(_) => TypeVariant::OperationResult,
19558            Self::OperationResultTr(_) => TypeVariant::OperationResultTr,
19559            Self::TransactionResultCode(_) => TypeVariant::TransactionResultCode,
19560            Self::InnerTransactionResult(_) => TypeVariant::InnerTransactionResult,
19561            Self::InnerTransactionResultResult(_) => TypeVariant::InnerTransactionResultResult,
19562            Self::InnerTransactionResultExt(_) => TypeVariant::InnerTransactionResultExt,
19563            Self::InnerTransactionResultPair(_) => TypeVariant::InnerTransactionResultPair,
19564            Self::TransactionResult(_) => TypeVariant::TransactionResult,
19565            Self::TransactionResultResult(_) => TypeVariant::TransactionResultResult,
19566            Self::TransactionResultExt(_) => TypeVariant::TransactionResultExt,
19567            Self::Hash(_) => TypeVariant::Hash,
19568            Self::Uint256(_) => TypeVariant::Uint256,
19569            Self::Uint32(_) => TypeVariant::Uint32,
19570            Self::Int32(_) => TypeVariant::Int32,
19571            Self::Uint64(_) => TypeVariant::Uint64,
19572            Self::Int64(_) => TypeVariant::Int64,
19573            Self::TimePoint(_) => TypeVariant::TimePoint,
19574            Self::Duration(_) => TypeVariant::Duration,
19575            Self::ExtensionPoint(_) => TypeVariant::ExtensionPoint,
19576            Self::CryptoKeyType(_) => TypeVariant::CryptoKeyType,
19577            Self::PublicKeyType(_) => TypeVariant::PublicKeyType,
19578            Self::SignerKeyType(_) => TypeVariant::SignerKeyType,
19579            Self::PublicKey(_) => TypeVariant::PublicKey,
19580            Self::SignerKey(_) => TypeVariant::SignerKey,
19581            Self::SignerKeyEd25519SignedPayload(_) => TypeVariant::SignerKeyEd25519SignedPayload,
19582            Self::Signature(_) => TypeVariant::Signature,
19583            Self::SignatureHint(_) => TypeVariant::SignatureHint,
19584            Self::NodeId(_) => TypeVariant::NodeId,
19585            Self::AccountId(_) => TypeVariant::AccountId,
19586            Self::ContractId(_) => TypeVariant::ContractId,
19587            Self::Curve25519Secret(_) => TypeVariant::Curve25519Secret,
19588            Self::Curve25519Public(_) => TypeVariant::Curve25519Public,
19589            Self::HmacSha256Key(_) => TypeVariant::HmacSha256Key,
19590            Self::HmacSha256Mac(_) => TypeVariant::HmacSha256Mac,
19591            Self::ShortHashSeed(_) => TypeVariant::ShortHashSeed,
19592            Self::BinaryFuseFilterType(_) => TypeVariant::BinaryFuseFilterType,
19593            Self::SerializedBinaryFuseFilter(_) => TypeVariant::SerializedBinaryFuseFilter,
19594            Self::PoolId(_) => TypeVariant::PoolId,
19595            Self::ClaimableBalanceIdType(_) => TypeVariant::ClaimableBalanceIdType,
19596            Self::ClaimableBalanceId(_) => TypeVariant::ClaimableBalanceId,
19597            #[cfg(feature = "test_feature")]
19598            Self::TestNextType(_) => TypeVariant::TestNextType,
19599        }
19600    }
19601}
19602
19603#[cfg(feature = "type_enum")]
19604impl Name for Type {
19605    #[must_use]
19606    fn name(&self) -> &'static str {
19607        Self::name(self)
19608    }
19609}
19610
19611#[cfg(feature = "type_enum")]
19612impl Variants<TypeVariant> for Type {
19613    fn variants() -> slice::Iter<'static, TypeVariant> {
19614        Self::VARIANTS.iter()
19615    }
19616}
19617
19618#[cfg(feature = "type_enum")]
19619impl WriteXdr for Type {
19620    #[cfg(feature = "std")]
19621    #[allow(clippy::too_many_lines)]
19622    fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
19623        match self {
19624            Self::Value(v) => v.write_xdr(w),
19625            Self::ScpBallot(v) => v.write_xdr(w),
19626            Self::ScpStatementType(v) => v.write_xdr(w),
19627            Self::ScpNomination(v) => v.write_xdr(w),
19628            Self::ScpStatement(v) => v.write_xdr(w),
19629            Self::ScpStatementPledges(v) => v.write_xdr(w),
19630            Self::ScpStatementPrepare(v) => v.write_xdr(w),
19631            Self::ScpStatementConfirm(v) => v.write_xdr(w),
19632            Self::ScpStatementExternalize(v) => v.write_xdr(w),
19633            Self::ScpEnvelope(v) => v.write_xdr(w),
19634            Self::ScpQuorumSet(v) => v.write_xdr(w),
19635            Self::EncodedLedgerKey(v) => v.write_xdr(w),
19636            Self::ConfigSettingContractExecutionLanesV0(v) => v.write_xdr(w),
19637            Self::ConfigSettingContractComputeV0(v) => v.write_xdr(w),
19638            Self::ConfigSettingContractParallelComputeV0(v) => v.write_xdr(w),
19639            Self::ConfigSettingContractLedgerCostV0(v) => v.write_xdr(w),
19640            Self::ConfigSettingContractLedgerCostExtV0(v) => v.write_xdr(w),
19641            Self::ConfigSettingContractHistoricalDataV0(v) => v.write_xdr(w),
19642            Self::ConfigSettingContractEventsV0(v) => v.write_xdr(w),
19643            Self::ConfigSettingContractBandwidthV0(v) => v.write_xdr(w),
19644            Self::ContractCostType(v) => v.write_xdr(w),
19645            Self::ContractCostParamEntry(v) => v.write_xdr(w),
19646            Self::StateArchivalSettings(v) => v.write_xdr(w),
19647            Self::EvictionIterator(v) => v.write_xdr(w),
19648            Self::ConfigSettingScpTiming(v) => v.write_xdr(w),
19649            Self::FrozenLedgerKeys(v) => v.write_xdr(w),
19650            Self::FrozenLedgerKeysDelta(v) => v.write_xdr(w),
19651            Self::FreezeBypassTxs(v) => v.write_xdr(w),
19652            Self::FreezeBypassTxsDelta(v) => v.write_xdr(w),
19653            Self::ContractCostParams(v) => v.write_xdr(w),
19654            Self::ConfigSettingId(v) => v.write_xdr(w),
19655            Self::ConfigSettingEntry(v) => v.write_xdr(w),
19656            Self::ScEnvMetaKind(v) => v.write_xdr(w),
19657            Self::ScEnvMetaEntry(v) => v.write_xdr(w),
19658            Self::ScEnvMetaEntryInterfaceVersion(v) => v.write_xdr(w),
19659            Self::ScMetaV0(v) => v.write_xdr(w),
19660            Self::ScMetaKind(v) => v.write_xdr(w),
19661            Self::ScMetaEntry(v) => v.write_xdr(w),
19662            Self::ScSpecType(v) => v.write_xdr(w),
19663            Self::ScSpecTypeOption(v) => v.write_xdr(w),
19664            Self::ScSpecTypeResult(v) => v.write_xdr(w),
19665            Self::ScSpecTypeVec(v) => v.write_xdr(w),
19666            Self::ScSpecTypeMap(v) => v.write_xdr(w),
19667            Self::ScSpecTypeTuple(v) => v.write_xdr(w),
19668            Self::ScSpecTypeBytesN(v) => v.write_xdr(w),
19669            Self::ScSpecTypeUdt(v) => v.write_xdr(w),
19670            Self::ScSpecTypeDef(v) => v.write_xdr(w),
19671            Self::ScSpecUdtStructFieldV0(v) => v.write_xdr(w),
19672            Self::ScSpecUdtStructV0(v) => v.write_xdr(w),
19673            Self::ScSpecUdtUnionCaseVoidV0(v) => v.write_xdr(w),
19674            Self::ScSpecUdtUnionCaseTupleV0(v) => v.write_xdr(w),
19675            Self::ScSpecUdtUnionCaseV0Kind(v) => v.write_xdr(w),
19676            Self::ScSpecUdtUnionCaseV0(v) => v.write_xdr(w),
19677            Self::ScSpecUdtUnionV0(v) => v.write_xdr(w),
19678            Self::ScSpecUdtEnumCaseV0(v) => v.write_xdr(w),
19679            Self::ScSpecUdtEnumV0(v) => v.write_xdr(w),
19680            Self::ScSpecUdtErrorEnumCaseV0(v) => v.write_xdr(w),
19681            Self::ScSpecUdtErrorEnumV0(v) => v.write_xdr(w),
19682            Self::ScSpecFunctionInputV0(v) => v.write_xdr(w),
19683            Self::ScSpecFunctionV0(v) => v.write_xdr(w),
19684            Self::ScSpecEventParamLocationV0(v) => v.write_xdr(w),
19685            Self::ScSpecEventParamV0(v) => v.write_xdr(w),
19686            Self::ScSpecEventDataFormat(v) => v.write_xdr(w),
19687            Self::ScSpecEventV0(v) => v.write_xdr(w),
19688            Self::ScSpecEntryKind(v) => v.write_xdr(w),
19689            Self::ScSpecEntry(v) => v.write_xdr(w),
19690            Self::ScValType(v) => v.write_xdr(w),
19691            Self::ScErrorType(v) => v.write_xdr(w),
19692            Self::ScErrorCode(v) => v.write_xdr(w),
19693            Self::ScError(v) => v.write_xdr(w),
19694            Self::UInt128Parts(v) => v.write_xdr(w),
19695            Self::Int128Parts(v) => v.write_xdr(w),
19696            Self::UInt256Parts(v) => v.write_xdr(w),
19697            Self::Int256Parts(v) => v.write_xdr(w),
19698            Self::ContractExecutableType(v) => v.write_xdr(w),
19699            Self::ContractExecutable(v) => v.write_xdr(w),
19700            Self::ScAddressType(v) => v.write_xdr(w),
19701            Self::MuxedEd25519Account(v) => v.write_xdr(w),
19702            Self::ScAddress(v) => v.write_xdr(w),
19703            Self::ScVec(v) => v.write_xdr(w),
19704            Self::ScMap(v) => v.write_xdr(w),
19705            Self::ScBytes(v) => v.write_xdr(w),
19706            Self::ScString(v) => v.write_xdr(w),
19707            Self::ScSymbol(v) => v.write_xdr(w),
19708            Self::ScNonceKey(v) => v.write_xdr(w),
19709            Self::ScContractInstance(v) => v.write_xdr(w),
19710            Self::ScVal(v) => v.write_xdr(w),
19711            Self::ScMapEntry(v) => v.write_xdr(w),
19712            Self::LedgerCloseMetaBatch(v) => v.write_xdr(w),
19713            Self::StoredTransactionSet(v) => v.write_xdr(w),
19714            Self::StoredDebugTransactionSet(v) => v.write_xdr(w),
19715            Self::PersistedScpStateV0(v) => v.write_xdr(w),
19716            Self::PersistedScpStateV1(v) => v.write_xdr(w),
19717            Self::PersistedScpState(v) => v.write_xdr(w),
19718            Self::Thresholds(v) => v.write_xdr(w),
19719            Self::String32(v) => v.write_xdr(w),
19720            Self::String64(v) => v.write_xdr(w),
19721            Self::SequenceNumber(v) => v.write_xdr(w),
19722            Self::DataValue(v) => v.write_xdr(w),
19723            Self::AssetCode4(v) => v.write_xdr(w),
19724            Self::AssetCode12(v) => v.write_xdr(w),
19725            Self::AssetType(v) => v.write_xdr(w),
19726            Self::AssetCode(v) => v.write_xdr(w),
19727            Self::AlphaNum4(v) => v.write_xdr(w),
19728            Self::AlphaNum12(v) => v.write_xdr(w),
19729            Self::Asset(v) => v.write_xdr(w),
19730            Self::Price(v) => v.write_xdr(w),
19731            Self::Liabilities(v) => v.write_xdr(w),
19732            Self::ThresholdIndexes(v) => v.write_xdr(w),
19733            Self::LedgerEntryType(v) => v.write_xdr(w),
19734            Self::Signer(v) => v.write_xdr(w),
19735            Self::AccountFlags(v) => v.write_xdr(w),
19736            Self::SponsorshipDescriptor(v) => v.write_xdr(w),
19737            Self::AccountEntryExtensionV3(v) => v.write_xdr(w),
19738            Self::AccountEntryExtensionV2(v) => v.write_xdr(w),
19739            Self::AccountEntryExtensionV2Ext(v) => v.write_xdr(w),
19740            Self::AccountEntryExtensionV1(v) => v.write_xdr(w),
19741            Self::AccountEntryExtensionV1Ext(v) => v.write_xdr(w),
19742            Self::AccountEntry(v) => v.write_xdr(w),
19743            Self::AccountEntryExt(v) => v.write_xdr(w),
19744            Self::TrustLineFlags(v) => v.write_xdr(w),
19745            Self::LiquidityPoolType(v) => v.write_xdr(w),
19746            Self::TrustLineAsset(v) => v.write_xdr(w),
19747            Self::TrustLineEntryExtensionV2(v) => v.write_xdr(w),
19748            Self::TrustLineEntryExtensionV2Ext(v) => v.write_xdr(w),
19749            Self::TrustLineEntry(v) => v.write_xdr(w),
19750            Self::TrustLineEntryExt(v) => v.write_xdr(w),
19751            Self::TrustLineEntryV1(v) => v.write_xdr(w),
19752            Self::TrustLineEntryV1Ext(v) => v.write_xdr(w),
19753            Self::OfferEntryFlags(v) => v.write_xdr(w),
19754            Self::OfferEntry(v) => v.write_xdr(w),
19755            Self::OfferEntryExt(v) => v.write_xdr(w),
19756            Self::DataEntry(v) => v.write_xdr(w),
19757            Self::DataEntryExt(v) => v.write_xdr(w),
19758            Self::ClaimPredicateType(v) => v.write_xdr(w),
19759            Self::ClaimPredicate(v) => v.write_xdr(w),
19760            Self::ClaimantType(v) => v.write_xdr(w),
19761            Self::Claimant(v) => v.write_xdr(w),
19762            Self::ClaimantV0(v) => v.write_xdr(w),
19763            Self::ClaimableBalanceFlags(v) => v.write_xdr(w),
19764            Self::ClaimableBalanceEntryExtensionV1(v) => v.write_xdr(w),
19765            Self::ClaimableBalanceEntryExtensionV1Ext(v) => v.write_xdr(w),
19766            Self::ClaimableBalanceEntry(v) => v.write_xdr(w),
19767            Self::ClaimableBalanceEntryExt(v) => v.write_xdr(w),
19768            Self::LiquidityPoolConstantProductParameters(v) => v.write_xdr(w),
19769            Self::LiquidityPoolEntry(v) => v.write_xdr(w),
19770            Self::LiquidityPoolEntryBody(v) => v.write_xdr(w),
19771            Self::LiquidityPoolEntryConstantProduct(v) => v.write_xdr(w),
19772            Self::ContractDataDurability(v) => v.write_xdr(w),
19773            Self::ContractDataEntry(v) => v.write_xdr(w),
19774            Self::ContractCodeCostInputs(v) => v.write_xdr(w),
19775            Self::ContractCodeEntry(v) => v.write_xdr(w),
19776            Self::ContractCodeEntryExt(v) => v.write_xdr(w),
19777            Self::ContractCodeEntryV1(v) => v.write_xdr(w),
19778            Self::TtlEntry(v) => v.write_xdr(w),
19779            Self::LedgerEntryExtensionV1(v) => v.write_xdr(w),
19780            Self::LedgerEntryExtensionV1Ext(v) => v.write_xdr(w),
19781            Self::LedgerEntry(v) => v.write_xdr(w),
19782            Self::LedgerEntryData(v) => v.write_xdr(w),
19783            Self::LedgerEntryExt(v) => v.write_xdr(w),
19784            Self::LedgerKey(v) => v.write_xdr(w),
19785            Self::LedgerKeyAccount(v) => v.write_xdr(w),
19786            Self::LedgerKeyTrustLine(v) => v.write_xdr(w),
19787            Self::LedgerKeyOffer(v) => v.write_xdr(w),
19788            Self::LedgerKeyData(v) => v.write_xdr(w),
19789            Self::LedgerKeyClaimableBalance(v) => v.write_xdr(w),
19790            Self::LedgerKeyLiquidityPool(v) => v.write_xdr(w),
19791            Self::LedgerKeyContractData(v) => v.write_xdr(w),
19792            Self::LedgerKeyContractCode(v) => v.write_xdr(w),
19793            Self::LedgerKeyConfigSetting(v) => v.write_xdr(w),
19794            Self::LedgerKeyTtl(v) => v.write_xdr(w),
19795            Self::EnvelopeType(v) => v.write_xdr(w),
19796            Self::BucketListType(v) => v.write_xdr(w),
19797            Self::BucketEntryType(v) => v.write_xdr(w),
19798            Self::HotArchiveBucketEntryType(v) => v.write_xdr(w),
19799            Self::BucketMetadata(v) => v.write_xdr(w),
19800            Self::BucketMetadataExt(v) => v.write_xdr(w),
19801            Self::BucketEntry(v) => v.write_xdr(w),
19802            Self::HotArchiveBucketEntry(v) => v.write_xdr(w),
19803            Self::UpgradeType(v) => v.write_xdr(w),
19804            Self::StellarValueType(v) => v.write_xdr(w),
19805            Self::LedgerCloseValueSignature(v) => v.write_xdr(w),
19806            Self::StellarValue(v) => v.write_xdr(w),
19807            Self::StellarValueExt(v) => v.write_xdr(w),
19808            #[cfg(feature = "cap_0083")]
19809            Self::StellarValueProposedValue(v) => v.write_xdr(w),
19810            Self::LedgerHeaderFlags(v) => v.write_xdr(w),
19811            Self::LedgerHeaderExtensionV1(v) => v.write_xdr(w),
19812            Self::LedgerHeaderExtensionV1Ext(v) => v.write_xdr(w),
19813            Self::LedgerHeader(v) => v.write_xdr(w),
19814            Self::LedgerHeaderExt(v) => v.write_xdr(w),
19815            Self::LedgerUpgradeType(v) => v.write_xdr(w),
19816            Self::ConfigUpgradeSetKey(v) => v.write_xdr(w),
19817            Self::LedgerUpgrade(v) => v.write_xdr(w),
19818            Self::ConfigUpgradeSet(v) => v.write_xdr(w),
19819            Self::TxSetComponentType(v) => v.write_xdr(w),
19820            Self::DependentTxCluster(v) => v.write_xdr(w),
19821            Self::ParallelTxExecutionStage(v) => v.write_xdr(w),
19822            Self::ParallelTxsComponent(v) => v.write_xdr(w),
19823            Self::TxSetComponent(v) => v.write_xdr(w),
19824            Self::TxSetComponentTxsMaybeDiscountedFee(v) => v.write_xdr(w),
19825            Self::TransactionPhase(v) => v.write_xdr(w),
19826            Self::TransactionSet(v) => v.write_xdr(w),
19827            Self::TransactionSetV1(v) => v.write_xdr(w),
19828            Self::GeneralizedTransactionSet(v) => v.write_xdr(w),
19829            Self::TransactionResultPair(v) => v.write_xdr(w),
19830            Self::TransactionResultSet(v) => v.write_xdr(w),
19831            Self::TransactionHistoryEntry(v) => v.write_xdr(w),
19832            Self::TransactionHistoryEntryExt(v) => v.write_xdr(w),
19833            Self::TransactionHistoryResultEntry(v) => v.write_xdr(w),
19834            Self::TransactionHistoryResultEntryExt(v) => v.write_xdr(w),
19835            Self::LedgerHeaderHistoryEntry(v) => v.write_xdr(w),
19836            Self::LedgerHeaderHistoryEntryExt(v) => v.write_xdr(w),
19837            Self::LedgerScpMessages(v) => v.write_xdr(w),
19838            Self::ScpHistoryEntryV0(v) => v.write_xdr(w),
19839            Self::ScpHistoryEntry(v) => v.write_xdr(w),
19840            Self::LedgerEntryChangeType(v) => v.write_xdr(w),
19841            Self::LedgerEntryChange(v) => v.write_xdr(w),
19842            Self::LedgerEntryChanges(v) => v.write_xdr(w),
19843            Self::OperationMeta(v) => v.write_xdr(w),
19844            Self::TransactionMetaV1(v) => v.write_xdr(w),
19845            Self::TransactionMetaV2(v) => v.write_xdr(w),
19846            Self::ContractEventType(v) => v.write_xdr(w),
19847            Self::ContractEvent(v) => v.write_xdr(w),
19848            Self::ContractEventBody(v) => v.write_xdr(w),
19849            Self::ContractEventV0(v) => v.write_xdr(w),
19850            Self::DiagnosticEvent(v) => v.write_xdr(w),
19851            Self::SorobanTransactionMetaExtV1(v) => v.write_xdr(w),
19852            Self::SorobanTransactionMetaExt(v) => v.write_xdr(w),
19853            Self::SorobanTransactionMeta(v) => v.write_xdr(w),
19854            Self::TransactionMetaV3(v) => v.write_xdr(w),
19855            Self::OperationMetaV2(v) => v.write_xdr(w),
19856            Self::SorobanTransactionMetaV2(v) => v.write_xdr(w),
19857            Self::TransactionEventStage(v) => v.write_xdr(w),
19858            Self::TransactionEvent(v) => v.write_xdr(w),
19859            Self::TransactionMetaV4(v) => v.write_xdr(w),
19860            Self::InvokeHostFunctionSuccessPreImage(v) => v.write_xdr(w),
19861            Self::TransactionMeta(v) => v.write_xdr(w),
19862            Self::TransactionResultMeta(v) => v.write_xdr(w),
19863            Self::TransactionResultMetaV1(v) => v.write_xdr(w),
19864            Self::UpgradeEntryMeta(v) => v.write_xdr(w),
19865            Self::LedgerCloseMetaV0(v) => v.write_xdr(w),
19866            Self::LedgerCloseMetaExtV1(v) => v.write_xdr(w),
19867            Self::LedgerCloseMetaExt(v) => v.write_xdr(w),
19868            Self::LedgerCloseMetaV1(v) => v.write_xdr(w),
19869            Self::LedgerCloseMetaV2(v) => v.write_xdr(w),
19870            Self::LedgerCloseMeta(v) => v.write_xdr(w),
19871            Self::ErrorCode(v) => v.write_xdr(w),
19872            Self::SError(v) => v.write_xdr(w),
19873            Self::SendMore(v) => v.write_xdr(w),
19874            Self::SendMoreExtended(v) => v.write_xdr(w),
19875            Self::AuthCert(v) => v.write_xdr(w),
19876            Self::Hello(v) => v.write_xdr(w),
19877            Self::Auth(v) => v.write_xdr(w),
19878            Self::IpAddrType(v) => v.write_xdr(w),
19879            Self::PeerAddress(v) => v.write_xdr(w),
19880            Self::PeerAddressIp(v) => v.write_xdr(w),
19881            Self::MessageType(v) => v.write_xdr(w),
19882            Self::DontHave(v) => v.write_xdr(w),
19883            Self::SurveyMessageCommandType(v) => v.write_xdr(w),
19884            Self::SurveyMessageResponseType(v) => v.write_xdr(w),
19885            Self::TimeSlicedSurveyStartCollectingMessage(v) => v.write_xdr(w),
19886            Self::SignedTimeSlicedSurveyStartCollectingMessage(v) => v.write_xdr(w),
19887            Self::TimeSlicedSurveyStopCollectingMessage(v) => v.write_xdr(w),
19888            Self::SignedTimeSlicedSurveyStopCollectingMessage(v) => v.write_xdr(w),
19889            Self::SurveyRequestMessage(v) => v.write_xdr(w),
19890            Self::TimeSlicedSurveyRequestMessage(v) => v.write_xdr(w),
19891            Self::SignedTimeSlicedSurveyRequestMessage(v) => v.write_xdr(w),
19892            Self::EncryptedBody(v) => v.write_xdr(w),
19893            Self::SurveyResponseMessage(v) => v.write_xdr(w),
19894            Self::TimeSlicedSurveyResponseMessage(v) => v.write_xdr(w),
19895            Self::SignedTimeSlicedSurveyResponseMessage(v) => v.write_xdr(w),
19896            Self::PeerStats(v) => v.write_xdr(w),
19897            Self::TimeSlicedNodeData(v) => v.write_xdr(w),
19898            Self::TimeSlicedPeerData(v) => v.write_xdr(w),
19899            Self::TimeSlicedPeerDataList(v) => v.write_xdr(w),
19900            Self::TopologyResponseBodyV2(v) => v.write_xdr(w),
19901            Self::SurveyResponseBody(v) => v.write_xdr(w),
19902            Self::TxAdvertVector(v) => v.write_xdr(w),
19903            Self::FloodAdvert(v) => v.write_xdr(w),
19904            Self::TxDemandVector(v) => v.write_xdr(w),
19905            Self::FloodDemand(v) => v.write_xdr(w),
19906            Self::StellarMessage(v) => v.write_xdr(w),
19907            Self::AuthenticatedMessage(v) => v.write_xdr(w),
19908            Self::AuthenticatedMessageV0(v) => v.write_xdr(w),
19909            Self::LiquidityPoolParameters(v) => v.write_xdr(w),
19910            Self::MuxedAccount(v) => v.write_xdr(w),
19911            Self::MuxedAccountMed25519(v) => v.write_xdr(w),
19912            Self::DecoratedSignature(v) => v.write_xdr(w),
19913            Self::OperationType(v) => v.write_xdr(w),
19914            Self::CreateAccountOp(v) => v.write_xdr(w),
19915            Self::PaymentOp(v) => v.write_xdr(w),
19916            Self::PathPaymentStrictReceiveOp(v) => v.write_xdr(w),
19917            Self::PathPaymentStrictSendOp(v) => v.write_xdr(w),
19918            Self::ManageSellOfferOp(v) => v.write_xdr(w),
19919            Self::ManageBuyOfferOp(v) => v.write_xdr(w),
19920            Self::CreatePassiveSellOfferOp(v) => v.write_xdr(w),
19921            Self::SetOptionsOp(v) => v.write_xdr(w),
19922            Self::ChangeTrustAsset(v) => v.write_xdr(w),
19923            Self::ChangeTrustOp(v) => v.write_xdr(w),
19924            Self::AllowTrustOp(v) => v.write_xdr(w),
19925            Self::ManageDataOp(v) => v.write_xdr(w),
19926            Self::BumpSequenceOp(v) => v.write_xdr(w),
19927            Self::CreateClaimableBalanceOp(v) => v.write_xdr(w),
19928            Self::ClaimClaimableBalanceOp(v) => v.write_xdr(w),
19929            Self::BeginSponsoringFutureReservesOp(v) => v.write_xdr(w),
19930            Self::RevokeSponsorshipType(v) => v.write_xdr(w),
19931            Self::RevokeSponsorshipOp(v) => v.write_xdr(w),
19932            Self::RevokeSponsorshipOpSigner(v) => v.write_xdr(w),
19933            Self::ClawbackOp(v) => v.write_xdr(w),
19934            Self::ClawbackClaimableBalanceOp(v) => v.write_xdr(w),
19935            Self::SetTrustLineFlagsOp(v) => v.write_xdr(w),
19936            Self::LiquidityPoolDepositOp(v) => v.write_xdr(w),
19937            Self::LiquidityPoolWithdrawOp(v) => v.write_xdr(w),
19938            Self::HostFunctionType(v) => v.write_xdr(w),
19939            Self::ContractIdPreimageType(v) => v.write_xdr(w),
19940            Self::ContractIdPreimage(v) => v.write_xdr(w),
19941            Self::ContractIdPreimageFromAddress(v) => v.write_xdr(w),
19942            Self::CreateContractArgs(v) => v.write_xdr(w),
19943            Self::CreateContractArgsV2(v) => v.write_xdr(w),
19944            Self::InvokeContractArgs(v) => v.write_xdr(w),
19945            Self::HostFunction(v) => v.write_xdr(w),
19946            Self::SorobanAuthorizedFunctionType(v) => v.write_xdr(w),
19947            Self::SorobanAuthorizedFunction(v) => v.write_xdr(w),
19948            Self::SorobanAuthorizedInvocation(v) => v.write_xdr(w),
19949            Self::SorobanAddressCredentials(v) => v.write_xdr(w),
19950            Self::SorobanDelegateSignature(v) => v.write_xdr(w),
19951            Self::SorobanAddressCredentialsWithDelegates(v) => v.write_xdr(w),
19952            Self::SorobanCredentialsType(v) => v.write_xdr(w),
19953            Self::SorobanCredentials(v) => v.write_xdr(w),
19954            Self::SorobanAuthorizationEntry(v) => v.write_xdr(w),
19955            Self::SorobanAuthorizationEntries(v) => v.write_xdr(w),
19956            Self::InvokeHostFunctionOp(v) => v.write_xdr(w),
19957            Self::ExtendFootprintTtlOp(v) => v.write_xdr(w),
19958            Self::RestoreFootprintOp(v) => v.write_xdr(w),
19959            Self::Operation(v) => v.write_xdr(w),
19960            Self::OperationBody(v) => v.write_xdr(w),
19961            Self::HashIdPreimage(v) => v.write_xdr(w),
19962            Self::HashIdPreimageOperationId(v) => v.write_xdr(w),
19963            Self::HashIdPreimageRevokeId(v) => v.write_xdr(w),
19964            Self::HashIdPreimageContractId(v) => v.write_xdr(w),
19965            Self::HashIdPreimageSorobanAuthorization(v) => v.write_xdr(w),
19966            Self::HashIdPreimageSorobanAuthorizationWithAddress(v) => v.write_xdr(w),
19967            Self::MemoType(v) => v.write_xdr(w),
19968            Self::Memo(v) => v.write_xdr(w),
19969            Self::TimeBounds(v) => v.write_xdr(w),
19970            Self::LedgerBounds(v) => v.write_xdr(w),
19971            Self::PreconditionsV2(v) => v.write_xdr(w),
19972            Self::PreconditionType(v) => v.write_xdr(w),
19973            Self::Preconditions(v) => v.write_xdr(w),
19974            Self::LedgerFootprint(v) => v.write_xdr(w),
19975            Self::SorobanResources(v) => v.write_xdr(w),
19976            Self::SorobanResourcesExtV0(v) => v.write_xdr(w),
19977            Self::SorobanTransactionData(v) => v.write_xdr(w),
19978            Self::SorobanTransactionDataExt(v) => v.write_xdr(w),
19979            Self::TransactionV0(v) => v.write_xdr(w),
19980            Self::TransactionV0Ext(v) => v.write_xdr(w),
19981            Self::TransactionV0Envelope(v) => v.write_xdr(w),
19982            Self::Transaction(v) => v.write_xdr(w),
19983            Self::TransactionExt(v) => v.write_xdr(w),
19984            Self::TransactionV1Envelope(v) => v.write_xdr(w),
19985            Self::FeeBumpTransaction(v) => v.write_xdr(w),
19986            Self::FeeBumpTransactionInnerTx(v) => v.write_xdr(w),
19987            Self::FeeBumpTransactionExt(v) => v.write_xdr(w),
19988            Self::FeeBumpTransactionEnvelope(v) => v.write_xdr(w),
19989            Self::TransactionEnvelope(v) => v.write_xdr(w),
19990            Self::TransactionSignaturePayload(v) => v.write_xdr(w),
19991            Self::TransactionSignaturePayloadTaggedTransaction(v) => v.write_xdr(w),
19992            Self::ClaimAtomType(v) => v.write_xdr(w),
19993            Self::ClaimOfferAtomV0(v) => v.write_xdr(w),
19994            Self::ClaimOfferAtom(v) => v.write_xdr(w),
19995            Self::ClaimLiquidityAtom(v) => v.write_xdr(w),
19996            Self::ClaimAtom(v) => v.write_xdr(w),
19997            Self::CreateAccountResultCode(v) => v.write_xdr(w),
19998            Self::CreateAccountResult(v) => v.write_xdr(w),
19999            Self::PaymentResultCode(v) => v.write_xdr(w),
20000            Self::PaymentResult(v) => v.write_xdr(w),
20001            Self::PathPaymentStrictReceiveResultCode(v) => v.write_xdr(w),
20002            Self::SimplePaymentResult(v) => v.write_xdr(w),
20003            Self::PathPaymentStrictReceiveResult(v) => v.write_xdr(w),
20004            Self::PathPaymentStrictReceiveResultSuccess(v) => v.write_xdr(w),
20005            Self::PathPaymentStrictSendResultCode(v) => v.write_xdr(w),
20006            Self::PathPaymentStrictSendResult(v) => v.write_xdr(w),
20007            Self::PathPaymentStrictSendResultSuccess(v) => v.write_xdr(w),
20008            Self::ManageSellOfferResultCode(v) => v.write_xdr(w),
20009            Self::ManageOfferEffect(v) => v.write_xdr(w),
20010            Self::ManageOfferSuccessResult(v) => v.write_xdr(w),
20011            Self::ManageOfferSuccessResultOffer(v) => v.write_xdr(w),
20012            Self::ManageSellOfferResult(v) => v.write_xdr(w),
20013            Self::ManageBuyOfferResultCode(v) => v.write_xdr(w),
20014            Self::ManageBuyOfferResult(v) => v.write_xdr(w),
20015            Self::SetOptionsResultCode(v) => v.write_xdr(w),
20016            Self::SetOptionsResult(v) => v.write_xdr(w),
20017            Self::ChangeTrustResultCode(v) => v.write_xdr(w),
20018            Self::ChangeTrustResult(v) => v.write_xdr(w),
20019            Self::AllowTrustResultCode(v) => v.write_xdr(w),
20020            Self::AllowTrustResult(v) => v.write_xdr(w),
20021            Self::AccountMergeResultCode(v) => v.write_xdr(w),
20022            Self::AccountMergeResult(v) => v.write_xdr(w),
20023            Self::InflationResultCode(v) => v.write_xdr(w),
20024            Self::InflationPayout(v) => v.write_xdr(w),
20025            Self::InflationResult(v) => v.write_xdr(w),
20026            Self::ManageDataResultCode(v) => v.write_xdr(w),
20027            Self::ManageDataResult(v) => v.write_xdr(w),
20028            Self::BumpSequenceResultCode(v) => v.write_xdr(w),
20029            Self::BumpSequenceResult(v) => v.write_xdr(w),
20030            Self::CreateClaimableBalanceResultCode(v) => v.write_xdr(w),
20031            Self::CreateClaimableBalanceResult(v) => v.write_xdr(w),
20032            Self::ClaimClaimableBalanceResultCode(v) => v.write_xdr(w),
20033            Self::ClaimClaimableBalanceResult(v) => v.write_xdr(w),
20034            Self::BeginSponsoringFutureReservesResultCode(v) => v.write_xdr(w),
20035            Self::BeginSponsoringFutureReservesResult(v) => v.write_xdr(w),
20036            Self::EndSponsoringFutureReservesResultCode(v) => v.write_xdr(w),
20037            Self::EndSponsoringFutureReservesResult(v) => v.write_xdr(w),
20038            Self::RevokeSponsorshipResultCode(v) => v.write_xdr(w),
20039            Self::RevokeSponsorshipResult(v) => v.write_xdr(w),
20040            Self::ClawbackResultCode(v) => v.write_xdr(w),
20041            Self::ClawbackResult(v) => v.write_xdr(w),
20042            Self::ClawbackClaimableBalanceResultCode(v) => v.write_xdr(w),
20043            Self::ClawbackClaimableBalanceResult(v) => v.write_xdr(w),
20044            Self::SetTrustLineFlagsResultCode(v) => v.write_xdr(w),
20045            Self::SetTrustLineFlagsResult(v) => v.write_xdr(w),
20046            Self::LiquidityPoolDepositResultCode(v) => v.write_xdr(w),
20047            Self::LiquidityPoolDepositResult(v) => v.write_xdr(w),
20048            Self::LiquidityPoolWithdrawResultCode(v) => v.write_xdr(w),
20049            Self::LiquidityPoolWithdrawResult(v) => v.write_xdr(w),
20050            Self::InvokeHostFunctionResultCode(v) => v.write_xdr(w),
20051            Self::InvokeHostFunctionResult(v) => v.write_xdr(w),
20052            Self::ExtendFootprintTtlResultCode(v) => v.write_xdr(w),
20053            Self::ExtendFootprintTtlResult(v) => v.write_xdr(w),
20054            Self::RestoreFootprintResultCode(v) => v.write_xdr(w),
20055            Self::RestoreFootprintResult(v) => v.write_xdr(w),
20056            Self::OperationResultCode(v) => v.write_xdr(w),
20057            Self::OperationResult(v) => v.write_xdr(w),
20058            Self::OperationResultTr(v) => v.write_xdr(w),
20059            Self::TransactionResultCode(v) => v.write_xdr(w),
20060            Self::InnerTransactionResult(v) => v.write_xdr(w),
20061            Self::InnerTransactionResultResult(v) => v.write_xdr(w),
20062            Self::InnerTransactionResultExt(v) => v.write_xdr(w),
20063            Self::InnerTransactionResultPair(v) => v.write_xdr(w),
20064            Self::TransactionResult(v) => v.write_xdr(w),
20065            Self::TransactionResultResult(v) => v.write_xdr(w),
20066            Self::TransactionResultExt(v) => v.write_xdr(w),
20067            Self::Hash(v) => v.write_xdr(w),
20068            Self::Uint256(v) => v.write_xdr(w),
20069            Self::Uint32(v) => v.write_xdr(w),
20070            Self::Int32(v) => v.write_xdr(w),
20071            Self::Uint64(v) => v.write_xdr(w),
20072            Self::Int64(v) => v.write_xdr(w),
20073            Self::TimePoint(v) => v.write_xdr(w),
20074            Self::Duration(v) => v.write_xdr(w),
20075            Self::ExtensionPoint(v) => v.write_xdr(w),
20076            Self::CryptoKeyType(v) => v.write_xdr(w),
20077            Self::PublicKeyType(v) => v.write_xdr(w),
20078            Self::SignerKeyType(v) => v.write_xdr(w),
20079            Self::PublicKey(v) => v.write_xdr(w),
20080            Self::SignerKey(v) => v.write_xdr(w),
20081            Self::SignerKeyEd25519SignedPayload(v) => v.write_xdr(w),
20082            Self::Signature(v) => v.write_xdr(w),
20083            Self::SignatureHint(v) => v.write_xdr(w),
20084            Self::NodeId(v) => v.write_xdr(w),
20085            Self::AccountId(v) => v.write_xdr(w),
20086            Self::ContractId(v) => v.write_xdr(w),
20087            Self::Curve25519Secret(v) => v.write_xdr(w),
20088            Self::Curve25519Public(v) => v.write_xdr(w),
20089            Self::HmacSha256Key(v) => v.write_xdr(w),
20090            Self::HmacSha256Mac(v) => v.write_xdr(w),
20091            Self::ShortHashSeed(v) => v.write_xdr(w),
20092            Self::BinaryFuseFilterType(v) => v.write_xdr(w),
20093            Self::SerializedBinaryFuseFilter(v) => v.write_xdr(w),
20094            Self::PoolId(v) => v.write_xdr(w),
20095            Self::ClaimableBalanceIdType(v) => v.write_xdr(w),
20096            Self::ClaimableBalanceId(v) => v.write_xdr(w),
20097            #[cfg(feature = "test_feature")]
20098            Self::TestNextType(v) => v.write_xdr(w),
20099        }
20100    }
20101}