pub enum ScVal {
Show 22 variants
Bool(bool),
Void,
Error(ScError),
U32(u32),
I32(i32),
U64(u64),
I64(i64),
Timepoint(TimePoint),
Duration(Duration),
U128(UInt128Parts),
I128(Int128Parts),
U256(UInt256Parts),
I256(Int256Parts),
Bytes(ScBytes),
String(ScString),
Symbol(ScSymbol),
Vec(Option<ScVec>),
Map(Option<ScMap>),
Address(ScAddress),
ContractInstance(ScContractInstance),
LedgerKeyContractInstance,
LedgerKeyNonce(ScNonceKey),
}Expand description
ScVal is an XDR Union defines as:
union SCVal switch (SCValType type)
{
case SCV_BOOL:
bool b;
case SCV_VOID:
void;
case SCV_ERROR:
SCError error;
case SCV_U32:
uint32 u32;
case SCV_I32:
int32 i32;
case SCV_U64:
uint64 u64;
case SCV_I64:
int64 i64;
case SCV_TIMEPOINT:
TimePoint timepoint;
case SCV_DURATION:
Duration duration;
case SCV_U128:
UInt128Parts u128;
case SCV_I128:
Int128Parts i128;
case SCV_U256:
UInt256Parts u256;
case SCV_I256:
Int256Parts i256;
case SCV_BYTES:
SCBytes bytes;
case SCV_STRING:
SCString str;
case SCV_SYMBOL:
SCSymbol sym;
// Vec and Map are recursive so need to live
// behind an option, due to xdrpp limitations.
case SCV_VEC:
SCVec *vec;
case SCV_MAP:
SCMap *map;
case SCV_ADDRESS:
SCAddress address;
// Special SCVals reserved for system-constructed contract-data
// ledger keys, not generally usable elsewhere.
case SCV_CONTRACT_INSTANCE:
SCContractInstance instance;
case SCV_LEDGER_KEY_CONTRACT_INSTANCE:
void;
case SCV_LEDGER_KEY_NONCE:
SCNonceKey nonce_key;
};Variants§
Bool(bool)
Void
Error(ScError)
U32(u32)
I32(i32)
U64(u64)
I64(i64)
Timepoint(TimePoint)
Duration(Duration)
U128(UInt128Parts)
I128(Int128Parts)
U256(UInt256Parts)
I256(Int256Parts)
Bytes(ScBytes)
String(ScString)
Symbol(ScSymbol)
Vec(Option<ScVec>)
Map(Option<ScMap>)
Address(ScAddress)
ContractInstance(ScContractInstance)
LedgerKeyContractInstance
LedgerKeyNonce(ScNonceKey)
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ScVal
impl<'de> Deserialize<'de> for ScVal
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ScVal, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ScVal, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Discriminant<ScValType> for ScVal
impl Discriminant<ScValType> for ScVal
fn discriminant(&self) -> ScValType
Source§impl Ord for ScVal
impl Ord for ScVal
Source§impl PartialOrd for ScVal
impl PartialOrd for ScVal
Source§impl ReadXdr for ScVal
impl ReadXdr for ScVal
Source§fn read_xdr<R>(r: &mut Limited<R>) -> Result<ScVal, Error>where
R: Read,
fn read_xdr<R>(r: &mut Limited<R>) -> Result<ScVal, Error>where
R: Read,
Read the XDR and construct the type. Read more
Source§fn read_xdr_base64<R>(r: &mut Limited<R>) -> Result<Self, Error>where
R: Read,
fn read_xdr_base64<R>(r: &mut Limited<R>) -> Result<Self, Error>where
R: Read,
Construct the type from the XDR bytes base64 encoded. Read more
Source§fn read_xdr_to_end<R>(r: &mut Limited<R>) -> Result<Self, Error>where
R: Read,
fn read_xdr_to_end<R>(r: &mut Limited<R>) -> Result<Self, Error>where
R: Read,
Read the XDR and construct the type, and consider it an error if the
read does not completely consume the read implementation. Read more
Source§fn read_xdr_base64_to_end<R>(r: &mut Limited<R>) -> Result<Self, Error>where
R: Read,
fn read_xdr_base64_to_end<R>(r: &mut Limited<R>) -> Result<Self, Error>where
R: Read,
Construct the type from the XDR bytes base64 encoded. Read more
Source§fn read_xdr_into<R>(&mut self, r: &mut Limited<R>) -> Result<(), Error>where
R: Read,
fn read_xdr_into<R>(&mut self, r: &mut Limited<R>) -> Result<(), Error>where
R: Read,
Read the XDR and construct the type. Read more
Source§fn read_xdr_into_to_end<R>(&mut self, r: &mut Limited<R>) -> Result<(), Error>where
R: Read,
fn read_xdr_into_to_end<R>(&mut self, r: &mut Limited<R>) -> Result<(), Error>where
R: Read,
Read the XDR into the existing value, and consider it an error if the
read does not completely consume the read implementation. Read more
Source§fn read_xdr_iter<R>(r: &mut Limited<R>) -> ReadXdrIter<&mut R, Self> ⓘwhere
R: Read,
fn read_xdr_iter<R>(r: &mut Limited<R>) -> ReadXdrIter<&mut R, Self> ⓘwhere
R: Read,
Create an iterator that reads the read implementation as a stream of
values that are read into the implementing type. Read more
Source§fn read_xdr_base64_iter<R>(
r: &mut Limited<R>,
) -> ReadXdrIter<DecoderReader<'_, GeneralPurpose, SkipWhitespace<&mut R>>, Self> ⓘwhere
R: Read,
fn read_xdr_base64_iter<R>(
r: &mut Limited<R>,
) -> ReadXdrIter<DecoderReader<'_, GeneralPurpose, SkipWhitespace<&mut R>>, Self> ⓘwhere
R: Read,
Create an iterator that reads the read implementation as a stream of
values that are read into the implementing type.
Source§impl Serialize for ScVal
impl Serialize for ScVal
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl<T0, T1, T2> TryFrom<&(T0, T1, T2)> for ScVal
impl<T0, T1, T2> TryFrom<&(T0, T1, T2)> for ScVal
Source§impl<T0, T1, T2, T3> TryFrom<&(T0, T1, T2, T3)> for ScVal
impl<T0, T1, T2, T3> TryFrom<&(T0, T1, T2, T3)> for ScVal
Source§impl<T0, T1, T2, T3, T4> TryFrom<&(T0, T1, T2, T3, T4)> for ScVal
impl<T0, T1, T2, T3, T4> TryFrom<&(T0, T1, T2, T3, T4)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5> TryFrom<&(T0, T1, T2, T3, T4, T5)> for ScVal
impl<T0, T1, T2, T3, T4, T5> TryFrom<&(T0, T1, T2, T3, T4, T5)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6> TryFrom<&(T0, T1, T2, T3, T4, T5, T6)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6> TryFrom<&(T0, T1, T2, T3, T4, T5, T6)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for ScValwhere
T0: TryInto<ScVal> + Clone,
T1: TryInto<ScVal> + Clone,
T2: TryInto<ScVal> + Clone,
T3: TryInto<ScVal> + Clone,
T4: TryInto<ScVal> + Clone,
T5: TryInto<ScVal> + Clone,
T6: TryInto<ScVal> + Clone,
T7: TryInto<ScVal> + Clone,
T8: TryInto<ScVal> + Clone,
T9: TryInto<ScVal> + Clone,
T10: TryInto<ScVal> + Clone,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for ScValwhere
T0: TryInto<ScVal> + Clone,
T1: TryInto<ScVal> + Clone,
T2: TryInto<ScVal> + Clone,
T3: TryInto<ScVal> + Clone,
T4: TryInto<ScVal> + Clone,
T5: TryInto<ScVal> + Clone,
T6: TryInto<ScVal> + Clone,
T7: TryInto<ScVal> + Clone,
T8: TryInto<ScVal> + Clone,
T9: TryInto<ScVal> + Clone,
T10: TryInto<ScVal> + Clone,
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for ScValwhere
T0: TryInto<ScVal> + Clone,
T1: TryInto<ScVal> + Clone,
T2: TryInto<ScVal> + Clone,
T3: TryInto<ScVal> + Clone,
T4: TryInto<ScVal> + Clone,
T5: TryInto<ScVal> + Clone,
T6: TryInto<ScVal> + Clone,
T7: TryInto<ScVal> + Clone,
T8: TryInto<ScVal> + Clone,
T9: TryInto<ScVal> + Clone,
T10: TryInto<ScVal> + Clone,
T11: TryInto<ScVal> + Clone,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for ScValwhere
T0: TryInto<ScVal> + Clone,
T1: TryInto<ScVal> + Clone,
T2: TryInto<ScVal> + Clone,
T3: TryInto<ScVal> + Clone,
T4: TryInto<ScVal> + Clone,
T5: TryInto<ScVal> + Clone,
T6: TryInto<ScVal> + Clone,
T7: TryInto<ScVal> + Clone,
T8: TryInto<ScVal> + Clone,
T9: TryInto<ScVal> + Clone,
T10: TryInto<ScVal> + Clone,
T11: TryInto<ScVal> + Clone,
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for ScValwhere
T0: TryInto<ScVal> + Clone,
T1: TryInto<ScVal> + Clone,
T2: TryInto<ScVal> + Clone,
T3: TryInto<ScVal> + Clone,
T4: TryInto<ScVal> + Clone,
T5: TryInto<ScVal> + Clone,
T6: TryInto<ScVal> + Clone,
T7: TryInto<ScVal> + Clone,
T8: TryInto<ScVal> + Clone,
T9: TryInto<ScVal> + Clone,
T10: TryInto<ScVal> + Clone,
T11: TryInto<ScVal> + Clone,
T12: TryInto<ScVal> + Clone,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TryFrom<&(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for ScValwhere
T0: TryInto<ScVal> + Clone,
T1: TryInto<ScVal> + Clone,
T2: TryInto<ScVal> + Clone,
T3: TryInto<ScVal> + Clone,
T4: TryInto<ScVal> + Clone,
T5: TryInto<ScVal> + Clone,
T6: TryInto<ScVal> + Clone,
T7: TryInto<ScVal> + Clone,
T8: TryInto<ScVal> + Clone,
T9: TryInto<ScVal> + Clone,
T10: TryInto<ScVal> + Clone,
T11: TryInto<ScVal> + Clone,
T12: TryInto<ScVal> + Clone,
Source§impl<T0, T1, T2> TryFrom<(T0, T1, T2)> for ScVal
impl<T0, T1, T2> TryFrom<(T0, T1, T2)> for ScVal
Source§impl<T0, T1, T2, T3> TryFrom<(T0, T1, T2, T3)> for ScVal
impl<T0, T1, T2, T3> TryFrom<(T0, T1, T2, T3)> for ScVal
Source§impl<T0, T1, T2, T3, T4> TryFrom<(T0, T1, T2, T3, T4)> for ScVal
impl<T0, T1, T2, T3, T4> TryFrom<(T0, T1, T2, T3, T4)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5> TryFrom<(T0, T1, T2, T3, T4, T5)> for ScVal
impl<T0, T1, T2, T3, T4, T5> TryFrom<(T0, T1, T2, T3, T4, T5)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6> TryFrom<(T0, T1, T2, T3, T4, T5, T6)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6> TryFrom<(T0, T1, T2, T3, T4, T5, T6)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for ScVal
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for ScVal
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for ScVal
impl Eq for ScVal
impl StructuralPartialEq for ScVal
impl Union<ScValType> for ScVal
Auto Trait Implementations§
impl Freeze for ScVal
impl RefUnwindSafe for ScVal
impl Send for ScVal
impl Sync for ScVal
impl Unpin for ScVal
impl UnwindSafe for ScVal
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more