pub struct StateCompareAndWriteArgs<'a> {
pub state_ptr: NonNull<Address>,
pub old_state_ptr: NonNull<<VariableBytes<RECOMMENDED_STATE_CAPACITY> as IoType>::PointerType>,
pub old_state_size: u32,
pub old_state_capacity: u32,
pub new_state_ptr: NonNull<<VariableBytes<RECOMMENDED_STATE_CAPACITY> as IoType>::PointerType>,
pub new_state_size: u32,
pub new_state_capacity: u32,
pub ok_result_ptr: NonNull<Bool>,
/* private fields */
}Expand description
Data structure containing expected input for external method invocation, eventually calling state_compare_and_write() on the other side by the host.
This can be used with Env, though there are helper methods on this provided by extension trait that allow not dealing with this struct directly in simpler cases.
Fields§
§state_ptr: NonNull<Address>§old_state_ptr: NonNull<<VariableBytes<RECOMMENDED_STATE_CAPACITY> as IoType>::PointerType>§old_state_size: u32Size of the contents old_state_ptr points to
old_state_capacity: u32Capacity of the contents old_state_ptr points to
new_state_ptr: NonNull<<VariableBytes<RECOMMENDED_STATE_CAPACITY> as IoType>::PointerType>§new_state_size: u32Size of the contents new_state_ptr points to
new_state_capacity: u32Capacity of the contents new_state_ptr points to
ok_result_ptr: NonNull<Bool>Implementations§
Source§impl<'a> StateCompareAndWriteArgs<'a>
impl<'a> StateCompareAndWriteArgs<'a>
Sourcepub fn new(
state: &'a Address,
old_state: &'a VariableBytes<RECOMMENDED_STATE_CAPACITY>,
new_state: &'a VariableBytes<RECOMMENDED_STATE_CAPACITY>,
ok_result: &'a mut MaybeUninit<Bool>,
) -> Self
pub fn new( state: &'a Address, old_state: &'a VariableBytes<RECOMMENDED_STATE_CAPACITY>, new_state: &'a VariableBytes<RECOMMENDED_STATE_CAPACITY>, ok_result: &'a mut MaybeUninit<Bool>, ) -> Self
Create a new instance.
NOTE: Make sure to query updated sizes of arguments after calling the contract.
Trait Implementations§
Source§impl<'a> Debug for StateCompareAndWriteArgs<'a>
impl<'a> Debug for StateCompareAndWriteArgs<'a>
Source§impl ExternalArgs for StateCompareAndWriteArgs<'_>
impl ExternalArgs for StateCompareAndWriteArgs<'_>
Auto Trait Implementations§
impl<'a> Freeze for StateCompareAndWriteArgs<'a>
impl<'a> RefUnwindSafe for StateCompareAndWriteArgs<'a>
impl<'a> !Send for StateCompareAndWriteArgs<'a>
impl<'a> !Sync for StateCompareAndWriteArgs<'a>
impl<'a> Unpin for StateCompareAndWriteArgs<'a>
impl<'a> UnwindSafe for StateCompareAndWriteArgs<'a>
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> 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