pub unsafe trait Allocator {
    // Required methods
    fn alloc(&mut self, size: usize) -> *mut u8;
    fn calloc(&mut self, count: usize, size: usize) -> *mut u8;
    unsafe fn dealloc(&mut self, ptr: *mut u8);
    unsafe fn realloc(&mut self, ptr: *mut u8, new_size: usize) -> *mut u8;
    unsafe fn usable_size(ptr: *mut u8) -> usize
       where Self: Sized;
}Available on crate feature 
allocator only.Expand description
The allocator interface
§Safety
Failure to implement this trait correctly will result in undefined behavior.
- allocmust return a either a null pointer or a pointer to an available region of memory atleast- sizebytes and aligned to the size of- usize.
- reallocmust either return a null pointer or return a pointer to an available region of memory atleast- new_sizebytes and aligned to the size of- usize.
- usable_sizemust return the amount of available memory for any allocation allocated with this allocator.
Required Methods§
Sourcefn calloc(&mut self, count: usize, size: usize) -> *mut u8
 
fn calloc(&mut self, count: usize, size: usize) -> *mut u8
Allocates memory for an array of num objects of size and initializes all bytes in the allocated storage to zero.
Sourceunsafe fn dealloc(&mut self, ptr: *mut u8)
 
unsafe fn dealloc(&mut self, ptr: *mut u8)
De-allocate previously allocated memory
§Safety
Caller must ensure that the pointer that is being deallocated was allocated by the same Allocator instance.