#[non_exhaustive]pub struct Outcome {
pub returns: VMLogicResult<Option<Vec<u8>>, FunctionCallError>,
pub logs: Vec<String>,
pub events: Vec<Event>,
pub root_hash: Option<[u8; 32]>,
pub artifact: Vec<u8>,
pub proposals: BTreeMap<[u8; 32], Vec<u8>>,
pub approvals: Vec<[u8; 32]>,
}Expand description
Represents the final outcome of a VM execution.
This struct aggregates all the results and side effects of function calls, such as the return value, logs, events, and state changes.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.returns: VMLogicResult<Option<Vec<u8>>, FunctionCallError>The result of the execution. Ok(Some(value)) for a successful return,
Ok(None) for no return, and Err for a trap or execution error.
logs: Vec<String>All log messages generated during the execution.
events: Vec<Event>All events emitted during the execution.
root_hash: Option<[u8; 32]>The new state root hash if there were commits during the execution.
artifact: Vec<u8>The binary artifact produced if there were commits during the execution.
proposals: BTreeMap<[u8; 32], Vec<u8>>A map of proposals created during execution, having proposal ID as a key.
approvals: Vec<[u8; 32]>A list of approvals submitted during execution.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Outcome
impl !RefUnwindSafe for Outcome
impl Send for Outcome
impl Sync for Outcome
impl Unpin for Outcome
impl !UnwindSafe for Outcome
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> Constraint for T
impl<T> Constraint for T
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Reflect for T
impl<T> Reflect for T
fn as_dyn_ref<'a>(&self) -> &(dyn Reflect + 'a)where
T: 'a,
fn as_dyn_mut<'a>(&mut self) -> &mut (dyn Reflect + 'a)where
T: 'a,
fn as_dyn_box<'a>(self: Box<T>) -> Box<dyn Reflect + 'a>where
T: 'a,
fn as_dyn_rc<'a>(self: Rc<T>) -> Rc<dyn Reflect + 'a>where
T: 'a,
fn as_dyn_arc<'a>(self: Arc<T>) -> Arc<dyn Reflect + 'a>where
T: 'a,
fn type_id(&self) -> TypeId
fn type_name(&self) -> &'static str
Source§impl<T> ReflectExt for T
impl<T> ReflectExt for T
fn is<T>(&self) -> bool
fn type_id() -> TypeId
fn downcast_ref<T>(&self) -> Option<&T>where
T: Reflect,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: Reflect,
fn downcast_box<T>(self: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Reflect,
fn downcast_rc<T>(self: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Reflect,
fn downcast_arc<T>(self: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Reflect,
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
Source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
Source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref