use core::{alloc::Layout, ptr::NonNull};
use crate::Arena;
#[cfg(feature = "allocator-api2")]
unsafe impl allocator_api2::alloc::Allocator for Arena {
#[inline]
fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, allocator_api2::alloc::AllocError> {
self.try_alloc_layout(layout)
.map_err(|_| allocator_api2::alloc::AllocError)
}
#[inline]
unsafe fn deallocate(&self, _ptr: NonNull<u8>, _layout: Layout) {
}
}
#[cfg(nightly)]
unsafe impl core_alloc::alloc::Allocator for Arena {
#[inline]
fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, core_alloc::alloc::AllocError> {
self.try_alloc_layout(layout)
.map_err(|_| core_alloc::alloc::AllocError)
}
#[inline]
unsafe fn deallocate(&self, _ptr: NonNull<u8>, _layout: Layout) {
}
}