pub struct InvokeHostFunctionRecordingModeResult {
pub invoke_result: Result<ScVal, HostError>,
pub resources: SorobanResources,
pub restored_rw_entry_indices: Vec<u32>,
pub auth: Vec<SorobanAuthorizationEntry>,
pub ledger_changes: Vec<LedgerEntryChange>,
pub contract_events: Vec<ContractEvent>,
pub contract_events_and_return_value_size: u32,
}Expand description
Result of invoking a single host function prepared for embedder consumption.
Fields§
§invoke_result: Result<ScVal, HostError>Result value of the invoked function or error returned for invocation.
resources: SorobanResourcesResources recorded during the invocation, including the footprint.
restored_rw_entry_indices: Vec<u32>Indices of the entries in read-write footprint that are to be auto-restored when transaction is executed.
Specifically, these are indices of ledger entry keys in
resources.footprint.read_write vector. Thus additional care should
be taken if the read-write footprint is re-arranged in any way (that
shouldn’t normally be necessary though).
auth: Vec<SorobanAuthorizationEntry>Authorization data, either passed through from the call (when provided), or recorded during the invocation.
ledger_changes: Vec<LedgerEntryChange>All the ledger changes caused by this invocation, including no-ops.
Read-only entry can only have their live until ledger increased. Read-write entries can be modified arbitrarily or removed.
Empty when invocation fails.
contract_events: Vec<ContractEvent>All the events that contracts emitted during invocation.
Empty when invocation fails.
contract_events_and_return_value_size: u32Size of the encoded contract events and the return value. Non-zero only when invocation has succeeded.
Auto Trait Implementations§
impl Freeze for InvokeHostFunctionRecordingModeResult
impl RefUnwindSafe for InvokeHostFunctionRecordingModeResult
impl Send for InvokeHostFunctionRecordingModeResult
impl Sync for InvokeHostFunctionRecordingModeResult
impl Unpin for InvokeHostFunctionRecordingModeResult
impl UnwindSafe for InvokeHostFunctionRecordingModeResult
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
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>
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>
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)
&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)
&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<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>
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>
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