[][src]Struct compact_arena::NanoArena

pub struct NanoArena<'tag, T> { /* fields omitted */ }

A "nano" arena containing up to 256 elements.

You will likely use this via the mk_nano_arena macro.

Methods

impl<'tag, T> NanoArena<'tag, T>[src]

pub unsafe fn new(tag: InvariantLifetime<'tag>) -> NanoArena<'tag, T>[src]

create a new NanoArena. Don't do this manually. Use the mk_nano_arena macro instead.

Safety

The whole tagged indexing trick relies on the 'tag you give to this constructor. You must never use this value in another arena, lest you might be able to mix up the indices of the two, which could lead to out of bounds access and thus Undefined Behavior!

pub fn try_add(&mut self, item: T) -> Result<Idx8<'tag>, CapacityExceeded<T>>[src]

Add an item to the arena, get an index or CapacityExceeded back.

pub fn add(&mut self, item: T) -> Idx8<'tag>[src]

Add an item to the arena, get an index back

Trait Implementations

impl<'tag, T> Drop for NanoArena<'tag, T>[src]

impl<'tag, T> Index<Idx<'tag, u8>> for NanoArena<'tag, T>[src]

type Output = T

The returned type after indexing.

impl<'tag, T> IndexMut<Idx<'tag, u8>> for NanoArena<'tag, T>[src]

Auto Trait Implementations

impl<'tag, T> Unpin for NanoArena<'tag, T> where
    T: Unpin

impl<'tag, T> Sync for NanoArena<'tag, T> where
    T: Sync

impl<'tag, T> Send for NanoArena<'tag, T> where
    T: Send

impl<'tag, T> RefUnwindSafe for NanoArena<'tag, T> where
    T: RefUnwindSafe

impl<'tag, T> UnwindSafe for NanoArena<'tag, T> where
    T: UnwindSafe

Blanket Implementations

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.

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

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

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