Trait KernelCallbackObject

Source
pub trait KernelCallbackObject: Sized {
    type LockData: Default + Clone;
    type CallFrameData: CallFrameReferences;

Show 28 methods // Required methods fn on_pin_node<Y>(node_id: &NodeId, api: &mut Y) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_create_node<Y>( event: CreateNodeEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_drop_node<Y>( event: DropNodeEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_move_module<Y>( event: MoveModuleEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_open_substate<Y>( event: OpenSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_close_substate<Y>( event: CloseSubstateEvent, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_read_substate<Y>( event: ReadSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_write_substate<Y>( event: WriteSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_set_substate<Y>( event: SetSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_remove_substate<Y>( event: RemoveSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_scan_keys<Y>( event: ScanKeysEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_drain_substates<Y>( event: DrainSubstatesEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_scan_sorted_substates<Y>( event: ScanSortedSubstatesEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn before_invoke<Y>( invocation: &KernelInvocation<Self::CallFrameData>, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelApi<CallbackObject = Self>; fn on_execution_start<Y>(api: &mut Y) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn invoke_upstream<Y>( args: &IndexedScryptoValue, api: &mut Y, ) -> Result<IndexedScryptoValue, RuntimeError> where Y: KernelApi<CallbackObject = Self>; fn auto_drop<Y>(nodes: Vec<NodeId>, api: &mut Y) -> Result<(), RuntimeError> where Y: KernelApi<CallbackObject = Self>; fn on_execution_finish<Y>( message: &CallFrameMessage, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn after_invoke<Y>( output: &IndexedScryptoValue, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelApi<CallbackObject = Self>; fn on_allocate_node_id<Y>( entity_type: EntityType, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_mark_substate_as_transient<Y>( node_id: &NodeId, partition_number: &PartitionNumber, substate_key: &SubstateKey, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_substate_lock_fault<Y>( node_id: NodeId, partition_num: PartitionNumber, offset: &SubstateKey, api: &mut Y, ) -> Result<bool, RuntimeError> where Y: KernelApi<CallbackObject = Self>; fn on_drop_node_mut<Y>( node_id: &NodeId, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelApi<CallbackObject = Self>; fn on_get_stack_id<Y>(api: &mut Y) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_switch_stack<Y>(api: &mut Y) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_send_to_stack<Y>( value: &IndexedScryptoValue, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_set_call_frame_data<Y>( data: &Self::CallFrameData, api: &mut Y, ) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>; fn on_get_owned_nodes<Y>(api: &mut Y) -> Result<(), RuntimeError> where Y: KernelInternalApi<System = Self>;
}
Expand description

Upper layer callback object which a kernel interacts with during execution

Required Associated Types§

Source

type LockData: Default + Clone

Data to be stored with each substate lock

Source

type CallFrameData: CallFrameReferences

Data to be stored with every call frame

Required Methods§

Source

fn on_pin_node<Y>(node_id: &NodeId, api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before a node is pinned to the heap

Source

fn on_create_node<Y>( event: CreateNodeEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callbacks before/on-io-access/after a new node is created

Source

fn on_drop_node<Y>( event: DropNodeEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callbacks before/on-io-access/after a node is dropped

Source

fn on_move_module<Y>( event: MoveModuleEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback when a module is moved

Source

fn on_open_substate<Y>( event: OpenSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before/on-io-access/after a substate is opened

Source

fn on_close_substate<Y>( event: CloseSubstateEvent, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before a substate is closed

Source

fn on_read_substate<Y>( event: ReadSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before a substate is read

Source

fn on_write_substate<Y>( event: WriteSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before a substate is written to

Source

fn on_set_substate<Y>( event: SetSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before/on-io-access a substate is set

Source

fn on_remove_substate<Y>( event: RemoveSubstateEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before/on-io-access a substate is removed

Source

fn on_scan_keys<Y>( event: ScanKeysEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before/on-io-access a key scan occurs

Source

fn on_drain_substates<Y>( event: DrainSubstatesEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before/on-io-access a substate drain occurs

Source

fn on_scan_sorted_substates<Y>( event: ScanSortedSubstatesEvent<'_>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before/on-io-access a sorted substate scan occurs

Source

fn before_invoke<Y>( invocation: &KernelInvocation<Self::CallFrameData>, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelApi<CallbackObject = Self>,

Callback before an invocation and a new call frame is created

Source

fn on_execution_start<Y>(api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback after a new call frame is created for a new invocation

Source

fn invoke_upstream<Y>( args: &IndexedScryptoValue, api: &mut Y, ) -> Result<IndexedScryptoValue, RuntimeError>
where Y: KernelApi<CallbackObject = Self>,

Callback on invocation. This is where the callback object should execute application logic.

Source

fn auto_drop<Y>(nodes: Vec<NodeId>, api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelApi<CallbackObject = Self>,

Callback after invocation during call frame cleanup and nodes are still owned by the executed call frame

Source

fn on_execution_finish<Y>( message: &CallFrameMessage, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback right after execution of invocation and where call of execution still exists

Source

fn after_invoke<Y>( output: &IndexedScryptoValue, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelApi<CallbackObject = Self>,

Callback after an invocation and where invocation’s call frame has already been destroyed

Source

fn on_allocate_node_id<Y>( entity_type: EntityType, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before node id allocation

Source

fn on_mark_substate_as_transient<Y>( node_id: &NodeId, partition_number: &PartitionNumber, substate_key: &SubstateKey, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Callback before a substate is marked as transient

Source

fn on_substate_lock_fault<Y>( node_id: NodeId, partition_num: PartitionNumber, offset: &SubstateKey, api: &mut Y, ) -> Result<bool, RuntimeError>
where Y: KernelApi<CallbackObject = Self>,

Callback when a substate does not exist

Source

fn on_drop_node_mut<Y>( node_id: &NodeId, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelApi<CallbackObject = Self>,

Callback before a node is dropped

Source

fn on_get_stack_id<Y>(api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Source

fn on_switch_stack<Y>(api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Source

fn on_send_to_stack<Y>( value: &IndexedScryptoValue, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Source

fn on_set_call_frame_data<Y>( data: &Self::CallFrameData, api: &mut Y, ) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Source

fn on_get_owned_nodes<Y>(api: &mut Y) -> Result<(), RuntimeError>
where Y: KernelInternalApi<System = Self>,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§