pub struct UnifiedAllocator { /* private fields */ }Expand description
Unified allocator interface that can use different allocation strategies
Implementations§
Source§impl UnifiedAllocator
impl UnifiedAllocator
Sourcepub fn new(
base_ptr: NonNull<u8>,
total_size: usize,
config: UnifiedConfig,
) -> Result<Self, AllocationError>
pub fn new( base_ptr: NonNull<u8>, total_size: usize, config: UnifiedConfig, ) -> Result<Self, AllocationError>
Create a new unified allocator
Sourcepub fn allocate(
&mut self,
size: usize,
requested_allocator_type: AllocatorType,
_alignment: Option<usize>,
) -> Result<NonNull<u8>, AllocationError>
pub fn allocate( &mut self, size: usize, requested_allocator_type: AllocatorType, _alignment: Option<usize>, ) -> Result<NonNull<u8>, AllocationError>
Allocate memory using the unified interface
Sourcepub fn deallocate(
&mut self,
ptr: NonNull<u8>,
size: usize,
) -> Result<(), AllocationError>
pub fn deallocate( &mut self, ptr: NonNull<u8>, size: usize, ) -> Result<(), AllocationError>
Deallocate memory
Sourcepub fn free(
&mut self,
ptr: *mut c_void,
_allocator_type: AllocatorType,
) -> Result<(), AllocationError>
pub fn free( &mut self, ptr: *mut c_void, _allocator_type: AllocatorType, ) -> Result<(), AllocationError>
Free memory (alias for deallocate)
Sourcepub fn reallocate(
&mut self,
ptr: *mut c_void,
new_size: usize,
_allocator_type: AllocatorType,
) -> Result<*mut c_void, AllocationError>
pub fn reallocate( &mut self, ptr: *mut c_void, new_size: usize, _allocator_type: AllocatorType, ) -> Result<*mut c_void, AllocationError>
Reallocate memory with new size
Sourcepub fn get_stats(&self) -> &UnifiedStats
pub fn get_stats(&self) -> &UnifiedStats
Get unified statistics
Sourcepub fn get_detailed_info(&self) -> DetailedAllocatorInfo
pub fn get_detailed_info(&self) -> DetailedAllocatorInfo
Get detailed allocator information
Sourcepub fn reset_allocator(
&mut self,
allocator_type: AllocatorType,
) -> Result<(), AllocationError>
pub fn reset_allocator( &mut self, allocator_type: AllocatorType, ) -> Result<(), AllocationError>
Reset specific allocator
Sourcepub fn garbage_collect(&mut self) -> GarbageCollectionResult
pub fn garbage_collect(&mut self) -> GarbageCollectionResult
Force garbage collection on applicable allocators
Sourcepub fn optimize_strategies(&mut self) -> Result<(), AllocationError>
pub fn optimize_strategies(&mut self) -> Result<(), AllocationError>
Optimize allocation strategies based on performance data
Trait Implementations§
impl Send for UnifiedAllocator
impl Sync for UnifiedAllocator
Auto Trait Implementations§
impl Freeze for UnifiedAllocator
impl RefUnwindSafe for UnifiedAllocator
impl Unpin for UnifiedAllocator
impl UnwindSafe for UnifiedAllocator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more