[][src]Struct thunderdome::Arena

pub struct Arena<T> { /* fields omitted */ }

Container that can have elements inserted into it and removed from it.

Indices use the Index type, created by inserting values with Arena::insert.

Implementations

impl<T> Arena<T>[src]

pub fn new() -> Self[src]

Construct an empty arena.

pub fn with_capacity(capacity: usize) -> Self[src]

Construct an empty arena with space to hold exactly capacity elements without reallocating.

pub fn len(&self) -> usize[src]

Return the number of elements contained in the arena.

pub fn capacity(&self) -> usize[src]

Return the number of elements the arena can hold without allocating, including the elements currently in the arena.

pub fn is_empty(&self) -> bool[src]

Returns whether the arena is empty.

pub fn insert(&mut self, value: T) -> Index[src]

Insert a new value into the arena, returning an index that can be used to later retrieve the value.

pub fn get(&self, index: Index) -> Option<&T>[src]

Get an immutable reference to a value inside the arena by Index, returning None if the index is not contained in the arena.

pub fn get_mut(&mut self, index: Index) -> Option<&mut T>[src]

Get a mutable reference to a value inside the arena by Index, returning None if the index is not contained in the arena.

pub fn remove(&mut self, index: Index) -> Option<T>[src]

Remove the value contained at the given index from the arena, returning it if it was present.

pub fn iter(&self) -> Iter<'_, T>

Notable traits for Iter<'a, T>

impl<'a, T> Iterator for Iter<'a, T> type Item = (Index, &'a T);
[src]

Iterate over all of the indexes and values contained in the arena.

Iteration order is not defined.

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Notable traits for IterMut<'a, T>

impl<'a, T> Iterator for IterMut<'a, T> type Item = (Index, &'a T);
[src]

Iterate over all of the indexes and values contained in the arena, with mutable access to each value.

Iteration order is not defined.

pub fn drain(&mut self) -> Drain<'_, T>

Notable traits for Drain<'a, T>

impl<'a, T> Iterator for Drain<'a, T> type Item = (Index, T);
[src]

Returns an iterator that removes each element from the arena.

Iteration order is not defined.

If the iterator is dropped before it is fully consumed, any uniterated items will still be contained in the arena.

Trait Implementations

impl<T: Clone> Clone for Arena<T>[src]

impl<T: Debug> Debug for Arena<T>[src]

impl<T> Default for Arena<T>[src]

impl<T> Index<Index> for Arena<T>[src]

type Output = T

The returned type after indexing.

impl<T> IndexMut<Index> for Arena<T>[src]

impl<T> IntoIterator for Arena<T>[src]

type Item = (Index, T)

The type of the elements being iterated over.

type IntoIter = IntoIter<T>

Which kind of iterator are we turning this into?

Auto Trait Implementations

impl<T> RefUnwindSafe for Arena<T> where
    T: RefUnwindSafe

impl<T> Send for Arena<T> where
    T: Send

impl<T> Sync for Arena<T> where
    T: Sync

impl<T> Unpin for Arena<T> where
    T: Unpin

impl<T> UnwindSafe for Arena<T> where
    T: UnwindSafe

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<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.