Heap

Struct Heap 

Source
pub struct Heap<const SIZE: usize> { /* private fields */ }
Expand description

The simplest possible heap.

§Safety

Because it’s the simplest implementation, it does NOT free memory. Any memory you drop cannot be reused (it’s leaked), so avoid dropping anything whenever possible.

It is recommended that you use embedded-alloc

Implementations§

Source§

impl<const SIZE: usize> Heap<SIZE>

Source

pub const fn new() -> Self

Create a new heap allocator

Source

pub fn used(&self) -> usize

Returns an estimate of the amount of bytes in use.

Trait Implementations§

Source§

impl<const SIZE: usize> GlobalAlloc for Heap<SIZE>

Source§

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

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

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§

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<const SIZE: usize> !Freeze for Heap<SIZE>

§

impl<const SIZE: usize> !RefUnwindSafe for Heap<SIZE>

§

impl<const SIZE: usize> Send for Heap<SIZE>

§

impl<const SIZE: usize> Sync for Heap<SIZE>

§

impl<const SIZE: usize> Unpin for Heap<SIZE>

§

impl<const SIZE: usize> UnwindSafe for Heap<SIZE>

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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.
§

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

Performs the conversion.