Trait gear_core::memory::Memory

source ·
pub trait Memory {
    type GrowError: Debug;

    // Required methods
    fn grow(&mut self, pages: WasmPage) -> Result<(), Self::GrowError>;
    fn size(&self) -> WasmPage;
    fn write(&mut self, offset: u32, buffer: &[u8]) -> Result<(), MemoryError>;
    fn read(&self, offset: u32, buffer: &mut [u8]) -> Result<(), MemoryError>;
    unsafe fn get_buffer_host_addr_unsafe(&mut self) -> HostPointer;

    // Provided method
    fn get_buffer_host_addr(&mut self) -> Option<HostPointer> { ... }
}
Expand description

Backend wasm memory interface.

Required Associated Types§

source

type GrowError: Debug

Memory grow error.

Required Methods§

source

fn grow(&mut self, pages: WasmPage) -> Result<(), Self::GrowError>

Grow memory by number of pages.

source

fn size(&self) -> WasmPage

Return current size of the memory.

source

fn write(&mut self, offset: u32, buffer: &[u8]) -> Result<(), MemoryError>

Set memory region at specific pointer.

source

fn read(&self, offset: u32, buffer: &mut [u8]) -> Result<(), MemoryError>

Reads memory contents at the given offset into a buffer.

source

unsafe fn get_buffer_host_addr_unsafe(&mut self) -> HostPointer

Get buffer addr unsafe.

§Safety

if memory size is 0 then buffer addr can be garbage

Provided Methods§

source

fn get_buffer_host_addr(&mut self) -> Option<HostPointer>

Returns native addr of wasm memory buffer in wasm executor

Implementors§