pub struct UnimplementedEnv;
Expand description

A dummy implementation of the Env trait that fails with unimplemented!() in all functions. Useful for certain testing scenarios.

Trait Implementations§

source§

impl Clone for UnimplementedEnv

source§

fn clone(&self) -> UnimplementedEnv

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for UnimplementedEnv

source§

fn default() -> UnimplementedEnv

Returns the “default value” for a type. Read more
source§

impl Env for UnimplementedEnv

source§

fn log_value( &self, _: RawVal ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

This one variant of logging does not take a format string and is live in both Env=Guest and Env=Host configurations.
source§

fn get_invoking_contract( &self ) -> Result<Object, <UnimplementedEnv as EnvBase>::Error>

Get the contractID Bytes of the contract which invoked the running contract. Traps if the running contract was not invoked by a contract.
source§

fn obj_cmp( &self, _: RawVal, _: RawVal ) -> Result<i64, <UnimplementedEnv as EnvBase>::Error>

Compare two objects, or at least one object to a non-object, structurally. Returns -1 if a<b, 1 if a>b, or 0 if a==b.
source§

fn contract_event( &self, _: VecObject, _: RawVal ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Records a contract event. topics is expected to be a SCVec with length <= 4 that cannot contain Vec, Map, or Bytes with length > 32 On success, returns an SCStatus::Ok.
source§

fn get_current_contract_id( &self ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Gets the 32-byte identifer of the current contract. Traps if the running contract was not invoked by a contract.
source§

fn get_ledger_version( &self ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Return the protocol version of the current ledger as a u32.
source§

fn get_ledger_sequence( &self ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Return the sequence number of the current ledger as a u32.
source§

fn get_ledger_timestamp( &self ) -> Result<U64Val, <UnimplementedEnv as EnvBase>::Error>

Return the timestamp number of the current ledger as a u64.
source§

fn get_current_call_stack( &self ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Returns the full call stack from the first contract call to the current one as a vector of vectors, where the inside vector contains the contract id as Hash, and a function as a Symbol.
source§

fn fail_with_status( &self, _: Status ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Causes the currently executing contract to fail immediately with a provided status code, which must be of error-type ScStatusType::ContractError. Does not actually return.
source§

fn log_fmt_values( &self, _: StringObject, _: VecObject ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Record a debug event. Fmt must be a Bytes. Args must be a Vec. Void is returned.
source§

fn get_ledger_network_id( &self ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Return the network id (sha256 hash of network passphrase) of the current ledger as Bytes. The value is always 32 bytes in length.
source§

fn get_current_contract_address( &self ) -> Result<AddressObject, <UnimplementedEnv as EnvBase>::Error>

Get the Address object for the current contract.
source§

fn obj_from_u64( &self, _: u64 ) -> Result<U64Object, <UnimplementedEnv as EnvBase>::Error>

Convert a u64 to an object containing a u64.
source§

fn obj_to_u64( &self, _: U64Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Convert an object containing a i64 to a u64.
source§

fn obj_from_i64( &self, _: i64 ) -> Result<I64Object, <UnimplementedEnv as EnvBase>::Error>

Convert an i64 to an object containing an i64.
source§

fn obj_to_i64( &self, _: I64Object ) -> Result<i64, <UnimplementedEnv as EnvBase>::Error>

Convert an object containing an i64 to an i64.
source§

fn obj_from_u128_pieces( &self, _: u64, _: u64 ) -> Result<U128Object, <UnimplementedEnv as EnvBase>::Error>

Convert the high and low 64-bit words of a u128 to an object containing a u128.
source§

fn obj_to_u128_lo64( &self, _: U128Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract the low 64 bits from an object containing a u128.
source§

fn obj_to_u128_hi64( &self, _: U128Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract the high 64 bits from an object containing a u128.
source§

fn obj_from_i128_pieces( &self, _: i64, _: u64 ) -> Result<I128Object, <UnimplementedEnv as EnvBase>::Error>

Convert the high and low 64-bit words of an i128 to an object containing an i128.
source§

fn obj_to_i128_lo64( &self, _: I128Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract the low 64 bits from an object containing an i128.
source§

fn obj_to_i128_hi64( &self, _: I128Object ) -> Result<i64, <UnimplementedEnv as EnvBase>::Error>

Extract the high 64 bits from an object containing an i128.
source§

fn obj_from_u256_pieces( &self, _: u64, _: u64, _: u64, _: u64 ) -> Result<U256Object, <UnimplementedEnv as EnvBase>::Error>

Convert the four 64-bit words of an u256 (big-endian) to an object containing an u256.
source§

fn obj_to_u256_hi_hi( &self, _: U256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract the highest 64-bits (bits 192-255) from an object containing an u256.
source§

fn obj_to_u256_hi_lo( &self, _: U256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract bits 128-191 from an object containing an u256.
source§

fn obj_to_u256_lo_hi( &self, _: U256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract bits 64-127 from an object containing an u256.
source§

fn obj_to_u256_lo_lo( &self, _: U256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract the lowest 64-bits (bits 0-63) from an object containing an u256.
source§

fn obj_from_i256_pieces( &self, _: i64, _: u64, _: u64, _: u64 ) -> Result<I256Object, <UnimplementedEnv as EnvBase>::Error>

Convert the four 64-bit words of an i256 (big-endian) to an object containing an i256.
source§

fn obj_to_i256_hi_hi( &self, _: I256Object ) -> Result<i64, <UnimplementedEnv as EnvBase>::Error>

Extract the highest 64-bits (bits 192-255) from an object containing an i256.
source§

fn obj_to_i256_hi_lo( &self, _: I256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract bits 128-191 from an object containing an i256.
source§

fn obj_to_i256_lo_hi( &self, _: I256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract bits 64-127 from an object containing an i256.
source§

fn obj_to_i256_lo_lo( &self, _: I256Object ) -> Result<u64, <UnimplementedEnv as EnvBase>::Error>

Extract the lowest 64-bits (bits 0-63) from an object containing an i256.
source§

fn map_new(&self) -> Result<MapObject, <UnimplementedEnv as EnvBase>::Error>

Create an empty new map.
source§

fn map_put( &self, _: MapObject, _: RawVal, _: RawVal ) -> Result<MapObject, <UnimplementedEnv as EnvBase>::Error>

Insert a key/value mapping into an existing map, and return the map object handle. If the map already has a mapping for the given key, the previous value is overwritten.
source§

fn map_get( &self, _: MapObject, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Get the value for a key from a map. Traps if key is not found.
source§

fn map_del( &self, _: MapObject, _: RawVal ) -> Result<MapObject, <UnimplementedEnv as EnvBase>::Error>

Remove a key/value mapping from a map if it exists, traps if doesn’t.
source§

fn map_len( &self, _: MapObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Get the size of a map.
source§

fn map_has( &self, _: MapObject, _: RawVal ) -> Result<Bool, <UnimplementedEnv as EnvBase>::Error>

Test for the presence of a key in a map. Returns Bool.
source§

fn map_prev_key( &self, _: MapObject, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Given a key, find the first key less than itself in the map’s sorted order. If such a key does not exist, return an SCStatus containing the error code (TBD).
source§

fn map_next_key( &self, _: MapObject, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Given a key, find the first key greater than itself in the map’s sorted order. If such a key does not exist, return an SCStatus containing the error code (TBD).
source§

fn map_min_key( &self, _: MapObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Find the minimum key from a map. If the map is empty, return an SCStatus containing the error code (TBD).
source§

fn map_max_key( &self, _: MapObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Find the maximum key from a map. If the map is empty, return an SCStatus containing the error code (TBD).
source§

fn map_keys( &self, _: MapObject ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Return a new vector containing all the keys in a map. The new vector is ordered in the original map’s key-sorted order.
source§

fn map_values( &self, _: MapObject ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Return a new vector containing all the values in a map. The new vector is ordered in the original map’s key-sorted order.
source§

fn map_new_from_linear_memory( &self, _: U32Val, _: U32Val, _: U32Val ) -> Result<MapObject, <UnimplementedEnv as EnvBase>::Error>

Return a new map initialized from a set of input slices given by linear-memory addresses and lengths.
source§

fn map_unpack_to_linear_memory( &self, _: MapObject, _: U32Val, _: U32Val, _: U32Val ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Copy the RawVal values of a map, as described by set of input keys, into an array at a given linear-memory address.
source§

fn vec_new( &self, _: RawVal ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Creates a new vector with an optional capacity hint c. If c is ScStatic::Void, no hint is assumed and the new vector is empty. Otherwise, c is parsed as an u32 that represents the initial capacity of the new vector.
source§

fn vec_put( &self, _: VecObject, _: U32Val, _: RawVal ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Update the value at index i in the vector. Return the new vector. Trap if the index is out of bounds.
source§

fn vec_get( &self, _: VecObject, _: U32Val ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Returns the element at index i of the vector. Traps if the index is out of bound.
source§

fn vec_del( &self, _: VecObject, _: U32Val ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Delete an element in a vector at index i, shifting all elements after it to the left. Return the new vector. Traps if the index is out of bound.
source§

fn vec_len( &self, _: VecObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Returns length of the vector.
source§

fn vec_push_front( &self, _: VecObject, _: RawVal ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Push a value to the front of a vector.
source§

fn vec_pop_front( &self, _: VecObject ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Removes the first element from the vector and returns the new vector. Traps if original vector is empty.
source§

fn vec_push_back( &self, _: VecObject, _: RawVal ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Appends an element to the back of the vector.
source§

fn vec_pop_back( &self, _: VecObject ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Removes the last element from the vector and returns the new vector. Traps if original vector is empty.
source§

fn vec_front( &self, _: VecObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Return the first element in the vector. Traps if the vector is empty
source§

fn vec_back( &self, _: VecObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Return the last element in the vector. Traps if the vector is empty
source§

fn vec_insert( &self, _: VecObject, _: U32Val, _: RawVal ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Inserts an element at index i within the vector, shifting all elements after it to the right. Traps if the index is out of bound
source§

fn vec_append( &self, _: VecObject, _: VecObject ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Clone the vector v1, then moves all the elements of vector v2 into it. Return the new vector. Traps if number of elements in the vector overflows a u32.
source§

fn vec_slice( &self, _: VecObject, _: U32Val, _: U32Val ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Copy the elements from start index until end index, exclusive, in the vector and create a new vector from it. Return the new vector. Traps if the index is out of bound.
source§

fn vec_first_index_of( &self, _: VecObject, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Get the index of the first occurrence of a given element in the vector. Returns the u32 index of the value if it’s there. Otherwise, it returns ScStatic::Void.
source§

fn vec_last_index_of( &self, _: VecObject, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Get the index of the last occurrence of a given element in the vector. Returns the u32 index of the value if it’s there. Otherwise, it returns ScStatic::Void.
Binary search a sorted vector for a given element. If it exists, the high-32 bits of the return value is 0x0001 and the low-32 bits contain the u32 index of the element. If it does not exist, the high-32 bits of the return value is 0x0000 and the low-32 bits contain the u32 index at which the element would need to be inserted into the vector to maintain sorted order.
source§

fn vec_new_from_linear_memory( &self, _: U32Val, _: U32Val ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Return a new vec initialized from an input slice of RawVals given by a linear-memory address and length.
source§

fn vec_unpack_to_linear_memory( &self, _: VecObject, _: U32Val, _: U32Val ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Copy the RawVals of a vec into an array at a given linear-memory address.
source§

fn put_contract_data( &self, _: RawVal, _: RawVal ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

source§

fn has_contract_data( &self, _: RawVal ) -> Result<Bool, <UnimplementedEnv as EnvBase>::Error>

source§

fn get_contract_data( &self, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

source§

fn del_contract_data( &self, _: RawVal ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

source§

fn create_contract_from_contract( &self, _: BytesObject, _: BytesObject ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Deploys a contract from the current contract. wasm_hash must be a hash of the contract code that has already been installed on this network. salt is used to create a unique contract id.
source§

fn put_tmp_contract_data( &self, _: RawVal, _: RawVal ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

source§

fn has_tmp_contract_data( &self, _: RawVal ) -> Result<Bool, <UnimplementedEnv as EnvBase>::Error>

source§

fn get_tmp_contract_data( &self, _: RawVal ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

source§

fn del_tmp_contract_data( &self, _: RawVal ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

source§

fn update_current_contract_wasm( &self, _: BytesObject ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Replaces the executable of the current contract with the provided Wasm code identified by a hash. Wasm entry corresponding to the hash has to already be present in the ledger. The update happens only after the current contract invocation has successfully finished, so this can be safely called in the middle of a function.
source§

fn call( &self, _: BytesObject, _: Symbol, _: VecObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Calls a function in another contract with arguments contained in vector args. If the call is successful, forwards the result of the called function. Traps otherwise.
source§

fn try_call( &self, _: BytesObject, _: Symbol, _: VecObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Calls a function in another contract with arguments contained in vector args. Returns: - if successful, result of the called function. - otherwise, an SCStatus containing the error status code.
source§

fn serialize_to_bytes( &self, _: RawVal ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Serializes an (SC)Val into XDR opaque Bytes object.
source§

fn deserialize_from_bytes( &self, _: BytesObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Deserialize a Bytes object to get back the (SC)Val.
source§

fn bytes_copy_to_linear_memory( &self, _: BytesObject, _: U32Val, _: U32Val, _: U32Val ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Copies a slice of bytes from a Bytes object specified at offset b_pos with length len into the linear memory at position lm_pos. Traps if either the Bytes object or the linear memory doesn’t have enough bytes.
source§

fn bytes_copy_from_linear_memory( &self, _: BytesObject, _: U32Val, _: U32Val, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Copies a segment of the linear memory specified at position lm_pos with length len, into a Bytes object at offset b_pos. The Bytes object may grow in size to accommodate the new bytes. Traps if the linear memory doesn’t have enough bytes.
source§

fn bytes_new_from_linear_memory( &self, _: U32Val, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Constructs a new Bytes object initialized with bytes copied from a linear memory slice specified at position lm_pos with length len.
source§

fn bytes_new(&self) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Create an empty new Bytes object.
source§

fn bytes_put( &self, _: BytesObject, _: U32Val, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Update the value at index i in the Bytes object. Return the new Bytes. Trap if the index is out of bounds.
source§

fn bytes_get( &self, _: BytesObject, _: U32Val ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Returns the element at index i of the Bytes object. Traps if the index is out of bound.
source§

fn bytes_del( &self, _: BytesObject, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Delete an element in a Bytes object at index i, shifting all elements after it to the left. Return the new Bytes. Traps if the index is out of bound.
source§

fn bytes_len( &self, _: BytesObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Returns length of the Bytes object.
source§

fn bytes_push( &self, _: BytesObject, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Appends an element to the back of the Bytes object.
source§

fn bytes_pop( &self, _: BytesObject ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Removes the last element from the Bytes object and returns the new Bytes. Traps if original Bytes is empty.
source§

fn bytes_front( &self, _: BytesObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Return the first element in the Bytes object. Traps if the Bytes is empty
source§

fn bytes_back( &self, _: BytesObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Return the last element in the Bytes object. Traps if the Bytes is empty
source§

fn bytes_insert( &self, _: BytesObject, _: U32Val, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Inserts an element at index i within the Bytes object, shifting all elements after it to the right. Traps if the index is out of bound
source§

fn bytes_append( &self, _: BytesObject, _: BytesObject ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Clone the Bytes object b1, then moves all the elements of Bytes object b2 into it. Return the new Bytes. Traps if its length overflows a u32.
source§

fn bytes_slice( &self, _: BytesObject, _: U32Val, _: U32Val ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Copies the elements from start index until end index, exclusive, in the Bytes object and creates a new Bytes from it. Returns the new Bytes. Traps if the index is out of bound.
source§

fn string_copy_to_linear_memory( &self, _: StringObject, _: U32Val, _: U32Val, _: U32Val ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Copies a slice of bytes from a String object specified at offset s_pos with length len into the linear memory at position lm_pos. Traps if either the String object or the linear memory doesn’t have enough bytes.
source§

fn symbol_copy_to_linear_memory( &self, _: SymbolObject, _: U32Val, _: U32Val, _: U32Val ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Copies a slice of bytes from a Symbol object specified at offset s_pos with length len into the linear memory at position lm_pos. Traps if either the String object or the linear memory doesn’t have enough bytes.
source§

fn string_new_from_linear_memory( &self, _: U32Val, _: U32Val ) -> Result<StringObject, <UnimplementedEnv as EnvBase>::Error>

Constructs a new String object initialized with bytes copied from a linear memory slice specified at position lm_pos with length len.
source§

fn symbol_new_from_linear_memory( &self, _: U32Val, _: U32Val ) -> Result<SymbolObject, <UnimplementedEnv as EnvBase>::Error>

Constructs a new Symbol object initialized with bytes copied from a linear memory slice specified at position lm_pos with length len.
source§

fn string_len( &self, _: StringObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Returns length of the String object.
source§

fn symbol_len( &self, _: SymbolObject ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Returns length of the Symbol object.
source§

fn symbol_index_in_linear_memory( &self, _: Symbol, _: U32Val, _: U32Val ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Return the index of a Symbol in an array of linear-memory byte-slices, or trap if not found.
source§

fn compute_hash_sha256( &self, _: BytesObject ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

source§

fn verify_sig_ed25519( &self, _: BytesObject, _: BytesObject, _: BytesObject ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

source§

fn require_auth_for_args( &self, _: AddressObject, _: VecObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Checks if the address has authorized the invocation of the current contract function with the provided arguments. Traps if the invocation hasn’t been authorized.
source§

fn require_auth( &self, _: AddressObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Checks if the address has authorized the invocation of the current contract function with all the arguments of the invocation. Traps if the invocation hasn’t been authorized.
source§

fn account_public_key_to_address( &self, _: BytesObject ) -> Result<AddressObject, <UnimplementedEnv as EnvBase>::Error>

Converts a provided 32-byte Stellar account public key to the corresponding address. This is only useful in the context of cross-chain interoperability. Prefer directly using the Address objects whenever possible.
source§

fn contract_id_to_address( &self, _: BytesObject ) -> Result<AddressObject, <UnimplementedEnv as EnvBase>::Error>

Converts a provided 32-byte contract identifier to a corresponding Address object.
source§

fn address_to_account_public_key( &self, _: AddressObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Returns the 32-byte public key of the Stellar account corresponding to the provided Address object. If the Address doesn’t belong to an account, returns RawVal corresponding to the unit type (()).
source§

fn address_to_contract_id( &self, _: AddressObject ) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

Returns the 32-byte contract identifier corresponding to the provided Address object. If the Address doesn’t belong to an account, returns RawVal corresponding to the unit type (()).
source§

fn dummy0(&self) -> Result<RawVal, <UnimplementedEnv as EnvBase>::Error>

A dummy function taking 0 arguments and performs no-op. This function is for test purpose only, for measuring the roundtrip cost of invoking a host function, i.e. host->Vm->host.
source§

impl EnvBase for UnimplementedEnv

§

type Error = Infallible

The type of error returned from the environment when the environment itself fails “unrecoverably”, or at least in a way that the user is not expected to be able to recover from, such as an internal logic error, exceeding the execution budget, or being passed malformed input in a way that the user-facing API does not anticipate or allow for. This type is returned from all environment-interface methods, and will only ever take on two possible concrete types: either Infallible (in the Guest) or HostError (in the Host). Read more
source§

fn escalate_error_to_panic(&self, _e: <UnimplementedEnv as EnvBase>::Error) -> !

Reject an error from the environment, turning it into a panic but on terms that the environment controls (eg. transforming or logging it). This should only ever be called by client-side / SDK local-testing code, never in the Host.
source§

fn as_mut_any(&mut self) -> &mut (dyn Any + 'static)

Used for recovering the concrete type of the Host.
source§

fn check_same_env(&self, _other: &UnimplementedEnv)

Used to check two environments are the same, trapping if not.
source§

fn deep_clone(&self) -> UnimplementedEnv

Used to clone an environment deeply, not just a handle to it.
source§

fn bytes_copy_from_slice( &self, _b: BytesObject, _b_pos: U32Val, _slice: &[u8] ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Clone an existing Bytes object in the host, replacing the portion of its memory with bytes supplied by slice, returning the new object. The replaced portion of the original object’s memory begins at b_pos and extends for the same length as the new slice.
source§

fn bytes_copy_to_slice( &self, _b: BytesObject, _b_pos: U32Val, _slice: &mut [u8] ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Copy a slice of bytes from a Bytes object in the host into a slice in the caller’s memory.
source§

fn string_copy_to_slice( &self, _b: StringObject, _b_pos: U32Val, _slice: &mut [u8] ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Copy a slice of bytes from a String object in the host into a slice in the caller’s memory.
source§

fn symbol_copy_to_slice( &self, _b: SymbolObject, _b_pos: U32Val, _slice: &mut [u8] ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Copy a slice of bytes from a Symbol object in the host into the caller’s memory.
source§

fn bytes_new_from_slice( &self, _slice: &[u8] ) -> Result<BytesObject, <UnimplementedEnv as EnvBase>::Error>

Form a new Bytes host object from a slice of client memory.
source§

fn string_new_from_slice( &self, _s: &str ) -> Result<StringObject, <UnimplementedEnv as EnvBase>::Error>

Form a new String host object from a slice of client memory.
source§

fn symbol_new_from_slice( &self, _s: &str ) -> Result<SymbolObject, <UnimplementedEnv as EnvBase>::Error>

Form a new Symbol host object from a slice of client memory.
source§

fn map_new_from_slices( &self, _keys: &[&str], _vals: &[RawVal] ) -> Result<MapObject, <UnimplementedEnv as EnvBase>::Error>

Form a new Map host object from a slice of symbol-names and a slice of values. Keys must be in sorted order.
source§

fn map_unpack_to_slice( &self, _map: MapObject, _keys: &[&str], _vals: &mut [RawVal] ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Unpack a Map host object with a specified set of keys to a slice of RawVals. Keys must be in sorted order and must match the key set of the unpacked object exactly.
source§

fn vec_new_from_slice( &self, _vals: &[RawVal] ) -> Result<VecObject, <UnimplementedEnv as EnvBase>::Error>

Form a new Vec host object from a slice of values.
source§

fn vec_unpack_to_slice( &self, _vec: VecObject, _vals: &mut [RawVal] ) -> Result<Void, <UnimplementedEnv as EnvBase>::Error>

Form a new Vec host object from a slice of values. The values slice must be the same length as the host object.
source§

fn symbol_index_in_strs( &self, _key: Symbol, _strs: &[&str] ) -> Result<U32Val, <UnimplementedEnv as EnvBase>::Error>

Return the index of a Symbol in an array of &strs, or error if not found.
source§

fn log_static_fmt_val( &self, _fmt: &'static str, _v: RawVal ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and a single RawVal argument that will be inserted at the marker in the format string.
source§

fn log_static_fmt_static_str( &self, _fmt: &'static str, _s: &'static str ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and a single string-slice argument that will be inserted at the marker in the format string.
source§

fn log_static_fmt_val_static_str( &self, _fmt: &'static str, _v: RawVal, _s: &'static str ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and both a RawVal and a string-slice argument, that will each be inserted at markers in the format string.
source§

fn log_static_fmt_general( &self, _fmt: &'static str, _vals: &[RawVal], _strs: &[&'static str] ) -> Result<(), <UnimplementedEnv as EnvBase>::Error>

Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and both a slice of RawVals and a slice of string-slice argument, that will be sequentially inserted at markers in the format string.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, C> Compare<&T> for Cwhere C: Compare<T>,

§

type Error = <C as Compare<T>>::Error

source§

fn compare(&self, a: &&T, b: &&T) -> Result<Ordering, <C as Compare<&T>>::Error>

source§

impl<T, U, E, C> Compare<(T, U)> for Cwhere C: Compare<T, Error = E, Error = E> + Compare<U>,

§

type Error = E

source§

fn compare( &self, a: &(T, U), b: &(T, U) ) -> Result<Ordering, <C as Compare<(T, U)>>::Error>

source§

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>,

§

type Error = E

source§

fn compare( &self, a: &(T, U, V), b: &(T, U, V) ) -> Result<Ordering, <C as Compare<(T, U, V)>>::Error>

source§

impl<E> Compare<AddressObject> for Ewhere E: Env,

source§

impl<E> Compare<Bool> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &Bool, b: &Bool ) -> Result<Ordering, <E as Compare<Bool>>::Error>

source§

impl<T, C> Compare<Box<T, Global>> for Cwhere C: Compare<T>,

§

type Error = <C as Compare<T>>::Error

source§

fn compare( &self, a: &Box<T, Global>, b: &Box<T, Global> ) -> Result<Ordering, <C as Compare<Box<T, Global>>>::Error>

source§

impl<E> Compare<BytesObject> for Ewhere E: Env,

source§

impl<E> Compare<ContractExecutableObject> for Ewhere E: Env,

source§

impl<E> Compare<DurationObject> for Ewhere E: Env,

source§

impl<E> Compare<DurationSmall> for Ewhere E: Env,

source§

impl<E> Compare<I128Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I128Object, b: &I128Object ) -> Result<Ordering, <E as Compare<I128Object>>::Error>

source§

impl<E> Compare<I128Small> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I128Small, b: &I128Small ) -> Result<Ordering, <E as Compare<I128Small>>::Error>

source§

impl<E> Compare<I256Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I256Object, b: &I256Object ) -> Result<Ordering, <E as Compare<I256Object>>::Error>

source§

impl<E> Compare<I256Small> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I256Small, b: &I256Small ) -> Result<Ordering, <E as Compare<I256Small>>::Error>

source§

impl<E> Compare<I32Val> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I32Val, b: &I32Val ) -> Result<Ordering, <E as Compare<I32Val>>::Error>

source§

impl<E> Compare<I64Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I64Object, b: &I64Object ) -> Result<Ordering, <E as Compare<I64Object>>::Error>

source§

impl<E> Compare<I64Small> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &I64Small, b: &I64Small ) -> Result<Ordering, <E as Compare<I64Small>>::Error>

source§

impl<E> Compare<LedgerKeyNonceObject> for Ewhere E: Env,

source§

impl<E> Compare<MapObject> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &MapObject, b: &MapObject ) -> Result<Ordering, <E as Compare<MapObject>>::Error>

source§

impl<E> Compare<Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &Object, b: &Object ) -> Result<Ordering, <E as Compare<Object>>::Error>

source§

impl<T, C> Compare<Option<T>> for Cwhere C: Compare<T>,

§

type Error = <C as Compare<T>>::Error

source§

fn compare( &self, a: &Option<T>, b: &Option<T> ) -> Result<Ordering, <C as Compare<Option<T>>>::Error>

source§

impl<E> Compare<RawVal> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &RawVal, b: &RawVal ) -> Result<Ordering, <E as Compare<RawVal>>::Error>

source§

impl<T, C> Compare<Rc<T>> for Cwhere C: Compare<T>,

§

type Error = <C as Compare<T>>::Error

source§

fn compare( &self, a: &Rc<T>, b: &Rc<T> ) -> Result<Ordering, <C as Compare<Rc<T>>>::Error>

source§

impl<E> Compare<Status> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &Status, b: &Status ) -> Result<Ordering, <E as Compare<Status>>::Error>

source§

impl<E> Compare<StringObject> for Ewhere E: Env,

source§

impl<E> Compare<Symbol> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &Symbol, b: &Symbol ) -> Result<Ordering, <E as Compare<Symbol>>::Error>

source§

impl<E> Compare<SymbolObject> for Ewhere E: Env,

source§

impl<E> Compare<SymbolSmall> for Ewhere E: Env,

source§

impl<E> Compare<TimepointObject> for Ewhere E: Env,

source§

impl<E> Compare<TimepointSmall> for Ewhere E: Env,

source§

impl<E> Compare<U128Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U128Object, b: &U128Object ) -> Result<Ordering, <E as Compare<U128Object>>::Error>

source§

impl<E> Compare<U128Small> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U128Small, b: &U128Small ) -> Result<Ordering, <E as Compare<U128Small>>::Error>

source§

impl<E> Compare<U256Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U256Object, b: &U256Object ) -> Result<Ordering, <E as Compare<U256Object>>::Error>

source§

impl<E> Compare<U256Small> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U256Small, b: &U256Small ) -> Result<Ordering, <E as Compare<U256Small>>::Error>

source§

impl<E> Compare<U32Val> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U32Val, b: &U32Val ) -> Result<Ordering, <E as Compare<U32Val>>::Error>

source§

impl<E> Compare<U64Object> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U64Object, b: &U64Object ) -> Result<Ordering, <E as Compare<U64Object>>::Error>

source§

impl<E> Compare<U64Small> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &U64Small, b: &U64Small ) -> Result<Ordering, <E as Compare<U64Small>>::Error>

source§

impl<T, C> Compare<Vec<T, Global>> for Cwhere C: Compare<T>,

§

type Error = <C as Compare<T>>::Error

source§

fn compare( &self, a: &Vec<T, Global>, b: &Vec<T, Global> ) -> Result<Ordering, <C as Compare<Vec<T, Global>>>::Error>

source§

impl<E> Compare<VecObject> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, a: &VecObject, b: &VecObject ) -> Result<Ordering, <E as Compare<VecObject>>::Error>

source§

impl<E> Compare<Void> for Ewhere E: Env,

§

type Error = <E as EnvBase>::Error

source§

fn compare( &self, _a: &Void, _b: &Void ) -> Result<Ordering, <E as Compare<Void>>::Error>

§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, 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 + 'static>

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)

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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync + 'static>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<E, T, U> TryIntoVal<E, T> for Uwhere E: Env, T: TryFromVal<E, U>,

§

type Error = <T as TryFromVal<E, U>>::Error

source§

fn try_into_val(&self, env: &E) -> Result<T, <U as TryIntoVal<E, T>>::Error>

§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V