Struct stack_graphs::arena::Arena [−][src]
pub struct Arena<T> { /* fields omitted */ }
Expand description
Manages the life cycle of instances of type T
. You can allocate new instances of T
from
the arena. All of the instances managed by this arena will be dropped as a single operation
when the arena itself is dropped.
Implementations
impl<T> Arena<T>
[src]
impl<T> Arena<T>
[src]pub fn add(&mut self, item: T) -> Handle<T>
[src]
pub fn add(&mut self, item: T) -> Handle<T>
[src]Adds a new instance to this arena, returning a stable handle to it.
Note that we do not deduplicate instances of T
in any way. If you add two instances that
have the same content, you will get distinct handles for each one.
pub fn get(&self, handle: Handle<T>) -> &T
[src]
pub fn get(&self, handle: Handle<T>) -> &T
[src]Dereferences a handle to an instance owned by this arena, returning a reference to it.
pub fn get_mut(&mut self, handle: Handle<T>) -> &mut T
[src]
pub fn get_mut(&mut self, handle: Handle<T>) -> &mut T
[src]Dereferences a handle to an instance owned by this arena, returning a mutable reference to it.
pub fn iter_handles(&self) -> impl Iterator<Item = Handle<T>>
[src]
pub fn iter_handles(&self) -> impl Iterator<Item = Handle<T>>
[src]Returns an iterator of all of the handles in this arena. (Note that this iterator does not retain a reference to the arena!)
Auto Trait Implementations
impl<T> RefUnwindSafe for Arena<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Arena<T> where
T: Send,
T: Send,
impl<T> Sync for Arena<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Arena<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Arena<T> where
T: UnwindSafe,
T: UnwindSafe,