Trait XdrCodec

Source
pub trait XdrCodec: Sized {
    // Required methods
    fn to_xdr_buffered(&self, write_stream: &mut WriteStream);
    fn from_xdr_buffered<T: AsRef<[u8]>>(
        read_stream: &mut ReadStream<T>,
    ) -> Result<Self, DecodeError>;

    // Provided methods
    fn to_xdr(&self) -> Vec<u8>  { ... }
    fn from_xdr<T: AsRef<[u8]>>(input: T) -> Result<Self, DecodeError> { ... }
    fn to_base64_xdr(&self) -> Vec<u8>  { ... }
    fn from_base64_xdr<T: AsRef<[u8]>>(input: T) -> Result<Self, DecodeError> { ... }
}
Expand description

The XDR decoder/encoder trait

A type that implements this trait can be encoded as XDR or decoded from XDR

Required Methods§

Source

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Encode the XDR to a write stream

This is the basic implementation of the XDR encoder of this type. The methods to_xdr and to_base64_xdr call this function to do the heavy lifting.

Source

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Decode the XDR from a read stream

This is the basic implementation of the XDR decoder of this type. The methods from_xdr and from_base64_xdr call this function to do the heavy lifting.

Provided Methods§

Source

fn to_xdr(&self) -> Vec<u8>

Encode this type as XDR

The binary XDR is returned as a byte vector

Source

fn from_xdr<T: AsRef<[u8]>>(input: T) -> Result<Self, DecodeError>

Decode XDR provided as a reference to a byte vector

This will return error if decoding was not successful

Source

fn to_base64_xdr(&self) -> Vec<u8>

Encode this type as base64 encoded XDR

This returns an ASCII string (as a byte vector) that is the base64 encoding of the XDR encoding of this type.

Source

fn from_base64_xdr<T: AsRef<[u8]>>(input: T) -> Result<Self, DecodeError>

Decode this type from base64 encoded XDR

This takes a reference to an ASCII string (as a byte vector), decodes it as base64 and then decodes the resulting binary array as XDR.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl XdrCodec for bool

Implementation of the XDR decoder/encoder for bool

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Source§

impl XdrCodec for i32

Implementation of the XDR decoder/encoder for i32

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Source§

impl XdrCodec for i64

Implementation of the XDR decoder/encoder for i64

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Source§

impl XdrCodec for u32

Implementation of the XDR decoder/encoder for u32

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Source§

impl XdrCodec for u64

Implementation of the XDR decoder/encoder for u64

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Source§

impl<T: XdrCodec> XdrCodec for Option<T>

Implementation of the XDR decoder/encoder for an Option.

This requires that the inner type already implements XdrCodec

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<R: AsRef<[u8]>>( read_stream: &mut ReadStream<R>, ) -> Result<Self, DecodeError>

Source§

impl<T: XdrCodec> XdrCodec for Box<T>

Implementation of the XDR decoder/encoder for an Box.

This requires that the inner type already implements XdrCodec

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<R: AsRef<[u8]>>( read_stream: &mut ReadStream<R>, ) -> Result<Self, DecodeError>

Source§

impl<T: XdrCodec, const N: usize> XdrCodec for [T; N]

Implementation of the XDR decoder/encoder for a fixed size array

This requires that the inner type already implements XdrCodec

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<R: AsRef<[u8]>>( read_stream: &mut ReadStream<R>, ) -> Result<Self, DecodeError>

Source§

impl<const N: usize> XdrCodec for [u8; N]

Implementation of the XDR decoder/encoder for fixed length binary data

Source§

fn to_xdr_buffered(&self, write_stream: &mut WriteStream)

Source§

fn from_xdr_buffered<T: AsRef<[u8]>>( read_stream: &mut ReadStream<T>, ) -> Result<Self, DecodeError>

Implementors§

Source§

impl XdrCodec for Asset

Source§

impl XdrCodec for AssetCode

Source§

impl XdrCodec for ClaimPredicate

Source§

impl XdrCodec for ClaimableBalanceId

Source§

impl XdrCodec for Claimant

Source§

impl XdrCodec for LedgerKey

Source§

impl XdrCodec for Memo

Source§

impl XdrCodec for MuxedAccount

Source§

impl XdrCodec for PublicKey

Source§

impl XdrCodec for SignerKey

Source§

impl XdrCodec for TransactionEnvelope

Source§

impl XdrCodec for TrustLineFlags

Source§

impl XdrCodec for AccountEntryExt

Source§

impl XdrCodec for AccountEntryExtensionV1Ext

Source§

impl XdrCodec for AccountEntryExtensionV2Ext

Source§

impl XdrCodec for AccountMergeResult

Source§

impl XdrCodec for AccountMergeResultCode

Source§

impl XdrCodec for AllowTrustResult

Source§

impl XdrCodec for AllowTrustResultCode

Source§

impl XdrCodec for AssetType

Source§

impl XdrCodec for BeginSponsoringFutureReservesResult

Source§

impl XdrCodec for BeginSponsoringFutureReservesResultCode

Source§

impl XdrCodec for BumpSequenceResult

Source§

impl XdrCodec for BumpSequenceResultCode

Source§

impl XdrCodec for ChangeTrustAsset

Source§

impl XdrCodec for ChangeTrustResult

Source§

impl XdrCodec for ChangeTrustResultCode

Source§

impl XdrCodec for ClaimAtom

Source§

impl XdrCodec for ClaimAtomType

Source§

impl XdrCodec for ClaimClaimableBalanceResult

Source§

impl XdrCodec for ClaimClaimableBalanceResultCode

Source§

impl XdrCodec for ClaimPredicateType

Source§

impl XdrCodec for ClaimableBalanceEntryExt

Source§

impl XdrCodec for ClaimableBalanceEntryExtensionV1Ext

Source§

impl XdrCodec for ClaimableBalanceIdType

Source§

impl XdrCodec for ClaimantType

Source§

impl XdrCodec for ClawbackClaimableBalanceResult

Source§

impl XdrCodec for ClawbackClaimableBalanceResultCode

Source§

impl XdrCodec for ClawbackResult

Source§

impl XdrCodec for ClawbackResultCode

Source§

impl XdrCodec for ConfigSettingEntry

Source§

impl XdrCodec for ConfigSettingId

Source§

impl XdrCodec for ContractCodeEntryExt

Source§

impl XdrCodec for ContractDataDurability

Source§

impl XdrCodec for ContractEventBody

Source§

impl XdrCodec for ContractEventType

Source§

impl XdrCodec for ContractExecutable

Source§

impl XdrCodec for ContractExecutableType

Source§

impl XdrCodec for ContractIdPreimage

Source§

impl XdrCodec for ContractIdPreimageType

Source§

impl XdrCodec for CreateAccountResult

Source§

impl XdrCodec for CreateAccountResultCode

Source§

impl XdrCodec for CreateClaimableBalanceResult

Source§

impl XdrCodec for CreateClaimableBalanceResultCode

Source§

impl XdrCodec for CryptoKeyType

Source§

impl XdrCodec for DataEntryExt

Source§

impl XdrCodec for EndSponsoringFutureReservesResult

Source§

impl XdrCodec for EndSponsoringFutureReservesResultCode

Source§

impl XdrCodec for EnvelopeType

Source§

impl XdrCodec for ExtendFootprintTtlResult

Source§

impl XdrCodec for ExtendFootprintTtlResultCode

Source§

impl XdrCodec for ExtensionPoint

Source§

impl XdrCodec for FeeBumpTransactionExt

Source§

impl XdrCodec for FeeBumpTransactionInnerTx

Source§

impl XdrCodec for HostFunction

Source§

impl XdrCodec for HostFunctionType

Source§

impl XdrCodec for InflationResult

Source§

impl XdrCodec for InflationResultCode

Source§

impl XdrCodec for InnerTransactionResultExt

Source§

impl XdrCodec for InnerTransactionResultResult

Source§

impl XdrCodec for InvokeHostFunctionResult

Source§

impl XdrCodec for InvokeHostFunctionResultCode

Source§

impl XdrCodec for LedgerEntryChange

Source§

impl XdrCodec for LedgerEntryChangeType

Source§

impl XdrCodec for LedgerEntryData

Source§

impl XdrCodec for LedgerEntryExt

Source§

impl XdrCodec for LedgerEntryExtensionV1Ext

Source§

impl XdrCodec for LedgerEntryType

Source§

impl XdrCodec for LiquidityPoolDepositResult

Source§

impl XdrCodec for LiquidityPoolDepositResultCode

Source§

impl XdrCodec for LiquidityPoolEntryBody

Source§

impl XdrCodec for LiquidityPoolParameters

Source§

impl XdrCodec for LiquidityPoolType

Source§

impl XdrCodec for LiquidityPoolWithdrawResult

Source§

impl XdrCodec for LiquidityPoolWithdrawResultCode

Source§

impl XdrCodec for ManageBuyOfferResult

Source§

impl XdrCodec for ManageBuyOfferResultCode

Source§

impl XdrCodec for ManageDataResult

Source§

impl XdrCodec for ManageDataResultCode

Source§

impl XdrCodec for ManageOfferEffect

Source§

impl XdrCodec for ManageOfferSuccessResultOffer

Source§

impl XdrCodec for ManageSellOfferResult

Source§

impl XdrCodec for ManageSellOfferResultCode

Source§

impl XdrCodec for MemoType

Source§

impl XdrCodec for OfferEntryExt

Source§

impl XdrCodec for OperationBody

Source§

impl XdrCodec for OperationResult

Source§

impl XdrCodec for OperationResultCode

Source§

impl XdrCodec for OperationResultTr

Source§

impl XdrCodec for OperationType

Source§

impl XdrCodec for PathPaymentStrictReceiveResult

Source§

impl XdrCodec for PathPaymentStrictReceiveResultCode

Source§

impl XdrCodec for PathPaymentStrictSendResult

Source§

impl XdrCodec for PathPaymentStrictSendResultCode

Source§

impl XdrCodec for PaymentResult

Source§

impl XdrCodec for PaymentResultCode

Source§

impl XdrCodec for PreconditionType

Source§

impl XdrCodec for Preconditions

Source§

impl XdrCodec for PublicKeyType

Source§

impl XdrCodec for RestoreFootprintResult

Source§

impl XdrCodec for RestoreFootprintResultCode

Source§

impl XdrCodec for RevokeSponsorshipOp

Source§

impl XdrCodec for RevokeSponsorshipResult

Source§

impl XdrCodec for RevokeSponsorshipResultCode

Source§

impl XdrCodec for RevokeSponsorshipType

Source§

impl XdrCodec for ScAddress

Source§

impl XdrCodec for ScAddressType

Source§

impl XdrCodec for ScError

Source§

impl XdrCodec for ScErrorCode

Source§

impl XdrCodec for ScErrorType

Source§

impl XdrCodec for ScVal

Source§

impl XdrCodec for ScValType

Source§

impl XdrCodec for SetOptionsResult

Source§

impl XdrCodec for SetOptionsResultCode

Source§

impl XdrCodec for SetTrustLineFlagsResult

Source§

impl XdrCodec for SetTrustLineFlagsResultCode

Source§

impl XdrCodec for SignerKeyType

Source§

impl XdrCodec for SorobanAuthorizedFunction

Source§

impl XdrCodec for SorobanAuthorizedFunctionType

Source§

impl XdrCodec for SorobanCredentials

Source§

impl XdrCodec for SorobanCredentialsType

Source§

impl XdrCodec for SorobanTransactionMetaExt

Source§

impl XdrCodec for TransactionExt

Source§

impl XdrCodec for TransactionMeta

Source§

impl XdrCodec for TransactionResultCode

Source§

impl XdrCodec for TransactionResultExt

Source§

impl XdrCodec for TransactionResultResult

Source§

impl XdrCodec for TransactionSignaturePayloadTaggedTransaction

Source§

impl XdrCodec for TransactionV0Ext

Source§

impl XdrCodec for TrustLineAsset

Source§

impl XdrCodec for TrustLineEntryExt

Source§

impl XdrCodec for TrustLineEntryExtensionV2Ext

Source§

impl XdrCodec for TrustLineEntryV1Ext

Source§

impl XdrCodec for Curve25519Secret

Source§

impl XdrCodec for FeeBumpTransaction

Source§

impl XdrCodec for Operation

Source§

impl XdrCodec for Price

Source§

impl XdrCodec for Signer

Source§

impl XdrCodec for TimeBounds

Source§

impl XdrCodec for Transaction

Source§

impl XdrCodec for AccountEntry

Source§

impl XdrCodec for AccountEntryExtensionV1

Source§

impl XdrCodec for AccountEntryExtensionV2

Source§

impl XdrCodec for AccountEntryExtensionV3

Source§

impl XdrCodec for AllowTrustOp

Source§

impl XdrCodec for AlphaNum4

Source§

impl XdrCodec for AlphaNum12

Source§

impl XdrCodec for BeginSponsoringFutureReservesOp

Source§

impl XdrCodec for BumpSequenceOp

Source§

impl XdrCodec for ChangeTrustOp

Source§

impl XdrCodec for ClaimClaimableBalanceOp

Source§

impl XdrCodec for ClaimLiquidityAtom

Source§

impl XdrCodec for ClaimOfferAtom

Source§

impl XdrCodec for ClaimOfferAtomV0

Source§

impl XdrCodec for ClaimableBalanceEntry

Source§

impl XdrCodec for ClaimableBalanceEntryExtensionV1

Source§

impl XdrCodec for ClaimantV0

Source§

impl XdrCodec for ClawbackClaimableBalanceOp

Source§

impl XdrCodec for ClawbackOp

Source§

impl XdrCodec for ConfigSettingContractBandwidthV0

Source§

impl XdrCodec for ConfigSettingContractComputeV0

Source§

impl XdrCodec for ConfigSettingContractEventsV0

Source§

impl XdrCodec for ConfigSettingContractExecutionLanesV0

Source§

impl XdrCodec for ConfigSettingContractHistoricalDataV0

Source§

impl XdrCodec for ConfigSettingContractLedgerCostV0

Source§

impl XdrCodec for ContractCodeCostInputs

Source§

impl XdrCodec for ContractCodeEntry

Source§

impl XdrCodec for ContractCodeEntryV1

Source§

impl XdrCodec for ContractCostParamEntry

Source§

impl XdrCodec for ContractDataEntry

Source§

impl XdrCodec for ContractEvent

Source§

impl XdrCodec for ContractEventV0

Source§

impl XdrCodec for ContractIdPreimageFromAddress

Source§

impl XdrCodec for CreateAccountOp

Source§

impl XdrCodec for CreateClaimableBalanceOp

Source§

impl XdrCodec for CreateContractArgs

Source§

impl XdrCodec for CreatePassiveSellOfferOp

Source§

impl XdrCodec for DataEntry

Source§

impl XdrCodec for DecoratedSignature

Source§

impl XdrCodec for DiagnosticEvent

Source§

impl XdrCodec for EvictionIterator

Source§

impl XdrCodec for ExtendFootprintTtlOp

Source§

impl XdrCodec for FeeBumpTransactionEnvelope

Source§

impl XdrCodec for InflationPayout

Source§

impl XdrCodec for InnerTransactionResult

Source§

impl XdrCodec for InnerTransactionResultPair

Source§

impl XdrCodec for Int128Parts

Source§

impl XdrCodec for Int256Parts

Source§

impl XdrCodec for InvokeContractArgs

Source§

impl XdrCodec for InvokeHostFunctionOp

Source§

impl XdrCodec for LedgerBounds

Source§

impl XdrCodec for LedgerEntry

Source§

impl XdrCodec for LedgerEntryExtensionV1

Source§

impl XdrCodec for LedgerFootprint

Source§

impl XdrCodec for LedgerKeyAccount

Source§

impl XdrCodec for LedgerKeyClaimableBalance

Source§

impl XdrCodec for LedgerKeyConfigSetting

Source§

impl XdrCodec for LedgerKeyContractCode

Source§

impl XdrCodec for LedgerKeyContractData

Source§

impl XdrCodec for LedgerKeyData

Source§

impl XdrCodec for LedgerKeyLiquidityPool

Source§

impl XdrCodec for LedgerKeyOffer

Source§

impl XdrCodec for LedgerKeyTrustLine

Source§

impl XdrCodec for LedgerKeyTtl

Source§

impl XdrCodec for Liabilities

Source§

impl XdrCodec for LiquidityPoolConstantProductParameters

Source§

impl XdrCodec for LiquidityPoolDepositOp

Source§

impl XdrCodec for LiquidityPoolEntry

Source§

impl XdrCodec for LiquidityPoolEntryConstantProduct

Source§

impl XdrCodec for LiquidityPoolWithdrawOp

Source§

impl XdrCodec for ManageBuyOfferOp

Source§

impl XdrCodec for ManageDataOp

Source§

impl XdrCodec for ManageOfferSuccessResult

Source§

impl XdrCodec for ManageSellOfferOp

Source§

impl XdrCodec for MuxedAccountMed25519

Source§

impl XdrCodec for OfferEntry

Source§

impl XdrCodec for OperationMeta

Source§

impl XdrCodec for PathPaymentStrictReceiveOp

Source§

impl XdrCodec for PathPaymentStrictReceiveResultSuccess

Source§

impl XdrCodec for PathPaymentStrictSendOp

Source§

impl XdrCodec for PathPaymentStrictSendResultSuccess

Source§

impl XdrCodec for PaymentOp

Source§

impl XdrCodec for PreconditionsV2

Source§

impl XdrCodec for RestoreFootprintOp

Source§

impl XdrCodec for RevokeSponsorshipOpSigner

Source§

impl XdrCodec for ScContractInstance

Source§

impl XdrCodec for ScMapEntry

Source§

impl XdrCodec for ScNonceKey

Source§

impl XdrCodec for SetOptionsOp

Source§

impl XdrCodec for SetTrustLineFlagsOp

Source§

impl XdrCodec for SignerKeyEd25519SignedPayload

Source§

impl XdrCodec for SimplePaymentResult

Source§

impl XdrCodec for SorobanAddressCredentials

Source§

impl XdrCodec for SorobanAuthorizationEntry

Source§

impl XdrCodec for SorobanAuthorizedInvocation

Source§

impl XdrCodec for SorobanResources

Source§

impl XdrCodec for SorobanTransactionData

Source§

impl XdrCodec for SorobanTransactionMeta

Source§

impl XdrCodec for SorobanTransactionMetaExtV1

Source§

impl XdrCodec for StateArchivalSettings

Source§

impl XdrCodec for TransactionMetaV1

Source§

impl XdrCodec for TransactionMetaV2

Source§

impl XdrCodec for TransactionMetaV3

Source§

impl XdrCodec for TransactionResult

Source§

impl XdrCodec for TransactionSignaturePayload

Source§

impl XdrCodec for TransactionV0

Source§

impl XdrCodec for TransactionV0Envelope

Source§

impl XdrCodec for TransactionV1Envelope

Source§

impl XdrCodec for TrustLineEntry

Source§

impl XdrCodec for TrustLineEntryExtensionV2

Source§

impl XdrCodec for TrustLineEntryV1

Source§

impl XdrCodec for TtlEntry

Source§

impl XdrCodec for UInt128Parts

Source§

impl XdrCodec for UInt256Parts

Source§

impl<T: XdrCodec> XdrCodec for XdrArchive<T>

Source§

impl<T: XdrCodec, const N: i32> XdrCodec for LimitedVarArray<T, N>

Source§

impl<const N: i32> XdrCodec for LimitedString<N>

Source§

impl<const N: i32> XdrCodec for LimitedVarOpaque<N>