BumpScopeGuardRoot

Struct BumpScopeGuardRoot 

Source
pub struct BumpScopeGuardRoot<'b, A, const MIN_ALIGN: usize = 1, const UP: bool = true, const DEALLOCATES: 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, const DEALLOCATES: bool> BumpScopeGuardRoot<'a, A, MIN_ALIGN, UP, DEALLOCATES>

Source

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

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<'a, A, UP>

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

Source

pub fn allocator(&self) -> &'a A

Returns a reference to the base allocator.

Trait Implementations§

Source§

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

Source§

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

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

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

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, const DEALLOCATES: bool> Freeze for BumpScopeGuardRoot<'b, A, MIN_ALIGN, UP, DEALLOCATES>
where MinimumAlignment<MIN_ALIGN>: Sized,

§

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

§

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

§

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

§

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

§

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

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.