Skip to main content

Stack

Struct Stack 

Source
pub struct Stack<const SIZE: usize> { /* private fields */ }
Expand description

Data type for a properly aligned stack of N 32-bit (usize) words

Implementations§

Source§

impl<const SIZE: usize> Stack<SIZE>

Source

pub const fn new() -> Stack<SIZE>

Construct a stack of length SIZE, initialized to 0

The minimum allowed SIZE is 64 bytes, but most programs will need a significantly larger stack.

Source

pub fn take(&self) -> Option<StackAllocation>

Take the StackAllocation out of this Stack.

This returns None if the stack is already taken.

Source

pub unsafe fn reset(&self)

Reset the taken flag of the stack area

§Safety

The caller must ensure that the stack is no longer in use, eg. because the core that used it was reset. This method doesn’t do any synchronization so it must not be called from multiple threads concurrently.

Trait Implementations§

Source§

impl<const SIZE: usize> Default for Stack<SIZE>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<const SIZE: usize> From<&Stack<SIZE>> for Option<StackAllocation>

Source§

fn from(stack: &Stack<SIZE>) -> Self

Converts to this type from the input type.
Source§

impl<const SIZE: usize> Sync for Stack<SIZE>

Auto Trait Implementations§

§

impl<const SIZE: usize> !Freeze for Stack<SIZE>

§

impl<const SIZE: usize> !RefUnwindSafe for Stack<SIZE>

§

impl<const SIZE: usize> Send for Stack<SIZE>

§

impl<const SIZE: usize> Unpin for Stack<SIZE>

§

impl<const SIZE: usize> UnsafeUnpin for Stack<SIZE>

§

impl<const SIZE: usize> UnwindSafe for Stack<SIZE>

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<Choices> CoproductSubsetter<CNil, HNil> for Choices

Source§

type Remainder = Choices

Source§

fn subset( self, ) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>

Extract a subset of the possible types in a coproduct (or get the remaining possibilities) 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U, I> LiftInto<U, I> for T
where U: LiftFrom<T, I>,

Source§

fn lift_into(self) -> U

Performs the indexed conversion.
Source§

impl<Source> Sculptor<HNil, HNil> for Source

Source§

type Remainder = Source

Source§

fn sculpt(self) -> (HNil, <Source as Sculptor<HNil, HNil>>::Remainder)

Consumes the current HList and returns an HList with the requested shape. Read more
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.