Trait ProcessorExternalities

Source
pub trait ProcessorExternalities {
    const LAZY_PAGES_ENABLED: bool;

    // Required methods
    fn new(context: ProcessorContext) -> Self;
    fn lazy_pages_init_for_program(
        mem: &mut impl Memory,
        prog_id: ProgramId,
        stack_end: Option<WasmPage>,
        globals_config: GlobalsAccessConfig,
        lazy_pages_weights: LazyPagesWeights,
    );
    fn lazy_pages_post_execution_actions(mem: &mut impl Memory);
    fn lazy_pages_status() -> Status;
}
Expand description

Trait to which ext must have to work in processor wasm executor. Currently used only for lazy-pages support.

Required Associated Constants§

Source

const LAZY_PAGES_ENABLED: bool

Whether this extension works with lazy pages.

Required Methods§

Source

fn new(context: ProcessorContext) -> Self

Create new

Source

fn lazy_pages_init_for_program( mem: &mut impl Memory, prog_id: ProgramId, stack_end: Option<WasmPage>, globals_config: GlobalsAccessConfig, lazy_pages_weights: LazyPagesWeights, )

Protect and save storage keys for pages which has no data

Source

fn lazy_pages_post_execution_actions(mem: &mut impl Memory)

Lazy pages contract post execution actions

Source

fn lazy_pages_status() -> Status

Returns lazy pages status

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§

Source§

impl ProcessorExternalities for Ext

Empty implementation for non-substrate (and non-lazy-pages) using