Struct soroban_sdk::Env
source · pub struct Env { /* private fields */ }
Expand description
Implementations§
source§impl Env
impl Env
sourcepub fn storage(&self) -> Storage
pub fn storage(&self) -> Storage
Get a Storage for accessing and updating persistent data owned by the currently executing contract.
sourcepub fn events(&self) -> Events
pub fn events(&self) -> Events
Get Events for publishing events associated with the currently executing contract.
sourcepub fn current_contract_address(&self) -> Address
pub fn current_contract_address(&self) -> Address
Get the Address object corresponding to the current executing contract.
sourcepub fn call_stack(&self) -> Vec<(Address, Symbol)>
pub fn call_stack(&self) -> Vec<(Address, Symbol)>
Returns the contract call stack as a Vec
of (contract_id, function_name)
.
Examples
use soroban_sdk::{contractimpl, log, BytesN, Env, Symbol};
pub struct Contract;
#[contractimpl]
impl Contract {
pub fn hello(env: Env) {
let stack = env.call_stack();
assert_eq!(stack.len(), 1);
let outer = stack.get(0).unwrap().unwrap();
log!(&env, "{}", outer);
}
}
#[test]
fn test() {
let env = Env::default();
let contract_id = env.register_contract(None, Contract);
let client = ContractClient::new(&env, &contract_id);
client.hello();
}
sourcepub fn invoke_contract<T>(
&self,
contract_id: &Address,
func: &Symbol,
args: Vec<RawVal>
) -> Twhere
T: TryFromVal<Env, RawVal>,
pub fn invoke_contract<T>( &self, contract_id: &Address, func: &Symbol, args: Vec<RawVal> ) -> Twhere T: TryFromVal<Env, RawVal>,
Invokes a function of a contract that is registered in the Env.
Panics
Will panic if the contract_id
does not match a registered contract,
func
does not match a function of the referenced contract, or the
number of args
do not match the argument count of the referenced
contract function.
Will panic if the contract that is invoked fails or aborts in anyway.
Will panic if the value returned from the contract cannot be converted
into the type T
.
sourcepub fn try_invoke_contract<T, E>(
&self,
contract_id: &Address,
func: &Symbol,
args: Vec<RawVal>
) -> Result<Result<T, T::Error>, Result<E, E::Error>>where
T: TryFromVal<Env, RawVal>,
E: TryFrom<Status>,
pub fn try_invoke_contract<T, E>( &self, contract_id: &Address, func: &Symbol, args: Vec<RawVal> ) -> Result<Result<T, T::Error>, Result<E, E::Error>>where T: TryFromVal<Env, RawVal>, E: TryFrom<Status>,
Invokes a function of a contract that is registered in the Env, returns an error if the invocation fails for any reason.
sourcepub fn update_current_contract_wasm(&self, wasm_hash: &BytesN<32>)
pub fn update_current_contract_wasm(&self, wasm_hash: &BytesN<32>)
Replaces the executable of the current contract with the provided Wasm.
The Wasm blob identified by the wasm_hash
has to be already present
on-chain (the upload happens via INSTALL_CONTRACT_CODE
host function
or via install_contract_wasm
test function in unit tests).
The function won’t do anything immediately. The contract executable will only be updated after the invocation has successfully finished.
source§impl Env
impl Env
sourcepub fn register_contract<'a, T: ContractFunctionSet + 'static>(
&self,
contract_id: impl Into<Option<&'a Address>>,
contract: T
) -> Address
Available on crate feature testutils
only.
pub fn register_contract<'a, T: ContractFunctionSet + 'static>( &self, contract_id: impl Into<Option<&'a Address>>, contract: T ) -> Address
testutils
only.Register a contract with the Env for testing.
Passing a contract ID for the first arguments registers the contract
with that contract ID. Providing None
causes a random ID to be
assigned to the contract.
Registering a contract that is already registered replaces it.
Returns the contract ID of the registered contract.
Examples
use soroban_sdk::{contractimpl, BytesN, Env, Symbol};
pub struct HelloContract;
#[contractimpl]
impl HelloContract {
pub fn hello(env: Env, recipient: Symbol) -> Symbol {
todo!()
}
}
#[test]
fn test() {
let env = Env::default();
let contract_id = env.register_contract(None, HelloContract);
}
sourcepub fn register_contract_wasm<'a>(
&self,
contract_id: impl Into<Option<&'a Address>>,
contract_wasm: &[u8]
) -> Address
Available on crate feature testutils
only.
pub fn register_contract_wasm<'a>( &self, contract_id: impl Into<Option<&'a Address>>, contract_wasm: &[u8] ) -> Address
testutils
only.Register a contract in a WASM file with the Env for testing.
Passing a contract ID for the first arguments registers the contract
with that contract ID. Providing None
causes a random ID to be
assigned to the contract.
Registering a contract that is already registered replaces it.
Returns the contract ID of the registered contract.
Examples
use soroban_sdk::{BytesN, Env};
const WASM: &[u8] = include_bytes!("../doctest_fixtures/contract.wasm");
#[test]
fn test() {
let env = Env::default();
env.register_contract_wasm(None, WASM);
}
sourcepub fn register_stellar_asset_contract(&self, admin: Address) -> Address
Available on crate feature testutils
only.
pub fn register_stellar_asset_contract(&self, admin: Address) -> Address
testutils
only.Register the built-in Stellar Asset Contract with provided admin address.
Returns the contract ID of the registered token contract.
The contract will wrap a randomly-generated Stellar asset. This function is useful for using in the tests when an arbitrary token contract instance is needed.
sourcepub fn set_auths(&self, auths: &[ContractAuth])
Available on crate feature testutils
only.
pub fn set_auths(&self, auths: &[ContractAuth])
testutils
only.Set authorizations in the environment which will be consumed by
contracts when they invoke Address::require_auth
or
Address::require_auth_for_args
functions.
This function can also be called on contract clients.
To mock auth for testing, use mock_all_auths
or mock_auths
. If mocking of auths is enabled,
calling set_auths
disables any mocking.
sourcepub fn mock_auths(&self, auths: &[MockAuth<'_>])
Available on crate feature testutils
only.
pub fn mock_auths(&self, auths: &[MockAuth<'_>])
testutils
only.Mock authorizations in the environment which will cause matching invokes
of Address::require_auth
and Address::require_auth_for_args
to
pass.
This function can also be called on contract clients.
Authorizations not matching a mocked auth will fail.
To mock all auths, use mock_all_auths
.
Examples
use soroban_sdk::{contractimpl, Env, Address, testutils::{Address as _, MockAuth, MockAuthInvoke}, IntoVal};
pub struct HelloContract;
#[contractimpl]
impl HelloContract {
pub fn hello(env: Env, from: Address) {
from.require_auth();
// TODO
}
}
#[test]
fn test() {
let env = Env::default();
let contract_id = env.register_contract(None, HelloContract);
let client = HelloContractClient::new(&env, &contract_id);
let addr = Address::random(&env);
client.mock_auths(&[
MockAuth {
address: &addr,
nonce: 0,
invoke: &MockAuthInvoke {
contract: &contract_id,
fn_name: "hello",
args: (&addr,).into_val(&env),
sub_invokes: &[],
},
},
]).hello(&addr);
}
sourcepub fn mock_all_auths(&self)
Available on crate feature testutils
only.
pub fn mock_all_auths(&self)
testutils
only.Mock all calls to the Address::require_auth
and
Address::require_auth_for_args
functions in invoked contracts,
having them succeed as if authorization was provided.
When mocking is enabled, if the Address
being authorized is the
address of a contract, that contract’s __check_auth
function will not
be called, and the contract does not need to exist or be registered in
the test.
When mocking is enabled, if the Address
being authorized is the
address of an account, the account does not need to exist.
This function can also be called on contract clients.
To disable mocking, see set_auths
.
To access a list of auths that have occurred, see auths
.
It is not currently possible to mock a subset of auths.
Examples
use soroban_sdk::{contractimpl, Env, Address, testutils::Address as _};
pub struct HelloContract;
#[contractimpl]
impl HelloContract {
pub fn hello(env: Env, from: Address) {
from.require_auth();
// TODO
}
}
#[test]
fn test() {
let env = Env::default();
let contract_id = env.register_contract(None, HelloContract);
env.mock_all_auths();
let client = HelloContractClient::new(&env, &contract_id);
let addr = Address::random(&env);
client.hello(&addr);
}
sourcepub fn auths(&self) -> Vec<(Address, Address, Symbol, Vec<RawVal>)>
Available on crate feature testutils
only.
pub fn auths(&self) -> Vec<(Address, Address, Symbol, Vec<RawVal>)>
testutils
only.Returns a list of authorizations that were seen during the last contract invocation.
Use this in tests to verify that the expected authorizations with the expected arguments are required.
The return value is a vector of authorizations represented by tuples of
(address, contract_id, function_name, args)
corresponding to the calls
of require_auth_for_args(address, args)
from the contract function
(contract_id, function_name)
(or require_auth
with all the arguments
of the function invocation).
The order of the returned vector is defined by the order of
Address::require_auth
calls. Repeated calls to
Address::require_auth
with the same address and args in the same
tree of contract invocations will appear only once in the vector. Calls
to Address::require_auth
in disjoint call trees for the same address
will present in the list.
Examples
use soroban_sdk::{contractimpl, testutils::Address as _, Address, Symbol, Env, IntoVal};
pub struct Contract;
#[contractimpl]
impl Contract {
pub fn transfer(env: Env, address: Address, amount: i128) {
address.require_auth();
}
pub fn transfer2(env: Env, address: Address, amount: i128) {
address.require_auth_for_args((amount / 2,).into_val(&env));
}
}
#[test]
fn test() {
extern crate std;
let env = Env::default();
let contract_id = env.register_contract(None, Contract);
let client = ContractClient::new(&env, &contract_id);
env.mock_all_auths();
let address = Address::random(&env);
client.transfer(&address, &1000_i128);
assert_eq!(
env.auths(),
std::vec![(
address.clone(),
client.address.clone(),
Symbol::short("transfer"),
(&address, 1000_i128,).into_val(&env)
)]
);
client.transfer2(&address, &1000_i128);
assert_eq!(
env.auths(),
std::vec![(
address.clone(),
client.address.clone(),
Symbol::short("transfer2"),
// `transfer2` requires auth for (amount / 2) == (1000 / 2) == 500.
(500_i128,).into_val(&env)
)]
);
}
sourcepub fn try_invoke_contract_check_auth<E: TryFrom<Status>>(
&self,
contract: &BytesN<32>,
signature_payload: &BytesN<32>,
signatures: &Vec<RawVal>,
auth_context: &Vec<Context>
) -> Result<(), Result<E, E::Error>>
Available on crate feature testutils
only.
pub fn try_invoke_contract_check_auth<E: TryFrom<Status>>( &self, contract: &BytesN<32>, signature_payload: &BytesN<32>, signatures: &Vec<RawVal>, auth_context: &Vec<Context> ) -> Result<(), Result<E, E::Error>>
testutils
only.Invokes the special __check_auth
function of contracts that implement
the custom account interface.
__check_auth
can’t be called outside of the host-managed require_auth
calls. This test utility allows testing custom account contracts without
the need to setup complex contract call trees and enabling the enforcing
auth on the host side.
This function requires to provide the template argument for error. Use
soroban_sdk::Status
if __check_auth
doesn’t return a special
contract error and use the error with contracterror
attribute
otherwise.
Examples
use soroban_sdk::{contracterror, contractimpl, testutils::{Address as _, BytesN as _}, vec, auth::Context, BytesN, Env, Vec, RawVal};
#[contracterror]
#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)]
#[repr(u32)]
pub enum NoopAccountError {
SomeError = 1,
}
struct NoopAccountContract;
#[contractimpl]
impl NoopAccountContract {
#[allow(non_snake_case)]
pub fn __check_auth(
_env: Env,
_signature_payload: BytesN<32>,
signatures: Vec<RawVal>,
_auth_context: Vec<Context>,
) -> Result<(), NoopAccountError> {
if signatures.is_empty() {
Err(NoopAccountError::SomeError)
} else {
Ok(())
}
}
}
#[test]
fn test() {
let e: Env = Default::default();
let account_contract = NoopAccountContractClient::new(&e, &e.register_contract(None, NoopAccountContract));
// Non-succesful call of `__check_auth` with a `contracterror` error.
assert_eq!(
e.try_invoke_contract_check_auth::<NoopAccountError>(
&account_contract.address.contract_id(),
&BytesN::random(&e),
&vec![&e],
&vec![&e],
),
// The inner `Result` is for conversion error and will be Ok
// as long as a valid error type used.
Err(Ok(NoopAccountError::SomeError))
);
// Succesful call of `__check_auth` with a `soroban_sdk::Status`
// error - this should be compatible with any error type.
assert_eq!(
e.try_invoke_contract_check_auth::<soroban_sdk::Status>(
&account_contract.address.contract_id(),
&BytesN::random(&e),
&vec![&e, 0_i32.into()],
&vec![&e],
),
Ok(())
);
}
sourcepub fn install_contract_wasm(&self, contract_wasm: &[u8]) -> BytesN<32>
Available on crate feature testutils
only.
pub fn install_contract_wasm(&self, contract_wasm: &[u8]) -> BytesN<32>
testutils
only.Install the contract WASM code to the Env for testing.
Returns the hash of the installed code that can be then used for the contract deployment.
Useful for contract factory testing, otherwise use
register_contract_wasm
function that installs and deploys the contract
in a single call.
Examples
use soroban_sdk::{BytesN, Env};
const WASM: &[u8] = include_bytes!("../doctest_fixtures/contract.wasm");
#[test]
fn test() {
let env = Env::default();
env.install_contract_wasm(WASM);
}
sourcepub fn as_contract<T>(&self, id: &Address, f: impl FnOnce() -> T) -> T
Available on crate feature testutils
only.
pub fn as_contract<T>(&self, id: &Address, f: impl FnOnce() -> T) -> T
testutils
only.Run the function as if executed by the given contract ID.
Used to write or read contract data, or take other actions in tests for setting up tests or asserting on internal state.
sourcepub fn from_snapshot(s: LedgerSnapshot) -> Env
Available on crate feature testutils
only.
pub fn from_snapshot(s: LedgerSnapshot) -> Env
testutils
only.Creates a new Env loaded with the LedgerSnapshot
.
The ledger info and state in the snapshot are loaded into the Env.
sourcepub fn from_snapshot_file(p: impl AsRef<Path>) -> Env
Available on crate feature testutils
only.
pub fn from_snapshot_file(p: impl AsRef<Path>) -> Env
testutils
only.Creates a new Env loaded with the ledger snapshot loaded from the file.
Panics
If there is any error reading the file.
sourcepub fn to_snapshot(&self) -> LedgerSnapshot
Available on crate feature testutils
only.
pub fn to_snapshot(&self) -> LedgerSnapshot
testutils
only.Create a snapshot from the Env’s current state.
sourcepub fn to_snapshot_file(&self, p: impl AsRef<Path>)
Available on crate feature testutils
only.
pub fn to_snapshot_file(&self, p: impl AsRef<Path>)
testutils
only.Trait Implementations§
source§impl TryFromVal<Env, &[u8]> for Bytes
impl TryFromVal<Env, &[u8]> for Bytes
type Error = ConversionError
fn try_from_val(env: &Env, v: &&[u8]) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &Address> for RawVal
impl TryFromVal<Env, &Address> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&Address) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &I256> for RawVal
impl TryFromVal<Env, &I256> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&I256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &Symbol> for RawVal
impl TryFromVal<Env, &Symbol> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&Symbol) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &U256> for RawVal
impl TryFromVal<Env, &U256> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&U256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &str> for Bytes
impl TryFromVal<Env, &str> for Bytes
type Error = ConversionError
fn try_from_val(env: &Env, v: &&str) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &str> for String
impl TryFromVal<Env, &str> for String
type Error = ConversionError
fn try_from_val(env: &Env, v: &&str) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &str> for Symbol
impl TryFromVal<Env, &str> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &&str) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ()> for Vec<RawVal>
impl TryFromVal<Env, ()> for Vec<RawVal>
type Error = ConversionError
fn try_from_val(env: &Env, _v: &()) -> Result<Self, Self::Error>
source§impl<T0> TryFromVal<Env, (T0,)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
impl<T0> TryFromVal<Env, (T0,)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, v: &(T0,)) -> Result<Self, Self::Error>
source§impl<T0, T1> TryFromVal<Env, (T0, T1)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
impl<T0, T1> TryFromVal<Env, (T0, T1)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, v: &(T0, T1)) -> Result<Self, Self::Error>
source§impl<T0, T1, T2> TryFromVal<Env, (T0, T1, T2)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
impl<T0, T1, T2> TryFromVal<Env, (T0, T1, T2)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, v: &(T0, T1, T2)) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3> TryFromVal<Env, (T0, T1, T2, T3)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3> TryFromVal<Env, (T0, T1, T2, T3)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, v: &(T0, T1, T2, T3)) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4> TryFromVal<Env, (T0, T1, T2, T3, T4)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4> TryFromVal<Env, (T0, T1, T2, T3, T4)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5> TryFromVal<Env, (T0, T1, T2, T3, T4, T5)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5> TryFromVal<Env, (T0, T1, T2, T3, T4, T5)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
T7: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>, T7: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6, T7) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
T7: IntoVal<Env, RawVal>,
T8: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>, T7: IntoVal<Env, RawVal>, T8: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6, T7, T8) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
T7: IntoVal<Env, RawVal>,
T8: IntoVal<Env, RawVal>,
T9: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>, T7: IntoVal<Env, RawVal>, T8: IntoVal<Env, RawVal>, T9: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
T7: IntoVal<Env, RawVal>,
T8: IntoVal<Env, RawVal>,
T9: IntoVal<Env, RawVal>,
T10: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>, T7: IntoVal<Env, RawVal>, T8: IntoVal<Env, RawVal>, T9: IntoVal<Env, RawVal>, T10: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
T7: IntoVal<Env, RawVal>,
T8: IntoVal<Env, RawVal>,
T9: IntoVal<Env, RawVal>,
T10: IntoVal<Env, RawVal>,
T11: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>, T7: IntoVal<Env, RawVal>, T8: IntoVal<Env, RawVal>, T9: IntoVal<Env, RawVal>, T10: IntoVal<Env, RawVal>, T11: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) ) -> Result<Self, Self::Error>
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for Vec<RawVal>where
T0: IntoVal<Env, RawVal>,
T1: IntoVal<Env, RawVal>,
T2: IntoVal<Env, RawVal>,
T3: IntoVal<Env, RawVal>,
T4: IntoVal<Env, RawVal>,
T5: IntoVal<Env, RawVal>,
T6: IntoVal<Env, RawVal>,
T7: IntoVal<Env, RawVal>,
T8: IntoVal<Env, RawVal>,
T9: IntoVal<Env, RawVal>,
T10: IntoVal<Env, RawVal>,
T11: IntoVal<Env, RawVal>,
T12: IntoVal<Env, RawVal>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> TryFromVal<Env, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for Vec<RawVal>where T0: IntoVal<Env, RawVal>, T1: IntoVal<Env, RawVal>, T2: IntoVal<Env, RawVal>, T3: IntoVal<Env, RawVal>, T4: IntoVal<Env, RawVal>, T5: IntoVal<Env, RawVal>, T6: IntoVal<Env, RawVal>, T7: IntoVal<Env, RawVal>, T8: IntoVal<Env, RawVal>, T9: IntoVal<Env, RawVal>, T10: IntoVal<Env, RawVal>, T11: IntoVal<Env, RawVal>, T12: IntoVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val( env: &Env, v: &(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) ) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Address> for RawVal
impl TryFromVal<Env, Address> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &Address) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, AddressObject> for Address
impl TryFromVal<Env, AddressObject> for Address
type Error = Infallible
fn try_from_val(env: &Env, val: &AddressObject) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Bytes> for Bytes
impl TryFromVal<Env, Bytes> for Bytes
type Error = ConversionError
fn try_from_val(_env: &Env, v: &Bytes) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Bytes> for RawVal
impl TryFromVal<Env, Bytes> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &Bytes) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, BytesN<N>> for [u8; N]
impl<const N: usize> TryFromVal<Env, BytesN<N>> for [u8; N]
type Error = ConversionError
fn try_from_val(_env: &Env, v: &BytesN<N>) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, BytesN<N>> for Bytes
impl<const N: usize> TryFromVal<Env, BytesN<N>> for Bytes
type Error = ConversionError
fn try_from_val(_env: &Env, v: &BytesN<N>) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, BytesN<N>> for BytesN<N>
impl<const N: usize> TryFromVal<Env, BytesN<N>> for BytesN<N>
type Error = ConversionError
fn try_from_val(_env: &Env, v: &BytesN<N>) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, BytesN<N>> for RawVal
impl<const N: usize> TryFromVal<Env, BytesN<N>> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &BytesN<N>) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, BytesObject> for Bytes
impl TryFromVal<Env, BytesObject> for Bytes
type Error = Infallible
fn try_from_val(env: &Env, val: &BytesObject) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, BytesObject> for BytesN<N>
impl<const N: usize> TryFromVal<Env, BytesObject> for BytesN<N>
type Error = ConversionError
fn try_from_val(env: &Env, obj: &BytesObject) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Context> for RawVal
impl TryFromVal<Env, Context> for RawVal
type Error = ConversionError
fn try_from_val(env: &Env, val: &Context) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, I256> for RawVal
impl TryFromVal<Env, I256> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &I256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, I256Val> for I256
impl TryFromVal<Env, I256Val> for I256
type Error = Infallible
fn try_from_val(env: &Env, val: &I256Val) -> Result<Self, Self::Error>
source§impl<K, V> TryFromVal<Env, Map<K, V>> for RawValwhere
K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<K, V> TryFromVal<Env, Map<K, V>> for RawValwhere K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>, V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = Infallible
fn try_from_val(_env: &Env, v: &Map<K, V>) -> Result<Self, Self::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<K, V> TryFromVal<Env, MapObject> for Map<K, V>where
K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<K, V> TryFromVal<Env, MapObject> for Map<K, V>where K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>, V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = Infallible
fn try_from_val(env: &Env, obj: &MapObject) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for Address
impl TryFromVal<Env, RawVal> for Address
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for Bytes
impl TryFromVal<Env, RawVal> for Bytes
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl<const N: usize> TryFromVal<Env, RawVal> for BytesN<N>
impl<const N: usize> TryFromVal<Env, RawVal> for BytesN<N>
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for Context
impl TryFromVal<Env, RawVal> for Context
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for I256
impl TryFromVal<Env, RawVal> for I256
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl<K, V> TryFromVal<Env, RawVal> for Map<K, V>where
K: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
V: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<K, V> TryFromVal<Env, RawVal> 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: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for String
impl TryFromVal<Env, RawVal> for String
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for Symbol
impl TryFromVal<Env, RawVal> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, RawVal> for U256
impl TryFromVal<Env, RawVal> for U256
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl<T> TryFromVal<Env, RawVal> for Vec<T>where
T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<T> TryFromVal<Env, RawVal> for Vec<T>where T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, val: &RawVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScAddress> for Address
impl TryFromVal<Env, ScAddress> for Address
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScAddress) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScSymbol> for Symbol
impl TryFromVal<Env, ScSymbol> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScSymbol) -> 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<T> TryFromVal<Env, ScVec> for Vec<T>where
T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<T> TryFromVal<Env, ScVec> for Vec<T>where T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVec) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, String> for RawVal
impl TryFromVal<Env, String> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &String) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, String> for String
impl TryFromVal<Env, String> for String
type Error = ConversionError
fn try_from_val(_env: &Env, v: &String) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, StringObject> for String
impl TryFromVal<Env, StringObject> for String
type Error = Infallible
fn try_from_val(env: &Env, val: &StringObject) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Symbol> for RawVal
impl TryFromVal<Env, Symbol> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &Symbol) -> 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>
source§impl TryFromVal<Env, Symbol> for Symbol
impl TryFromVal<Env, Symbol> for Symbol
type Error = Infallible
fn try_from_val(env: &Env, val: &SymbolVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, U256> for RawVal
impl TryFromVal<Env, U256> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &U256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, U256Val> for U256
impl TryFromVal<Env, U256Val> for U256
type Error = Infallible
fn try_from_val(env: &Env, val: &U256Val) -> Result<Self, Self::Error>
source§impl<T> TryFromVal<Env, Vec<T>> for RawVal
impl<T> TryFromVal<Env, Vec<T>> for RawVal
type Error = ConversionError
fn try_from_val(_env: &Env, v: &Vec<T>) -> Result<Self, Self::Error>
source§impl<T> TryFromVal<Env, Vec<T>> for Vec<RawVal>
impl<T> TryFromVal<Env, Vec<T>> for Vec<RawVal>
type Error = Infallible
fn try_from_val(env: &Env, v: &Vec<T>) -> Result<Self, Self::Error>
source§impl<T> TryFromVal<Env, VecObject> for Vec<T>where
T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
impl<T> TryFromVal<Env, VecObject> for Vec<T>where T: IntoVal<Env, RawVal> + TryFromVal<Env, RawVal>,
type Error = Infallible
fn try_from_val(env: &Env, obj: &VecObject) -> Result<Self, Self::Error>
Auto Trait Implementations§
impl !RefUnwindSafe for Env
impl !Send for Env
impl !Sync for Env
impl Unpin for Env
impl !UnwindSafe for Env
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
§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<E> Compare<AddressObject> for Ewhere
E: Env,
impl<E> Compare<AddressObject> for Ewhere E: Env,
§impl<E> Compare<Bool> for Ewhere
E: Env,
impl<E> Compare<Bool> for Ewhere E: Env,
§impl<E> Compare<BytesObject> for Ewhere
E: Env,
impl<E> Compare<BytesObject> for Ewhere E: Env,
§impl<E> Compare<ContractExecutableObject> for Ewhere
E: Env,
impl<E> Compare<ContractExecutableObject> for Ewhere E: Env,
§impl<E> Compare<DurationObject> for Ewhere
E: Env,
impl<E> Compare<DurationObject> for Ewhere E: Env,
§impl<E> Compare<DurationSmall> for Ewhere
E: Env,
impl<E> Compare<DurationSmall> for Ewhere E: Env,
§impl<E> Compare<I128Object> for Ewhere
E: Env,
impl<E> Compare<I128Object> for Ewhere E: Env,
§impl<E> Compare<I128Small> for Ewhere
E: Env,
impl<E> Compare<I128Small> for Ewhere E: Env,
§impl<E> Compare<I256Object> for Ewhere
E: Env,
impl<E> Compare<I256Object> for Ewhere E: Env,
§impl<E> Compare<I256Small> for Ewhere
E: Env,
impl<E> Compare<I256Small> for Ewhere E: Env,
§impl<E> Compare<I32Val> for Ewhere
E: Env,
impl<E> Compare<I32Val> for Ewhere E: Env,
§impl<E> Compare<I64Object> for Ewhere
E: Env,
impl<E> Compare<I64Object> for Ewhere E: Env,
§impl<E> Compare<I64Small> for Ewhere
E: Env,
impl<E> Compare<I64Small> for Ewhere E: Env,
§impl<E> Compare<LedgerKeyNonceObject> for Ewhere
E: Env,
impl<E> Compare<LedgerKeyNonceObject> for Ewhere E: Env,
§impl<E> Compare<MapObject> for Ewhere
E: Env,
impl<E> Compare<MapObject> for Ewhere E: Env,
§impl<E> Compare<Object> for Ewhere
E: Env,
impl<E> Compare<Object> for Ewhere E: Env,
§impl<E> Compare<Status> for Ewhere
E: Env,
impl<E> Compare<Status> for Ewhere E: Env,
§impl<E> Compare<StringObject> for Ewhere
E: Env,
impl<E> Compare<StringObject> for Ewhere E: Env,
§impl<E> Compare<Symbol> for Ewhere
E: Env,
impl<E> Compare<Symbol> for Ewhere E: Env,
§impl<E> Compare<SymbolObject> for Ewhere
E: Env,
impl<E> Compare<SymbolObject> for Ewhere E: Env,
§impl<E> Compare<SymbolSmall> for Ewhere
E: Env,
impl<E> Compare<SymbolSmall> for Ewhere E: Env,
§impl<E> Compare<TimepointObject> for Ewhere
E: Env,
impl<E> Compare<TimepointObject> for Ewhere E: Env,
§impl<E> Compare<TimepointSmall> for Ewhere
E: Env,
impl<E> Compare<TimepointSmall> for Ewhere E: Env,
§impl<E> Compare<U128Object> for Ewhere
E: Env,
impl<E> Compare<U128Object> for Ewhere E: Env,
§impl<E> Compare<U128Small> for Ewhere
E: Env,
impl<E> Compare<U128Small> for Ewhere E: Env,
§impl<E> Compare<U256Object> for Ewhere
E: Env,
impl<E> Compare<U256Object> for Ewhere E: Env,
§impl<E> Compare<U256Small> for Ewhere
E: Env,
impl<E> Compare<U256Small> for Ewhere E: Env,
§impl<E> Compare<U32Val> for Ewhere
E: Env,
impl<E> Compare<U32Val> for Ewhere E: Env,
§impl<E> Compare<U64Object> for Ewhere
E: Env,
impl<E> Compare<U64Object> for Ewhere E: Env,
§impl<E> Compare<U64Small> for Ewhere
E: Env,
impl<E> Compare<U64Small> for Ewhere E: Env,
§impl<E> Compare<VecObject> for Ewhere
E: Env,
impl<E> Compare<VecObject> for Ewhere E: Env,
§impl<E> Compare<Void> for Ewhere
E: Env,
impl<E> Compare<Void> for Ewhere E: Env,
§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>
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>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.