Trait Allocator
Source pub trait Allocator {
// Required methods
unsafe fn allocate(
&mut self,
layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>;
unsafe fn deallocate(&mut self, ptr: NonNull<u8>, layout: Layout);
unsafe fn grow(
&mut self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>;
unsafe fn shrink(
&mut self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>;
// Provided methods
unsafe fn allocate_zeroed(
&mut self,
layout: Layout,
) -> Result<NonNull<[u8]>, AllocError> { ... }
unsafe fn grow_zeroed(
&mut self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError> { ... }
fn by_ref(&self) -> &Self
where Self: Sized { ... }
}