wasmtime_fiber

Struct FiberStack

source
pub struct FiberStack(/* private fields */);
Expand description

Represents an execution stack to use for a fiber.

Implementations§

source§

impl FiberStack

source

pub fn new(size: usize) -> Result<Self>

Creates a new fiber stack of the given size.

source

pub fn from_custom(custom: Box<dyn RuntimeFiberStack>) -> Result<Self>

Creates a new fiber stack of the given size.

source

pub unsafe fn from_raw_parts(bottom: *mut u8, len: usize) -> Result<Self>

Creates a new fiber stack with the given pointer to the bottom of the stack plus the byte length of the stack.

The bottom pointer should be addressable for len bytes. The page beneath bottom should be unmapped as a guard page.

§Safety

This is unsafe because there is no validation of the given pointer.

The caller must properly allocate the stack space with a guard page and make the pages accessible for correct behavior.

source

pub fn top(&self) -> Option<*mut u8>

Gets the top of the stack.

Returns None if the platform does not support getting the top of the stack.

source

pub fn range(&self) -> Option<Range<usize>>

Returns the range of where this stack resides in memory if the platform supports it.

source

pub fn is_from_raw_parts(&self) -> bool

Is this a manually-managed stack created from raw parts? If so, it is up to whoever created it to manage the stack’s memory allocation.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.