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 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.

Trait Implementations§

source§

impl Debug for FiberStack

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.