Struct scrypto_test::prelude::Kernel
source · pub struct Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,{ /* private fields */ }Implementations§
source§impl<'g, M, S> Kernel<'g, M, S>
impl<'g, M, S> Kernel<'g, M, S>
pub fn new_no_refs( store: &'g mut S, id_allocator: &'g mut IdAllocator, callback: &'g mut M ) -> Kernel<'g, M, S>
pub fn new( store: &'g mut S, id_allocator: &'g mut IdAllocator, callback: &'g mut M, global_addresses: IndexSet<GlobalAddress>, internal_addresses: IndexSet<InternalAddress> ) -> Kernel<'g, M, S>
source§impl<'g, M, S> Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
impl<'g, M, S> Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
pub fn kernel_create_kernel_for_testing( substate_io: SubstateIO<'g, S>, id_allocator: &'g mut IdAllocator, current_frame: CallFrame<<M as KernelCallbackObject>::CallFrameData, <M as KernelCallbackObject>::LockData>, prev_frame_stack: Vec<CallFrame<<M as KernelCallbackObject>::CallFrameData, <M as KernelCallbackObject>::LockData>>, callback: &'g mut M ) -> Kernel<'g, M, S>
pub fn kernel_current_frame( &self ) -> &CallFrame<<M as KernelCallbackObject>::CallFrameData, <M as KernelCallbackObject>::LockData>
pub fn kernel_current_frame_mut( &mut self ) -> (&SubstateIO<'_, S>, &mut CallFrame<<M as KernelCallbackObject>::CallFrameData, <M as KernelCallbackObject>::LockData>)
pub fn kernel_prev_frame_stack( &self ) -> &Vec<CallFrame<<M as KernelCallbackObject>::CallFrameData, <M as KernelCallbackObject>::LockData>>
pub fn kernel_prev_frame_stack_mut( &mut self ) -> &mut Vec<CallFrame<<M as KernelCallbackObject>::CallFrameData, <M as KernelCallbackObject>::LockData>>
pub fn kernel_substate_io(&self) -> &SubstateIO<'g, S>
pub fn kernel_substate_io_mut(&mut self) -> &mut SubstateIO<'g, S>
pub fn kernel_id_allocator(&self) -> &IdAllocator
pub fn kernel_id_allocator_mut(&mut self) -> &mut &'g mut IdAllocator
pub fn kernel_callback(&self) -> &M
pub fn kernel_callback_mut(&mut self) -> &mut M
Trait Implementations§
source§impl<'g, M, S> KernelInternalApi<M> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
impl<'g, M, S> KernelInternalApi<M> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
source§fn kernel_get_node_visibility(&self, node_id: &NodeId) -> NodeVisibility
fn kernel_get_node_visibility(&self, node_id: &NodeId) -> NodeVisibility
Returns the visibility of a node
source§fn kernel_get_current_depth(&self) -> usize
fn kernel_get_current_depth(&self) -> usize
Gets the number of call frames that are currently in the call frame stack
fn kernel_get_system_state(&mut self) -> SystemState<'_, M>
fn kernel_read_bucket(&mut self, bucket_id: &NodeId) -> Option<BucketSnapshot>
fn kernel_read_proof(&mut self, proof_id: &NodeId) -> Option<ProofSnapshot>
source§fn kernel_get_system(&mut self) -> &mut M
fn kernel_get_system(&mut self) -> &mut M
Retrieves data associated with the kernel upstream layer (system)
source§impl<'g, M, S> KernelInvokeApi<<M as KernelCallbackObject>::CallFrameData> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
impl<'g, M, S> KernelInvokeApi<<M as KernelCallbackObject>::CallFrameData> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
fn kernel_invoke( &mut self, invocation: Box<KernelInvocation<<M as KernelCallbackObject>::CallFrameData>> ) -> Result<IndexedScryptoValue, RuntimeError>
source§impl<'g, M, S> KernelNodeApi for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
impl<'g, M, S> KernelNodeApi for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
source§fn kernel_pin_node(&mut self, node_id: NodeId) -> Result<(), RuntimeError>
fn kernel_pin_node(&mut self, node_id: NodeId) -> Result<(), RuntimeError>
Pin a node to it’s current device.
source§fn kernel_allocate_node_id(
&mut self,
entity_type: EntityType
) -> Result<NodeId, RuntimeError>
fn kernel_allocate_node_id( &mut self, entity_type: EntityType ) -> Result<NodeId, RuntimeError>
Allocates a new node id useable for create_node
source§fn kernel_create_node(
&mut self,
node_id: NodeId,
node_substates: BTreeMap<PartitionNumber, BTreeMap<SubstateKey, IndexedScryptoValue>>
) -> Result<(), RuntimeError>
fn kernel_create_node( &mut self, node_id: NodeId, node_substates: BTreeMap<PartitionNumber, BTreeMap<SubstateKey, IndexedScryptoValue>> ) -> Result<(), RuntimeError>
Creates a new RENode
fn kernel_create_node_from( &mut self, node_id: NodeId, partitions: BTreeMap<PartitionNumber, (NodeId, PartitionNumber)> ) -> Result<(), RuntimeError>
source§fn kernel_drop_node(
&mut self,
node_id: &NodeId
) -> Result<DroppedNode, RuntimeError>
fn kernel_drop_node( &mut self, node_id: &NodeId ) -> Result<DroppedNode, RuntimeError>
Removes an RENode. Owned children will be possessed by the call frame. Read more
source§impl<'g, M, S> KernelSubstateApi<<M as KernelCallbackObject>::LockData> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
impl<'g, M, S> KernelSubstateApi<<M as KernelCallbackObject>::LockData> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
source§fn kernel_mark_substate_as_transient(
&mut self,
node_id: NodeId,
partition_num: PartitionNumber,
key: SubstateKey
) -> Result<(), RuntimeError>
fn kernel_mark_substate_as_transient( &mut self, node_id: NodeId, partition_num: PartitionNumber, key: SubstateKey ) -> Result<(), RuntimeError>
Marks a substate as transient, or a substate which was never and will never be persisted
source§fn kernel_open_substate_with_default<F>(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
substate_key: &SubstateKey,
flags: LockFlags,
default: Option<F>,
data: <M as KernelCallbackObject>::LockData
) -> Result<u32, RuntimeError>where
F: FnOnce() -> IndexedScryptoValue,
fn kernel_open_substate_with_default<F>(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
substate_key: &SubstateKey,
flags: LockFlags,
default: Option<F>,
data: <M as KernelCallbackObject>::LockData
) -> Result<u32, RuntimeError>where
F: FnOnce() -> IndexedScryptoValue,
Locks a substate to make available for reading and/or writing
source§fn kernel_get_lock_data(
&mut self,
lock_handle: u32
) -> Result<<M as KernelCallbackObject>::LockData, RuntimeError>
fn kernel_get_lock_data( &mut self, lock_handle: u32 ) -> Result<<M as KernelCallbackObject>::LockData, RuntimeError>
Retrieves info related to a lock
source§fn kernel_read_substate(
&mut self,
lock_handle: u32
) -> Result<&IndexedScryptoValue, RuntimeError>
fn kernel_read_substate( &mut self, lock_handle: u32 ) -> Result<&IndexedScryptoValue, RuntimeError>
Reads the value of the substate locked by the given lock handle
source§fn kernel_write_substate(
&mut self,
lock_handle: u32,
value: IndexedScryptoValue
) -> Result<(), RuntimeError>
fn kernel_write_substate( &mut self, lock_handle: u32, value: IndexedScryptoValue ) -> Result<(), RuntimeError>
Writes a value to the substate locked by the given lock handle
source§fn kernel_close_substate(
&mut self,
lock_handle: u32
) -> Result<(), RuntimeError>
fn kernel_close_substate( &mut self, lock_handle: u32 ) -> Result<(), RuntimeError>
Drops the handle on some substate, if the handle is a force write, updates are flushed.
No updates should occur if an error is returned.
source§fn kernel_set_substate(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
substate_key: SubstateKey,
value: IndexedScryptoValue
) -> Result<(), RuntimeError>
fn kernel_set_substate( &mut self, node_id: &NodeId, partition_num: PartitionNumber, substate_key: SubstateKey, value: IndexedScryptoValue ) -> Result<(), RuntimeError>
Sets a value to a substate without checking for the original value. Read more
source§fn kernel_remove_substate(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
substate_key: &SubstateKey
) -> Result<Option<IndexedScryptoValue>, RuntimeError>
fn kernel_remove_substate( &mut self, node_id: &NodeId, partition_num: PartitionNumber, substate_key: &SubstateKey ) -> Result<Option<IndexedScryptoValue>, RuntimeError>
Removes a substate from a node and returns the original value. Read more
fn kernel_scan_keys<K>(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
limit: u32
) -> Result<Vec<SubstateKey>, RuntimeError>where
K: SubstateKeyContent + 'static,
fn kernel_drain_substates<K>(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
limit: u32
) -> Result<Vec<(SubstateKey, IndexedScryptoValue)>, RuntimeError>where
K: SubstateKeyContent + 'static,
source§fn kernel_scan_sorted_substates(
&mut self,
node_id: &NodeId,
partition_num: PartitionNumber,
limit: u32
) -> Result<Vec<(([u8; 2], Vec<u8>), IndexedScryptoValue)>, RuntimeError>
fn kernel_scan_sorted_substates( &mut self, node_id: &NodeId, partition_num: PartitionNumber, limit: u32 ) -> Result<Vec<(([u8; 2], Vec<u8>), IndexedScryptoValue)>, RuntimeError>
Reads substates under a node in sorted lexicographical order Read more
fn kernel_open_substate( &mut self, node_id: &NodeId, partition_num: PartitionNumber, substate_key: &SubstateKey, flags: LockFlags, lock_data: L ) -> Result<u32, RuntimeError>
impl<'g, M, S> KernelApi<M> for Kernel<'g, M, S>where
M: KernelCallbackObject,
S: CommitableSubstateStore,
Auto Trait Implementations§
impl<'g, M, S> Freeze for Kernel<'g, M, S>
impl<'g, M, S> !RefUnwindSafe for Kernel<'g, M, S>
impl<'g, M, S> Send for Kernel<'g, M, S>where
<M as KernelCallbackObject>::CallFrameData: Send,
M: Send,
S: Send,
<M as KernelCallbackObject>::LockData: Send,
impl<'g, M, S> !Sync for Kernel<'g, M, S>
impl<'g, M, S> Unpin for Kernel<'g, M, S>where
<M as KernelCallbackObject>::CallFrameData: Unpin,
<M as KernelCallbackObject>::LockData: Unpin,
impl<'g, M, S> !UnwindSafe for Kernel<'g, M, S>
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> 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.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