pub trait Allocator {
fn allocate(&mut self, layout: Layout) -> Result<*mut u8>;
fn release(&mut self, addr: *mut u8, layout: Layout);
fn new<T>(&mut self) -> Result<*mut T> { ... }
fn delete<T>(&mut self, t: *mut T) { ... }
}
pub trait Allocator {
fn allocate(&mut self, layout: Layout) -> Result<*mut u8>;
fn release(&mut self, addr: *mut u8, layout: Layout);
fn new<T>(&mut self) -> Result<*mut T> { ... }
fn delete<T>(&mut self, t: *mut T) { ... }
}