Skip to main content

MemoryExt

Trait MemoryExt 

Source
pub trait MemoryExt: Memory {
    // Provided methods
    fn get_opt(&self, ptr: u32, len: u32) -> Result<Option<&[u8]>, Trap> { ... }
    fn get_array<const LEN: usize>(&self, ptr: u32) -> Result<&[u8; LEN], Trap> { ... }
    fn get_array_mut<const LEN: usize>(
        &self,
        ptr: u32,
    ) -> Result<&mut [u8; LEN], Trap> { ... }
    fn from_bytes<T: AnyBitPattern>(&self, ptr: u32) -> Result<&T, Trap> { ... }
    fn from_bytes_mut<T: NoUninit + AnyBitPattern>(
        &self,
        ptr: u32,
    ) -> Result<&mut T, Trap> { ... }
    fn alloc_copy(
        &mut self,
        ptr_ptr: u32,
        len_ptr: Option<u32>,
        data: &[u8],
    ) -> Result<u32, Trap> { ... }
}
Expand description

Helper methods on top of Memory.

Provided Methods§

Source

fn get_opt(&self, ptr: u32, len: u32) -> Result<Option<&[u8]>, Trap>

Returns a shared slice from the applet memory or None if ptr == 0.

Source

fn get_array<const LEN: usize>(&self, ptr: u32) -> Result<&[u8; LEN], Trap>

Returns a shared array from the applet memory.

Source

fn get_array_mut<const LEN: usize>( &self, ptr: u32, ) -> Result<&mut [u8; LEN], Trap>

Returns an exclusive array from the applet memory.

Source

fn from_bytes<T: AnyBitPattern>(&self, ptr: u32) -> Result<&T, Trap>

Returns a shared object from the applet memory.

Source

fn from_bytes_mut<T: NoUninit + AnyBitPattern>( &self, ptr: u32, ) -> Result<&mut T, Trap>

Returns an exclusive object from the applet memory.

Source

fn alloc_copy( &mut self, ptr_ptr: u32, len_ptr: Option<u32>, data: &[u8], ) -> Result<u32, Trap>

Allocates a copy of data unless it’s empty.

Always returns data.len(). Also writes it to len_ptr if provided.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T: Memory> MemoryExt for T