Struct static_alloc::unsync::Chain

source ·
pub struct Chain { /* private fields */ }
Expand description

A Chain is a simple bump allocator, that draws it’s memory from another allocator. Chain allocators can be chained together using Chain::chain.

Implementations§

source§

impl Chain

source

pub fn new(size: usize) -> Result<Self, TryNewError>

Creates a new Chain that has a capacity of size bytes.

source

pub fn bump_box<'bump, T: 'bump>( &'bump self ) -> Result<LeakBox<'bump, MaybeUninit<T>>, Failure>

Attempts to allocate elem within the allocator.

source

pub fn chain(&self, new: Chain)

Chains self together with new.

Following allocations will first be allocated from new.

Note that this will drop all but the first link from new.

source

pub fn capacity(&self) -> usize

Returns the capacity of this Chain. This is how many bytes in total can be allocated within this Chain.

source

pub fn remaining_capacity(&self) -> usize

Returns the remaining capacity of this Chain. This is how many more bytes can be allocated within this Chain.

Trait Implementations§

source§

impl Drop for Chain

Chain drops iteratively, so that we do not stack overflow.

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Chain

§

impl !Send for Chain

§

impl !Sync for Chain

§

impl Unpin for Chain

§

impl !UnwindSafe for Chain

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

§

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

§

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.