Enum soroban_sdk::xdr::ScVal
pub enum ScVal {
Show 22 variants
Bool(bool),
Void,
Status(ScStatus),
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>),
ContractExecutable(ScContractExecutable),
Address(ScAddress),
LedgerKeyContractExecutable,
LedgerKeyNonce(ScNonceKey),
}
Variants§
Bool(bool)
Void
Status(ScStatus)
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>)
ContractExecutable(ScContractExecutable)
Address(ScAddress)
LedgerKeyContractExecutable
LedgerKeyNonce(ScNonceKey)
Implementations§
§impl ScVal
impl ScVal
pub const VARIANTS: [ScValType; 22] = [ScValType::Bool, ScValType::Void, ScValType::Status, ScValType::U32, ScValType::I32, ScValType::U64, ScValType::I64, ScValType::Timepoint, ScValType::Duration, ScValType::U128, ScValType::I128, ScValType::U256, ScValType::I256, ScValType::Bytes, ScValType::String, ScValType::Symbol, ScValType::Vec, ScValType::Map, ScValType::ContractExecutable, ScValType::Address, ScValType::LedgerKeyContractExecutable, ScValType::LedgerKeyNonce]
pub const VARIANTS_STR: [&'static str; 22] = ["Bool", "Void", "Status", "U32", "I32", "U64", "I64", "Timepoint", "Duration", "U128", "I128", "U256", "I256", "Bytes", "String", "Symbol", "Vec", "Map", "ContractExecutable", "Address", "LedgerKeyContractExecutable", "LedgerKeyNonce"]
pub const fn name(&self) -> &'static str
pub const fn discriminant(&self) -> ScValType
pub const fn variants() -> [ScValType; 22]
Trait Implementations§
§impl<'arbitrary> Arbitrary<'arbitrary> for ScVal
impl<'arbitrary> Arbitrary<'arbitrary> for ScVal
§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<ScVal, Error>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<ScVal, Error>
Generate an arbitrary value of
Self
from the given unstructured data. Read more§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<ScVal, Error>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<ScVal, Error>
Generate an arbitrary value of
Self
from the entirety of the given
unstructured data. Read more§impl<'de> Deserialize<'de> for ScVal
impl<'de> Deserialize<'de> for ScVal
§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
§impl Discriminant<ScValType> for ScVal
impl Discriminant<ScValType> for ScVal
fn discriminant(&self) -> ScValType
§impl Ord for ScVal
impl Ord for ScVal
§impl PartialOrd<ScVal> for ScVal
impl PartialOrd<ScVal> for ScVal
§fn partial_cmp(&self, other: &ScVal) -> Option<Ordering>
fn partial_cmp(&self, other: &ScVal) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more§impl ReadXdr for ScVal
impl ReadXdr for ScVal
§fn read_xdr(r: &mut impl Read) -> Result<ScVal, Error>
fn read_xdr(r: &mut impl Read) -> Result<ScVal, Error>
Read the XDR and construct the type. Read more
§fn read_xdr_base64(r: &mut impl Read) -> Result<Self, Error>
fn read_xdr_base64(r: &mut impl Read) -> Result<Self, Error>
Construct the type from the XDR bytes base64 encoded. Read more
§fn read_xdr_to_end(r: &mut impl Read) -> Result<Self, Error>
fn read_xdr_to_end(r: &mut impl Read) -> Result<Self, Error>
Read the XDR and construct the type, and consider it an error if the
read does not completely consume the read implementation. Read more
§fn read_xdr_base64_to_end(r: &mut impl Read) -> Result<Self, Error>
fn read_xdr_base64_to_end(r: &mut impl Read) -> Result<Self, Error>
Construct the type from the XDR bytes base64 encoded. Read more
§fn read_xdr_into(&mut self, r: &mut impl Read) -> Result<(), Error>
fn read_xdr_into(&mut self, r: &mut impl Read) -> Result<(), Error>
Read the XDR and construct the type. Read more
§fn read_xdr_into_to_end(&mut self, r: &mut impl Read) -> Result<(), Error>
fn read_xdr_into_to_end(&mut self, r: &mut impl Read) -> Result<(), Error>
Read the XDR into the existing value, and consider it an error if the
read does not completely consume the read implementation. Read more
§fn read_xdr_iter<R>(r: &mut R) -> ReadXdrIter<&mut R, Self> ⓘwhere
R: Read,
fn read_xdr_iter<R>(r: &mut 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
§fn read_xdr_base64_iter<R>(r: &mut R) -> ReadXdrIter<DecoderReader<'_, R>, Self> ⓘwhere
R: Read,
fn read_xdr_base64_iter<R>(r: &mut R) -> ReadXdrIter<DecoderReader<'_, 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.
§impl Serialize for ScVal
impl Serialize for ScVal
§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
§impl<T0, T1, T2> TryFrom<(T0, T1, T2)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
impl<T0, T1, T2> TryFrom<(T0, T1, T2)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>,
§impl<T0, T1, T2, T3> TryFrom<(T0, T1, T2, T3)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
impl<T0, T1, T2, T3> TryFrom<(T0, T1, T2, T3)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>,
§impl<T0, T1, T2, T3, T4> TryFrom<(T0, T1, T2, T3, T4)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
impl<T0, T1, T2, T3, T4> TryFrom<(T0, T1, T2, T3, T4)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>,
§impl<T0, T1, T2, T3, T4, T5> TryFrom<(T0, T1, T2, T3, T4, T5)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
impl<T0, T1, T2, T3, T4, T5> TryFrom<(T0, T1, T2, T3, T4, T5)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>,
§impl<T0, T1, T2, T3, T4, T5, T6> TryFrom<(T0, T1, T2, T3, T4, T5, T6)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
impl<T0, T1, T2, T3, T4, T5, T6> TryFrom<(T0, T1, T2, T3, T4, T5, T6)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>,
§impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
T7: TryInto<ScVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>, T7: TryInto<ScVal>,
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
T7: TryInto<ScVal>,
T8: TryInto<ScVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>, T7: TryInto<ScVal>, T8: TryInto<ScVal>,
§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
T7: TryInto<ScVal>,
T8: TryInto<ScVal>,
T9: TryInto<ScVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFrom<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>, T7: TryInto<ScVal>, T8: TryInto<ScVal>, T9: TryInto<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 ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
T7: TryInto<ScVal>,
T8: TryInto<ScVal>,
T9: TryInto<ScVal>,
T10: TryInto<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 ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>, T7: TryInto<ScVal>, T8: TryInto<ScVal>, T9: TryInto<ScVal>, T10: TryInto<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 ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
T7: TryInto<ScVal>,
T8: TryInto<ScVal>,
T9: TryInto<ScVal>,
T10: TryInto<ScVal>,
T11: TryInto<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 ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>, T7: TryInto<ScVal>, T8: TryInto<ScVal>, T9: TryInto<ScVal>, T10: TryInto<ScVal>, T11: TryInto<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 ScValwhere
T0: TryInto<ScVal>,
T1: TryInto<ScVal>,
T2: TryInto<ScVal>,
T3: TryInto<ScVal>,
T4: TryInto<ScVal>,
T5: TryInto<ScVal>,
T6: TryInto<ScVal>,
T7: TryInto<ScVal>,
T8: TryInto<ScVal>,
T9: TryInto<ScVal>,
T10: TryInto<ScVal>,
T11: TryInto<ScVal>,
T12: TryInto<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 ScValwhere T0: TryInto<ScVal>, T1: TryInto<ScVal>, T2: TryInto<ScVal>, T3: TryInto<ScVal>, T4: TryInto<ScVal>, T5: TryInto<ScVal>, T6: TryInto<ScVal>, T7: TryInto<ScVal>, T8: TryInto<ScVal>, T9: TryInto<ScVal>, T10: TryInto<ScVal>, T11: TryInto<ScVal>, T12: TryInto<ScVal>,
§impl<E> TryFromVal<E, &ScVal> for Symbolwhere
E: Env,
impl<E> TryFromVal<E, &ScVal> for Symbolwhere E: Env,
type Error = ConversionError
fn try_from_val( env: &E, v: &&ScVal ) -> Result<Symbol, <Symbol as TryFromVal<E, &ScVal>>::Error>
§impl<E> TryFromVal<E, RawVal> for ScValwhere
E: Env,
ScValObject: TryFromVal<E, Object>,
impl<E> TryFromVal<E, RawVal> for ScValwhere E: Env, ScValObject: TryFromVal<E, Object>,
type Error = ConversionError
fn try_from_val( env: &E, val: &RawVal ) -> Result<ScVal, <ScVal as TryFromVal<E, RawVal>>::Error>
§impl<E> TryFromVal<E, ScVal> for RawValwhere
E: Env,
Object: for<'a> TryFromVal<E, ScValObjRef<'a>, Error = ConversionError>,
impl<E> TryFromVal<E, ScVal> for RawValwhere E: Env, Object: for<'a> TryFromVal<E, ScValObjRef<'a>, Error = ConversionError>,
type Error = ConversionError
fn try_from_val( env: &E, val: &ScVal ) -> Result<RawVal, <RawVal as TryFromVal<E, ScVal>>::Error>
§impl<E> TryFromVal<E, ScVal> for Symbolwhere
E: Env,
impl<E> TryFromVal<E, ScVal> for Symbolwhere E: Env,
type Error = ConversionError
fn try_from_val( env: &E, v: &ScVal ) -> Result<Symbol, <Symbol as TryFromVal<E, ScVal>>::Error>
§impl<E> TryFromVal<E, Symbol> for ScValwhere
E: Env,
impl<E> TryFromVal<E, Symbol> for ScValwhere E: Env,
type Error = ConversionError
fn try_from_val( e: &E, s: &Symbol ) -> Result<ScVal, <ScVal as TryFromVal<E, Symbol>>::Error>
source§impl<K, V> TryFromVal<Env, Map<K, V>> for ScVal
impl<K, V> TryFromVal<Env, Map<K, V>> for ScVal
type Error = ConversionError
fn try_from_val(_e: &Env, v: &Map<K, V>) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for Address
impl TryFromVal<Env, ScVal> for Address
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for Bytes
impl TryFromVal<Env, ScVal> for Bytes
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, ScVal> for BytesN<N>
impl<const N: usize> TryFromVal<Env, ScVal> for BytesN<N>
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for I256
impl TryFromVal<Env, ScVal> for I256
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl<K, V> TryFromVal<Env, ScVal> for Map<K, V>where
K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<K, V> TryFromVal<Env, ScVal> for Map<K, V>where K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>, V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for String
impl TryFromVal<Env, ScVal> for String
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for Symbol
impl TryFromVal<Env, ScVal> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for U256
impl TryFromVal<Env, ScVal> for U256
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl<T> TryFromVal<Env, ScVal> for Vec<T>where
T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<T> TryFromVal<Env, ScVal> for Vec<T>where T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Symbol> for ScVal
impl TryFromVal<Env, Symbol> for ScVal
type Error = ConversionError
fn try_from_val(_e: &Env, v: &Symbol) -> Result<Self, Self::Error>
impl Eq for ScVal
impl StructuralEq for ScVal
impl StructuralPartialEq for ScVal
impl Union<ScValType> for ScVal
Auto Trait Implementations§
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
§impl<T, U, V, E, C> Compare<(T, U, V)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,
impl<T, U, V, E, C> Compare<(T, U, V)> for Cwhere C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.