Struct MetricAlloc

Source
pub struct MetricAlloc<A: GlobalAlloc> { /* private fields */ }
Expand description

A global allocator type that tracks allocation metrics.

This type makes use of shared memory in order to aggregate metrics while still supporting arbitrary global allocator composition. Because of this, there should only ever be at most one instance of it (hence being a global allocator).

Implementations§

Source§

impl<A: GlobalAlloc> MetricAlloc<A>

Source

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

Wraps an existing global allocator into a metric allocator.

Trait Implementations§

Source§

impl<A: GlobalAlloc> GlobalAlloc for MetricAlloc<A>

Source§

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

Allocates memory as described by the given layout. Read more
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
Source§

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

Deallocates the block of memory at the given ptr pointer with the given layout. Read more
Source§

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

Shrinks or grows 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> Freeze for MetricAlloc<A>
where A: Freeze,

§

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

§

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

§

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

§

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

§

impl<A> UnwindSafe for MetricAlloc<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>,

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.