[][src]Struct bump_into::BumpInto

pub struct BumpInto<'a> { /* fields omitted */ }

A bump allocator over an arbitrary region of memory.

Methods

impl<'this, 'a: 'this> BumpInto<'a>[src]

pub fn new(array: &'a mut [MaybeUninit<u8>]) -> Self[src]

Creates a new BumpInto, wrapping a slice of MaybeUninit.

pub fn alloc_space<S: Into<usize>, A: Into<usize>>(
    &'this self,
    size: S,
    align: A
) -> *mut MaybeUninit<u8>
[src]

Tries to allocate size bytes with alignment align. Returns a null pointer on failure.

pub fn alloc_space_for<T>(&'this self) -> *mut T[src]

Tries to allocate enough space to store a T. Returns a properly aligned pointer to uninitialized T if there was enough space; otherwise returns a null pointer.

pub fn alloc_space_for_n<T>(&'this self, count: usize) -> *mut T[src]

Tries to allocate enough space to store count number of T. Returns a properly aligned pointer to uninitialized T if there was enough space; otherwise returns a null pointer.

pub fn alloc<T>(&'this self, x: T) -> Result<&'this mut T, T>[src]

Tries to allocate enough space to store a T and place x there.

On success (i.e. if there was enough space) produces a mutable reference to x with the lifetime of this BumpInto.

On failure, produces x.

pub fn alloc_with<T, F: FnOnce() -> T>(
    &'this self,
    f: F
) -> Option<&'this mut T>
[src]

Tries to allocate enough space to store a T and place the result of calling f there.

On success (i.e. if there was enough space) produces a mutable reference to the stored result with the lifetime of this BumpInto.

pub fn alloc_n<T: Copy>(&'this self, xs: &[T]) -> Option<&'this mut [T]>[src]

Tries to allocate enough space to store a copy of xs and copy xs into it.

On success (i.e. if there was enough space) produces a mutable reference to the copy with the lifetime of this BumpInto.

pub fn alloc_n_with<T, I: IntoIterator<Item = T>>(
    &'this self,
    count: usize,
    iter: I
) -> Option<&'this mut [T]>
[src]

Tries to allocate enough space to store count number of T and fill it with the values produced by iter.into_iter().

On success (i.e. if there was enough space) produces a mutable reference to the stored results as a slice, with the lifetime of this BumpInto.

If the iterator ends before producing enough items to fill the allocated space, the same amount of space is allocated, but the returned slice is just long enough to hold the items that were actually produced.

Auto Trait Implementations

impl<'a> Send for BumpInto<'a>

impl<'a> !Sync for BumpInto<'a>

impl<'a> Unpin for BumpInto<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.