Struct Stack

Source
pub struct Stack(/* private fields */);
Expand description

A Stack that is managed separately from the threadlocal one. Typically, using the threadlocal APIs is encouraged because they enable sharing across libraries, where each re-use lowers the amortized cost of maintaining allocations. But, if full control is necessary this API may be used.

Implementations§

Source§

impl Stack

Source

pub fn new() -> Self

Source

pub fn uninit<T, R, F>(&self, f: F) -> R
where F: FnOnce(&mut MaybeUninit<T>) -> R,

Place a potentially very large value on this stack.

Source

pub fn uninit_slice<T, F, R>(&self, len: usize, f: F) -> R
where F: FnOnce(&mut [MaybeUninit<T>]) -> R,

Allocates an uninit slice from this stack.

Source

pub fn buffer<T, F, R, I>(&self, i: I, f: F) -> R
where I: Iterator<Item = T>, F: FnOnce(&mut [T]) -> R,

Buffers an iterator to a slice on this stack and gives temporary access to that slice. Do not use with an unbounded iterator, because this will eventually run out of memory and panic.

Trait Implementations§

Source§

impl Drop for Stack

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl !Freeze for Stack

§

impl !RefUnwindSafe for Stack

§

impl !Send for Stack

§

impl !Sync for Stack

§

impl Unpin for Stack

§

impl UnwindSafe for Stack

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.