Struct bump_scope::BumpScopeGuardRoot

source ·
pub struct BumpScopeGuardRoot<'b, A, const MIN_ALIGN: usize = 1, const UP: bool = true>{ /* private fields */ }
Expand description

Returned from Bump::scope_guard.

This fulfills the same purpose as BumpScopeGuard, but it does not need to store the address which the bump pointer needs to be reset to. It simply resets the bump pointer to the very start.

It is allowed to do so because it takes a &mut Bump to create this guard. This means that no allocations can be live when the guard is created.

Implementations§

source§

impl<'a, A, const MIN_ALIGN: usize, const UP: bool> BumpScopeGuardRoot<'a, A, MIN_ALIGN, UP>

source

pub fn scope(&mut self) -> BumpScope<'_, A, MIN_ALIGN, UP>

Returns a new BumpScope.

source

pub fn reset(&mut self)

Frees the memory taken up by allocations made since creation of this bump scope guard.

source

pub fn stats(&self) -> Stats<'_, UP>

Returns a type which provides statistics about the memory usage of the bump allocator.

source

pub fn guaranteed_allocated_stats(&self) -> GuaranteedAllocatedStats<'_, UP>

Returns a type which provides statistics about the memory usage of the bump allocator.

source

pub fn allocator(&self) -> &A

Returns a reference to the base allocator.

Trait Implementations§

source§

impl<'b, A, const MIN_ALIGN: usize, const UP: bool> Debug for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>

source§

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

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

impl<'a, A, const MIN_ALIGN: usize, const UP: bool> Drop for BumpScopeGuardRoot<'a, A, MIN_ALIGN, UP>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'b, A, const MIN_ALIGN: usize, const UP: bool> Freeze for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>
where MinimumAlignment<MIN_ALIGN>: Sized,

§

impl<'b, A, const MIN_ALIGN: usize = 1, const UP: bool = true> !RefUnwindSafe for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>

§

impl<'b, A, const MIN_ALIGN: usize = 1, const UP: bool = true> !Send for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>

§

impl<'b, A, const MIN_ALIGN: usize = 1, const UP: bool = true> !Sync for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>

§

impl<'b, A, const MIN_ALIGN: usize, const UP: bool> Unpin for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>
where MinimumAlignment<MIN_ALIGN>: Sized,

§

impl<'b, A, const MIN_ALIGN: usize = 1, const UP: bool = true> !UnwindSafe for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP>

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.