pub struct CallFrame<C, L> { /* private fields */ }
Expand description
A call frame is the basic unit that forms a transaction call stack, which keeps track of the owned objects and references by this function.
Implementations§
Source§impl<C, L: Clone> CallFrame<C, L>
impl<C, L: Clone> CallFrame<C, L>
pub fn new_root(init: CallFrameInit<C>) -> Self
pub fn new_child_from_parent<S: CommitableSubstateStore>( substate_io: &SubstateIO<'_, S>, parent: &mut CallFrame<C, L>, call_frame_data: C, message: CallFrameMessage, ) -> Result<Self, CreateFrameError>
pub fn pass_message<S: CommitableSubstateStore>( substate_io: &SubstateIO<'_, S>, from: &mut CallFrame<C, L>, to: &mut CallFrame<C, L>, message: CallFrameMessage, ) -> Result<(), PassMessageError>
pub fn stack_id(&self) -> usize
pub fn depth(&self) -> usize
pub fn data(&self) -> &C
pub fn data_mut(&mut self) -> &mut C
pub fn pin_node<'f, S: CommitableSubstateStore>( &mut self, substate_io: &mut SubstateIO<'_, S>, node_id: NodeId, ) -> Result<(), PinNodeError>
pub fn mark_substate_as_transient<'f, S: CommitableSubstateStore>( &mut self, substate_io: &mut SubstateIO<'_, S>, node_id: NodeId, partition_num: PartitionNumber, substate_key: SubstateKey, ) -> Result<(), MarkTransientSubstateError>
pub fn create_node<'f, S: CommitableSubstateStore, E>( &mut self, substate_io: &mut SubstateIO<'_, S>, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, node_id: NodeId, node_substates: NodeSubstates, ) -> Result<(), CallbackError<CreateNodeError, E>>
Sourcepub fn drop_node<E, S: CommitableSubstateStore>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
node_id: &NodeId,
handler: &mut impl CallFrameIOAccessHandler<C, L, E>,
) -> Result<DroppedNode, CallbackError<DropNodeError, E>>
pub fn drop_node<E, S: CommitableSubstateStore>( &mut self, substate_io: &mut SubstateIO<'_, S>, node_id: &NodeId, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<DroppedNode, CallbackError<DropNodeError, E>>
Removes node from call frame and owned nodes will be possessed by this call frame.
pub fn move_partition<'f, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, src_node_id: &NodeId, src_partition_number: PartitionNumber, dest_node_id: &NodeId, dest_partition_number: PartitionNumber, ) -> Result<(), CallbackError<MovePartitionError, E>>
pub fn open_substate<S: CommitableSubstateStore, E, F: FnOnce() -> IndexedScryptoValue>( &mut self, substate_io: &mut SubstateIO<'_, S>, node_id: &NodeId, partition_num: PartitionNumber, substate_key: &SubstateKey, flags: LockFlags, default: Option<F>, data: L, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<(SubstateHandle, usize), CallbackError<OpenSubstateError, E>>
pub fn read_substate<'f, S: CommitableSubstateStore, H: CallFrameSubstateReadHandler<C, L>>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, lock_handle: SubstateHandle, handler: &mut H, ) -> Result<&'f IndexedScryptoValue, CallbackError<ReadSubstateError, H::Error>>
pub fn write_substate<'f, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, lock_handle: SubstateHandle, substate: IndexedScryptoValue, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<(), CallbackError<WriteSubstateError, E>>
pub fn close_substate<S: CommitableSubstateStore>( &mut self, substate_io: &mut SubstateIO<'_, S>, lock_handle: SubstateHandle, ) -> Result<(), CloseSubstateError>
pub fn open_substates(&self) -> Vec<u32>
pub fn close_all_substates<S: CommitableSubstateStore>( &mut self, substate_io: &mut SubstateIO<'_, S>, )
pub fn get_handle_info(&self, lock_handle: SubstateHandle) -> Option<L>
pub fn add_global_reference(&mut self, address: GlobalAddress)
pub fn add_direct_access_reference(&mut self, address: InternalAddress)
pub fn set_substate<'f, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, node_id: &NodeId, partition_num: PartitionNumber, key: SubstateKey, value: IndexedScryptoValue, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<(), CallbackError<CallFrameSetSubstateError, E>>
pub fn remove_substate<'f, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, node_id: &NodeId, partition_num: PartitionNumber, key: &SubstateKey, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<Option<IndexedScryptoValue>, CallbackError<CallFrameRemoveSubstateError, E>>
pub fn scan_keys<'f, K: SubstateKeyContent, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, node_id: &NodeId, partition_num: PartitionNumber, limit: u32, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<Vec<SubstateKey>, CallbackError<CallFrameScanKeysError, E>>
pub fn drain_substates<'f, K: SubstateKeyContent, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, node_id: &NodeId, partition_num: PartitionNumber, limit: u32, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<Vec<(SubstateKey, IndexedScryptoValue)>, CallbackError<CallFrameDrainSubstatesError, E>>
pub fn scan_sorted<'f, S: CommitableSubstateStore, E>( &mut self, substate_io: &'f mut SubstateIO<'_, S>, node_id: &NodeId, partition_num: PartitionNumber, count: u32, handler: &mut impl CallFrameIOAccessHandler<C, L, E>, ) -> Result<Vec<(SortedKey, IndexedScryptoValue)>, CallbackError<CallFrameScanSortedSubstatesError, E>>
pub fn owned_nodes(&self) -> Vec<NodeId>
pub fn get_node_visibility(&self, node_id: &NodeId) -> NodeVisibility
Auto Trait Implementations§
impl<C, L> Freeze for CallFrame<C, L>where
C: Freeze,
impl<C, L> RefUnwindSafe for CallFrame<C, L>where
C: RefUnwindSafe,
L: RefUnwindSafe,
impl<C, L> Send for CallFrame<C, L>
impl<C, L> Sync for CallFrame<C, L>
impl<C, L> Unpin for CallFrame<C, L>
impl<C, L> UnwindSafe for CallFrame<C, L>where
C: UnwindSafe,
L: UnwindSafe,
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, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
impl<T, U> ContextualTryInto<U> for Twhere
U: ContextualTryFrom<T>,
type Error = <U as ContextualTryFrom<T>>::Error
type Context = <U as ContextualTryFrom<T>>::Context
fn contextual_try_into( self, context: &<U as ContextualTryFrom<T>>::Context, ) -> Result<U, <U as ContextualTryFrom<T>>::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>
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
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.