Type Alias DynStack

Source
pub type DynStack = MemStack;

Aliased Type§

pub struct DynStack { /* private fields */ }

Implementations

Source§

impl MemStack

Source

pub fn new(buffer: &mut [MaybeUninit<u8>]) -> &mut Self

Returns a new MemStack from the provided memory buffer.

Source

pub fn new_any<T>(buffer: &mut [MaybeUninit<T>]) -> &mut Self

Returns a new MemStack from the provided memory buffer.

Source

pub fn can_hold(&self, alloc_req: StackReq) -> bool

Returns true if the stack can hold an allocation with the given size and alignment requirements.

Source

pub fn len_bytes(&self) -> usize

Returns the number of bytes that this stack can hold.

Source

pub fn as_ptr(&self) -> *const u8

Returns a pointer to the (possibly uninitialized) stack memory.

Source

pub fn make_aligned_uninit<T>( &mut self, size: usize, align: usize, ) -> (&mut [MaybeUninit<T>], &mut Self)

Returns a new aligned and uninitialized DynArray and a stack over the remainder of the buffer.

§Panics

Panics if the stack isn’t large enough to allocate the array.

Source

pub fn make_aligned_with<T>( &mut self, size: usize, align: usize, f: impl FnMut(usize) -> T, ) -> (DynArray<'_, T>, &mut Self)

Returns a new aligned DynArray, initialized with the provided function, and a stack over the remainder of the buffer.

§Panics

Panics if the stack isn’t large enough to allocate the array, or if the provided function panics.

Source

pub fn make_uninit<T>( &mut self, size: usize, ) -> (&mut [MaybeUninit<T>], &mut Self)

Returns a new uninitialized DynArray and a stack over the remainder of the buffer.

§Panics

Panics if the stack isn’t large enough to allocate the array.

Source

pub fn make_with<T>( &mut self, size: usize, f: impl FnMut(usize) -> T, ) -> (DynArray<'_, T>, &mut Self)

Returns a new DynArray, initialized with the provided function, and a stack over the remainder of the buffer.

§Panics

Panics if the stack isn’t large enough to allocate the array, or if the provided function panics.

Source

pub fn collect_aligned<I>( &mut self, align: usize, iter: impl IntoIterator<Item = I>, ) -> (DynArray<'_, I>, &mut Self)

Returns a new aligned DynArray, initialized with the provided iterator, and a stack over the remainder of the buffer.
If there isn’t enough space for all the iterator items, then the returned array only contains the first elements that fit into the stack.

§Panics

Panics if the provided iterator panics.

Source

pub fn collect<I>( &mut self, iter: impl IntoIterator<Item = I>, ) -> (DynArray<'_, I>, &mut Self)

Returns a new DynArray, initialized with the provided iterator, and a stack over the remainder of the buffer.
If there isn’t enough space for all the iterator items, then the returned array only contains the first elements that fit into the stack.

§Panics

Panics if the provided iterator panics.

Source

pub fn bump<'bump, 'stack>( self: &'bump mut &'stack mut Self, ) -> &'bump mut Bump<'stack>