Struct slab::Slab
[−]
[src]
pub struct Slab<T, I: Index> { // some fields omitted }
A preallocated chunk of memory for storing objects of the same type.
Methods
impl<T, I: Index> Slab<T, I>
[src]
fn new(cap: usize) -> Slab<T, I>
fn new_starting_at(offset: I, cap: usize) -> Slab<T, I>
fn count(&self) -> usize
fn is_empty(&self) -> bool
fn remaining(&self) -> usize
fn has_remaining(&self) -> bool
fn contains(&self, idx: I) -> bool
fn get(&self, idx: I) -> Option<&T>
fn get_mut(&mut self, idx: I) -> Option<&mut T>
fn insert(&mut self, val: T) -> Result<I, T>
fn insert_with<F>(&mut self, f: F) -> Option<I> where F: FnOnce(I) -> T
Like insert
but for objects that require newly allocated
usize in their constructor.
fn remove(&mut self, idx: I) -> Option<T>
Releases the given slot
fn replace(&mut self, idx: I, t: T) -> Option<T>
fn iter(&self) -> SlabIter<T, I>
fn iter_mut(&mut self) -> SlabMutIter<T, I>
Trait Implementations
impl<T, I: Index> Send for Slab<T, I> where T: Send
[src]
impl<T, I: Index> Index<I> for Slab<T, I>
[src]
type Output = T
The returned type after indexing
fn index<'a>(&'a self, idx: I) -> &'a T
The method for the indexing (Foo[Bar]
) operation
impl<T, I: Index> IndexMut<I> for Slab<T, I>
[src]
fn index_mut<'a>(&'a mut self, idx: I) -> &'a mut T
The method for the indexing (Foo[Bar]
) operation
impl<T, I: Index> Debug for Slab<T, I>
[src]
impl<'a, T, I: Index> IntoIterator for &'a Slab<T, I>
[src]
type Item = &'a T
The type of the elements being iterated over.
type IntoIter = SlabIter<'a, T, I>
Which kind of iterator are we turning this into?
fn into_iter(self) -> SlabIter<'a, T, I>
Creates an iterator from a value. Read more
impl<'a, T, I: Index> IntoIterator for &'a mut Slab<T, I>
[src]
type Item = &'a mut T
The type of the elements being iterated over.
type IntoIter = SlabMutIter<'a, T, I>
Which kind of iterator are we turning this into?
fn into_iter(self) -> SlabMutIter<'a, T, I>
Creates an iterator from a value. Read more