pub trait Allocator: Clone
{
const PAGE_SIZE: usize = 4096;
const CACHE_LINE_SIZE: usize = 64;
#[inline(always)]
fn align_malloc_page_size<P>(&mut self) -> NonNull<P>
{
self.align_malloc(Self::PAGE_SIZE)
}
#[inline(always)]
fn align_malloc_cache_line_size<P>(&mut self) -> NonNull<P>
{
self.align_malloc(Self::CACHE_LINE_SIZE)
}
#[inline(always)]
fn align_malloc<P>(&mut self, alignment: usize) -> NonNull<P>;
#[inline(always)]
fn free_page_size<P>(&mut self, pointer: NonNull<P>);
#[inline(always)]
fn free_cache_line_size<P>(&mut self, pointer: NonNull<P>);
#[inline(always)]
fn free<P>(&mut self, pointer: NonNull<P>);
}