Struct ScopeArena

Source
pub struct ScopeArena { /* private fields */ }
Expand description

An arena for allocating ScopeGuards.

Functions as a memory pool for allocating various trait objects needed for dropping type-erased ElasticGuards. Each time the scope method is called, the arena will have some allocations made; to free these, ScopeArena::reset should be called.

Implementations§

Source§

impl ScopeArena

Source

pub fn new() -> Self

Create an empty scope arena.

Source

pub fn scope<'a, F, R>(&'a self, f: F) -> R
where F: FnOnce(&mut ScopeGuard<'a>) -> R,

Create a scope within which we can safely loan elastics.

This method does not reset the arena afterwards, so if you use it, it is your responsibility to reset the ScopeArena with ScopeArena::reset to avoid memory leaks.

Source

pub fn reset(&mut self)

Clear memory allocated by the arena, preserving the allocations for reuse.

Trait Implementations§

Source§

impl Debug for ScopeArena

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ScopeArena

Source§

fn default() -> ScopeArena

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.