[][src]Struct sp_sandbox::Memory

pub struct Memory { /* fields omitted */ }

Reference to a sandboxed linear memory, that will be used by the guest module.

The memory can't be directly accessed by supervisor, but only through designated functions get and set.

Methods

impl Memory[src]

pub fn new(initial: u32, maximum: Option<u32>) -> Result<Memory, Error>[src]

Construct a new linear memory instance.

The memory allocated with initial number of pages specified by initial. Minimal possible value for initial is 0 and maximum possible is 65536. (Since maximum addressable memory is 232 = 4GiB = 65536 * 64KiB).

It is possible to limit maximum number of pages this memory instance can have by specifying maximum. If not specified, this memory instance would be able to allocate up to 4GiB.

Allocated memory is always zeroed.

pub fn get(&self, ptr: u32, buf: &mut [u8]) -> Result<(), Error>[src]

Read a memory area at the address ptr with the size of the provided slice buf.

Returns Err if the range is out-of-bounds.

pub fn set(&self, ptr: u32, value: &[u8]) -> Result<(), Error>[src]

Write a memory area at the address ptr with contents of the provided slice buf.

Returns Err if the range is out-of-bounds.

Trait Implementations

impl Clone for Memory[src]

Auto Trait Implementations

impl !RefUnwindSafe for Memory

impl !Send for Memory

impl !Sync for Memory

impl Unpin for Memory

impl !UnwindSafe for Memory

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    Outer: AsRef<T> + AsMut<T> + From<T>,
    T: From<Outer>, 
[src]

fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

fn from_mut(outer: &mut Outer) -> &mut T[src]

Get a mutable reference to the inner from the outer.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,