Struct scrypto_test::prelude::CallFrame
source · pub struct CallFrame<C, L> {
depth: usize,
call_frame_data: C,
owned_root_nodes: IndexSet<NodeId>,
transient_references: NonIterMap<NodeId, TransientReference>,
stable_references: BTreeMap<NodeId, StableReferenceType>,
next_handle: u32,
open_substates: IndexMap<u32, OpenedSubstate<L>>,
}
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.
Fields§
§depth: usize
§call_frame_data: C
§owned_root_nodes: IndexSet<NodeId>
§transient_references: NonIterMap<NodeId, TransientReference>
§stable_references: BTreeMap<NodeId, StableReferenceType>
§next_handle: u32
§open_substates: IndexMap<u32, OpenedSubstate<L>>
Implementations§
source§impl<C, L> CallFrame<C, L>where
L: Clone,
impl<C, L> CallFrame<C, L>where
L: Clone,
pub fn new_root(call_frame_data: C) -> CallFrame<C, L>
pub fn new_child_from_parent<S>(
substate_io: &SubstateIO<'_, S>,
parent: &mut CallFrame<C, L>,
call_frame_data: C,
message: CallFrameMessage
) -> Result<CallFrame<C, L>, CreateFrameError>where
S: CommitableSubstateStore,
pub fn pass_message<S>(
substate_io: &SubstateIO<'_, S>,
from: &mut CallFrame<C, L>,
to: &mut CallFrame<C, L>,
message: CallFrameMessage
) -> Result<(), PassMessageError>where
S: CommitableSubstateStore,
pub fn depth(&self) -> usize
pub fn data(&self) -> &C
pub fn pin_node<S, 'f>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
node_id: NodeId
) -> Result<(), PinNodeError>where
S: CommitableSubstateStore,
pub fn mark_substate_as_transient<S, 'f>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
node_id: NodeId,
partition_num: PartitionNumber,
substate_key: SubstateKey
) -> Result<(), MarkTransientSubstateError>where
S: CommitableSubstateStore,
pub fn create_node<S, E, 'f>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
handler: &mut impl CallFrameIOAccessHandler<C, L, E>,
node_id: NodeId,
node_substates: BTreeMap<PartitionNumber, BTreeMap<SubstateKey, IndexedScryptoValue>>
) -> Result<(), CallbackError<CreateNodeError, E>>where
S: CommitableSubstateStore,
sourcepub fn drop_node<E, S>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
node_id: &NodeId,
handler: &mut impl CallFrameIOAccessHandler<C, L, E>
) -> Result<DroppedNode, CallbackError<DropNodeError, E>>where
S: CommitableSubstateStore,
pub fn drop_node<E, S>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
node_id: &NodeId,
handler: &mut impl CallFrameIOAccessHandler<C, L, E>
) -> Result<DroppedNode, CallbackError<DropNodeError, E>>where
S: CommitableSubstateStore,
Removes node from call frame and owned nodes will be possessed by this call frame.
pub fn move_partition<S, E, 'f>(
&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>>where
S: CommitableSubstateStore,
pub fn open_substate<S, E, F>( &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<(u32, usize), CallbackError<OpenSubstateError, E>>
pub fn read_substate<S, H, 'f>(
&mut self,
substate_io: &'f mut SubstateIO<'_, S>,
lock_handle: u32,
handler: &mut H
) -> Result<&'f IndexedScryptoValue, CallbackError<ReadSubstateError, <H as CallFrameSubstateReadHandler<C, L>>::Error>>where
S: CommitableSubstateStore,
H: CallFrameSubstateReadHandler<C, L>,
pub fn write_substate<S, E, 'f>(
&mut self,
substate_io: &'f mut SubstateIO<'_, S>,
lock_handle: u32,
substate: IndexedScryptoValue,
handler: &mut impl CallFrameIOAccessHandler<C, L, E>
) -> Result<(), CallbackError<WriteSubstateError, E>>where
S: CommitableSubstateStore,
pub fn close_substate<S>(
&mut self,
substate_io: &mut SubstateIO<'_, S>,
lock_handle: u32
) -> Result<(), CloseSubstateError>where
S: CommitableSubstateStore,
pub fn open_substates(&self) -> Vec<u32>
pub fn close_all_substates<S>(&mut self, substate_io: &mut SubstateIO<'_, S>)where
S: CommitableSubstateStore,
pub fn get_handle_info(&self, lock_handle: u32) -> 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<S, E, 'f>(
&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>>where
S: CommitableSubstateStore,
pub fn remove_substate<S, E, 'f>(
&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>>where
S: CommitableSubstateStore,
pub fn scan_keys<K, S, E, 'f>(
&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>>where
K: SubstateKeyContent + 'static,
S: CommitableSubstateStore,
pub fn drain_substates<K, S, E, 'f>(
&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>>where
K: SubstateKeyContent + 'static,
S: CommitableSubstateStore,
pub fn scan_sorted<S, E, 'f>(
&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<(([u8; 2], Vec<u8>), IndexedScryptoValue)>, CallbackError<CallFrameScanSortedSubstatesError, E>>where
S: CommitableSubstateStore,
pub fn owned_nodes(&self) -> Vec<NodeId>
pub fn get_node_visibility(&self, node_id: &NodeId) -> NodeVisibility
pub fn stable_references(&self) -> &BTreeMap<NodeId, StableReferenceType>
Auto Trait Implementations§
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§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read moresource§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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.