#[repr(i32)]pub enum ScValType {
Show 22 variants
Bool = 0,
Void = 1,
Error = 2,
U32 = 3,
I32 = 4,
U64 = 5,
I64 = 6,
Timepoint = 7,
Duration = 8,
U128 = 9,
I128 = 10,
U256 = 11,
I256 = 12,
Bytes = 13,
String = 14,
Symbol = 15,
Vec = 16,
Map = 17,
Address = 18,
ContractInstance = 19,
LedgerKeyContractInstance = 20,
LedgerKeyNonce = 21,
}
Expand description
ScValType is an XDR Enum defines as:
enum SCValType
{
SCV_BOOL = 0,
SCV_VOID = 1,
SCV_ERROR = 2,
// 32 bits is the smallest type in WASM or XDR; no need for u8/u16.
SCV_U32 = 3,
SCV_I32 = 4,
// 64 bits is naturally supported by both WASM and XDR also.
SCV_U64 = 5,
SCV_I64 = 6,
// Time-related u64 subtypes with their own functions and formatting.
SCV_TIMEPOINT = 7,
SCV_DURATION = 8,
// 128 bits is naturally supported by Rust and we use it for Soroban
// fixed-point arithmetic prices / balances / similar "quantities". These
// are represented in XDR as a pair of 2 u64s.
SCV_U128 = 9,
SCV_I128 = 10,
// 256 bits is the size of sha256 output, ed25519 keys, and the EVM machine
// word, so for interop use we include this even though it requires a small
// amount of Rust guest and/or host library code.
SCV_U256 = 11,
SCV_I256 = 12,
// Bytes come in 3 flavors, 2 of which have meaningfully different
// formatting and validity-checking / domain-restriction.
SCV_BYTES = 13,
SCV_STRING = 14,
SCV_SYMBOL = 15,
// Vecs and maps are just polymorphic containers of other ScVals.
SCV_VEC = 16,
SCV_MAP = 17,
// Address is the universal identifier for contracts and classic
// accounts.
SCV_ADDRESS = 18,
// The following are the internal SCVal variants that are not
// exposed to the contracts.
SCV_CONTRACT_INSTANCE = 19,
// SCV_LEDGER_KEY_CONTRACT_INSTANCE and SCV_LEDGER_KEY_NONCE are unique
// symbolic SCVals used as the key for ledger entries for a contract's
// instance and an address' nonce, respectively.
SCV_LEDGER_KEY_CONTRACT_INSTANCE = 20,
SCV_LEDGER_KEY_NONCE = 21
};
Variants§
Bool = 0
Void = 1
Error = 2
U32 = 3
I32 = 4
U64 = 5
I64 = 6
Timepoint = 7
Duration = 8
U128 = 9
I128 = 10
U256 = 11
I256 = 12
Bytes = 13
String = 14
Symbol = 15
Vec = 16
Map = 17
Address = 18
ContractInstance = 19
LedgerKeyContractInstance = 20
LedgerKeyNonce = 21
Implementations§
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for ScValType
impl<'arbitrary> Arbitrary<'arbitrary> for ScValType
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<ScValType, Error>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<ScValType, Error>
Generate an arbitrary value of
Self
from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<ScValType, Error>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<ScValType, Error>
Generate an arbitrary value of
Self
from the entirety of the given
unstructured data. Read moreSource§impl<'de> Deserialize<'de> for ScValType
impl<'de> Deserialize<'de> for ScValType
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ScValType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ScValType, <__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 ScValType
impl Ord for ScValType
Source§impl PartialOrd for ScValType
impl PartialOrd for ScValType
Source§impl ReadXdr for ScValType
impl ReadXdr for ScValType
Source§fn read_xdr<R>(r: &mut Limited<R>) -> Result<ScValType, Error>where
R: Read,
fn read_xdr<R>(r: &mut Limited<R>) -> Result<ScValType, 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<'_, R>, Self> ⓘwhere
R: Read,
fn read_xdr_base64_iter<R>(
r: &mut Limited<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.
Source§impl Serialize for ScValType
impl Serialize for ScValType
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
impl Copy for ScValType
impl Enum for ScValType
impl Eq for ScValType
impl StructuralPartialEq for ScValType
impl Union<ScValType> for ScVal
Auto Trait Implementations§
impl Freeze for ScValType
impl RefUnwindSafe for ScValType
impl Send for ScValType
impl Sync for ScValType
impl Unpin for ScValType
impl UnwindSafe for ScValType
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<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W), b: &(T, U, V, W), ) -> Result<Ordering, <C as Compare<(T, U, V, W)>>::Error>
Source§impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W, X), b: &(T, U, V, W, X), ) -> Result<Ordering, <C as Compare<(T, U, V, W, X)>>::Error>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.Source§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
.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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