Struct TypedArena
pub struct TypedArena<'arena, T> {
_lives: PhantomData<&'arena T>,
_drops: PhantomData<T>,
chunks: RefCell<Vec<ArenaChunk<T>>>,
head: Cell<*mut T>,
tail: Cell<*mut T>,
}Expand description
A TypedArena can hold many instances of a single type, and will properly Drop them when it falls out of scope.
Fields§
§_lives: PhantomData<&'arena T>§_drops: PhantomData<T>§chunks: RefCell<Vec<ArenaChunk<T>>>§head: Cell<*mut T>§tail: Cell<*mut T>Implementations§
§impl<'arena, T> TypedArena<'arena, T>
impl<'arena, T> TypedArena<'arena, T>
pub const fn new() -> TypedArena<'arena, T>
pub fn alloc(&'arena self, value: T) -> &'arena mut T
pub fn alloc_from_iter<I>(&'arena self, iter: I) -> &'arena mut [T]where
I: IntoIterator<Item = T>,
Trait Implementations§
§impl<T> Default for TypedArena<'_, T>
impl<T> Default for TypedArena<'_, T>
§fn default() -> TypedArena<'_, T>
fn default() -> TypedArena<'_, T>
Returns the “default value” for a type. Read more
§impl<T> Drop for TypedArena<'_, T>
impl<T> Drop for TypedArena<'_, T>
impl<T> Send for TypedArena<'_, T>where
T: Send,
Auto Trait Implementations§
impl<'arena, T> !Freeze for TypedArena<'arena, T>
impl<'arena, T> !RefUnwindSafe for TypedArena<'arena, T>
impl<'arena, T> !Sync for TypedArena<'arena, T>
impl<'arena, T> Unpin for TypedArena<'arena, T>where
T: Unpin,
impl<'arena, T> UnwindSafe for TypedArena<'arena, T>where
T: UnwindSafe + RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more