pub struct Trallocator<A> { /* private fields */ }
Expand description

A wapper over an allocator that allows tracebility

Implementations§

source§

impl<A> Trallocator<A>

source

pub const fn new(alloc: A) -> Self

Creates a new instance of the traceable allocator using an inner allocator

source

pub fn usage(&self) -> usize

Get the number of bytes used in the heap

source

pub fn borrow(&self) -> &A

Borrow the inner allocator. Note that using the inner allocator will prevent the allocation to be tracked. Should only be used to init the inner allocator

source

pub fn borrow_mut(&mut self) -> &mut A

Mutably borrow the inner allocator. Note that using the inner allocator will prevent the allocation to be tracked. Should only be used to init the inner allocator

Trait Implementations§

source§

impl<A: GlobalAlloc> GlobalAlloc for Trallocator<A>

source§

unsafe fn alloc(&self, l: Layout) -> *mut u8

Allocate memory as described by the given layout. Read more
source§

unsafe fn dealloc(&self, ptr: *mut u8, l: Layout)

Deallocate the block of memory at the given ptr pointer with the given layout. Read more
1.28.0 · source§

unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8

Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more
1.28.0 · source§

unsafe fn realloc( &self, ptr: *mut u8, layout: Layout, new_size: usize ) -> *mut u8

Shrink or grow a block of memory to the given new_size in bytes. The block is described by the given ptr pointer and layout. Read more

Auto Trait Implementations§

§

impl<A> RefUnwindSafe for Trallocator<A>
where A: RefUnwindSafe,

§

impl<A> Send for Trallocator<A>
where A: Send,

§

impl<A> Sync for Trallocator<A>
where A: Sync,

§

impl<A> Unpin for Trallocator<A>
where A: Unpin,

§

impl<A> UnwindSafe for Trallocator<A>
where A: UnwindSafe,

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>,

§

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>,

§

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.