pub struct HeapArena { /* private fields */ }Expand description
A memory arena for temporary allocations
This provides push/pop semantics similar to zsh’s heap management, but uses Rust’s standard memory management under the hood.
Implementations§
Source§impl HeapArena
impl HeapArena
pub fn new() -> Self
Sourcepub fn free_current(&mut self)
pub fn free_current(&mut self)
Free allocations in current generation but keep generation marker (like zsh’s freeheap)
Sourcepub fn alloc_string(&mut self, s: String) -> &str
pub fn alloc_string(&mut self, s: String) -> &str
Allocate a string in the current generation
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HeapArena
impl RefUnwindSafe for HeapArena
impl Send for HeapArena
impl Sync for HeapArena
impl Unpin for HeapArena
impl UnsafeUnpin for HeapArena
impl UnwindSafe for HeapArena
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more