pub struct DefaultAlloc;
Expand description
Default allocator, delegating to the global allocator.
Trait Implementations§
Source§impl Alloc for DefaultAlloc
impl Alloc for DefaultAlloc
Source§fn alloc_zeroed(&self, layout: Layout) -> Result<NonNull<u8>, AllocError>
fn alloc_zeroed(&self, layout: Layout) -> Result<NonNull<u8>, AllocError>
Source§fn alloc_filled(&self, layout: Layout, n: u8) -> Result<NonNull<u8>, AllocError>
fn alloc_filled(&self, layout: Layout, n: u8) -> Result<NonNull<u8>, AllocError>
Source§fn alloc_patterned<F: Fn(usize) -> u8>(
&self,
layout: Layout,
pattern: F,
) -> Result<NonNull<u8>, AllocError>
fn alloc_patterned<F: Fn(usize) -> u8>( &self, layout: Layout, pattern: F, ) -> Result<NonNull<u8>, AllocError>
Source§unsafe fn dealloc(&self, ptr: NonNull<u8>, layout: Layout)
unsafe fn dealloc(&self, ptr: NonNull<u8>, layout: Layout)
Deallocates a previously allocated block. Read more
Source§fn alloc_slice<T>(&self, len: usize) -> Result<NonNull<[T]>, AllocError>
fn alloc_slice<T>(&self, len: usize) -> Result<NonNull<[T]>, AllocError>
Source§fn alloc_slice_zeroed<T>(&self, len: usize) -> Result<NonNull<[T]>, AllocError>
fn alloc_slice_zeroed<T>(&self, len: usize) -> Result<NonNull<[T]>, AllocError>
Source§fn alloc_slice_filled<T>(
&self,
len: usize,
n: u8,
) -> Result<NonNull<[T]>, AllocError>
fn alloc_slice_filled<T>( &self, len: usize, n: u8, ) -> Result<NonNull<[T]>, AllocError>
Attempts to allocate a block of memory for
len
instances of T
, filled with bytes
initialized to n
. Read moreSource§fn alloc_slice_patterned<T, F: Fn(usize) -> u8>(
&self,
len: usize,
pattern: F,
) -> Result<NonNull<[T]>, AllocError>
fn alloc_slice_patterned<T, F: Fn(usize) -> u8>( &self, len: usize, pattern: F, ) -> Result<NonNull<[T]>, AllocError>
Attempts to allocate a block of memory for
len
instances of T
and
fill it by calling pattern(i)
for each byte index i
. Read moreSource§unsafe fn dealloc_n<T>(&self, ptr: NonNull<T>, n: usize)
unsafe fn dealloc_n<T>(&self, ptr: NonNull<T>, n: usize)
Deallocates a previously allocated block. Read more
Source§unsafe fn drop_and_dealloc<T: ?Sized>(&self, ptr: NonNull<T>)
unsafe fn drop_and_dealloc<T: ?Sized>(&self, ptr: NonNull<T>)
Drops the data at a pointer and deallocates its previously allocated block. Read more
Source§unsafe fn drop_and_dealloc_n<T>(&self, ptr: NonNull<T>, n: usize)
unsafe fn drop_and_dealloc_n<T>(&self, ptr: NonNull<T>, n: usize)
Drops the data at a pointer and deallocates its previously allocated block. Read more
Source§unsafe fn grow(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<u8>, AllocError>
unsafe fn grow( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, AllocError>
Grow the given block to a new, larger layout. Read more
Source§unsafe fn grow_zeroed(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<u8>, AllocError>
unsafe fn grow_zeroed( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, AllocError>
Grows the given block to a new, larger layout, zeroing newly allocated space. Read more
Source§unsafe fn grow_patterned<F: Fn(usize) -> u8>(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
pattern: F,
) -> Result<NonNull<u8>, AllocError>
unsafe fn grow_patterned<F: Fn(usize) -> u8>( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, pattern: F, ) -> Result<NonNull<u8>, AllocError>
Grow the given block to a new, larger layout, filling any newly allocated
bytes by calling
pattern(i)
for each new byte index i
. Read moreSource§fn grow_filled(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
n: u8,
) -> Result<NonNull<u8>, AllocError>
fn grow_filled( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, n: u8, ) -> Result<NonNull<u8>, AllocError>
Grows the given block to a new, larger layout, filling newly allocated space with
n
. Read moreSource§unsafe fn shrink(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<u8>, AllocError>
unsafe fn shrink( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, AllocError>
Shrink the given block to a new, smaller layout. Read more
Source§unsafe fn realloc(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<u8>, AllocError>
unsafe fn realloc( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, AllocError>
Reallocate a block, growing or shrinking as needed (no zeroing). Read more
Source§unsafe fn realloc_zeroed(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<u8>, AllocError>
unsafe fn realloc_zeroed( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, AllocError>
Reallocate a block, growing or shrinking as needed, zeroing any newly
allocated bytes. Read more
Source§unsafe fn realloc_patterned<F: Fn(usize) -> u8>(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
pattern: F,
) -> Result<NonNull<u8>, AllocError>
unsafe fn realloc_patterned<F: Fn(usize) -> u8>( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, pattern: F, ) -> Result<NonNull<u8>, AllocError>
Reallocate a block, growing or shrinking as needed, filling any new
bytes by calling
pattern(i)
for each new byte index i
. Read moreSource§impl Allocator for DefaultAlloc
impl Allocator for DefaultAlloc
Source§fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
🔬This is a nightly-only experimental API. (
allocator_api
)Attempts to allocate a block of memory. Read more
Source§fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
🔬This is a nightly-only experimental API. (
allocator_api
)Behaves like
allocate
, but also ensures that the returned memory is zero-initialized. Read moreSource§unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
🔬This is a nightly-only experimental API. (
allocator_api
)Deallocates the memory referenced by
ptr
. Read moreSource§unsafe fn grow(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>
unsafe fn grow( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<[u8]>, AllocError>
🔬This is a nightly-only experimental API. (
allocator_api
)Attempts to extend the memory block. Read more
Source§unsafe fn grow_zeroed(
&self,
ptr: NonNull<u8>,
old_layout: Layout,
new_layout: Layout,
) -> Result<NonNull<[u8]>, AllocError>
unsafe fn grow_zeroed( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<[u8]>, AllocError>
🔬This is a nightly-only experimental API. (
allocator_api
)Behaves like
grow
, but also ensures that the new contents are set to zero before being
returned. Read moreSource§impl Clone for DefaultAlloc
impl Clone for DefaultAlloc
Source§fn clone(&self) -> DefaultAlloc
fn clone(&self) -> DefaultAlloc
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for DefaultAlloc
impl Debug for DefaultAlloc
Source§impl Default for DefaultAlloc
impl Default for DefaultAlloc
Source§fn default() -> DefaultAlloc
fn default() -> DefaultAlloc
Returns the “default value” for a type. Read more
Source§impl GlobalAlloc for DefaultAlloc
impl GlobalAlloc for DefaultAlloc
Source§unsafe fn alloc(&self, layout: Layout) -> *mut u8
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocates memory as described by the given
layout
. Read moreSource§impl Hash for DefaultAlloc
impl Hash for DefaultAlloc
Source§impl Ord for DefaultAlloc
impl Ord for DefaultAlloc
Source§fn cmp(&self, other: &DefaultAlloc) -> Ordering
fn cmp(&self, other: &DefaultAlloc) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for DefaultAlloc
impl PartialEq for DefaultAlloc
Source§impl PartialOrd for DefaultAlloc
impl PartialOrd for DefaultAlloc
impl Copy for DefaultAlloc
impl Eq for DefaultAlloc
impl StructuralPartialEq for DefaultAlloc
Auto Trait Implementations§
impl Freeze for DefaultAlloc
impl RefUnwindSafe for DefaultAlloc
impl Send for DefaultAlloc
impl Sync for DefaultAlloc
impl Unpin for DefaultAlloc
impl UnwindSafe for DefaultAlloc
Blanket Implementations§
Source§impl<A> AllocExt for Awhere
A: Alloc,
impl<A> AllocExt for Awhere
A: Alloc,
Source§fn alloc_init<T, I: Fn(NonNull<T>)>(
&self,
init: I,
) -> Result<NonNull<T>, AllocError>
fn alloc_init<T, I: Fn(NonNull<T>)>( &self, init: I, ) -> Result<NonNull<T>, AllocError>
Source§fn alloc_init_slice<T, I: Fn(NonNull<[T]>)>(
&self,
init: I,
len: usize,
) -> Result<NonNull<[T]>, AllocError>
fn alloc_init_slice<T, I: Fn(NonNull<[T]>)>( &self, init: I, len: usize, ) -> Result<NonNull<[T]>, AllocError>
Source§fn alloc_default<T: Default>(&self) -> Result<NonNull<T>, AllocError>
fn alloc_default<T: Default>(&self) -> Result<NonNull<T>, AllocError>
Source§fn alloc_default_slice<T: Default>(
&self,
len: usize,
) -> Result<NonNull<[T]>, AllocError>
fn alloc_default_slice<T: Default>( &self, len: usize, ) -> Result<NonNull<[T]>, AllocError>
Allocates uninitialized memory for a
[T]
of length len
and fills each element
with T
’s default value. Read moreSource§fn alloc_write<T>(&self, data: T) -> Result<NonNull<T>, AllocError>
fn alloc_write<T>(&self, data: T) -> Result<NonNull<T>, AllocError>
Source§fn alloc_clone_to<T: CloneToUninit + ?Sized>(
&self,
data: &T,
) -> Result<NonNull<T>, AllocError>
fn alloc_clone_to<T: CloneToUninit + ?Sized>( &self, data: &T, ) -> Result<NonNull<T>, AllocError>
Source§fn alloc_clone_slice_to<T: Clone>(
&self,
data: &[T],
) -> Result<NonNull<[T]>, AllocError>
fn alloc_clone_slice_to<T: Clone>( &self, data: &[T], ) -> Result<NonNull<[T]>, AllocError>
Allocates uninitialized memory for a slice of
T
and clones each element. Read moreSource§fn alloc_slice_with<T, F: Fn(usize) -> T>(
&self,
len: usize,
f: F,
) -> Result<NonNull<[T]>, AllocError>
fn alloc_slice_with<T, F: Fn(usize) -> T>( &self, len: usize, f: F, ) -> Result<NonNull<[T]>, AllocError>
Allocates uninitialized memory for a
[T]
of length len
and fills each element
with the result of f(elem_idx)
. Read moreSource§unsafe fn grow_slice<T>(
&self,
ptr: NonNull<[T]>,
new_len: usize,
) -> Result<NonNull<[T]>, AllocError>
unsafe fn grow_slice<T>( &self, ptr: NonNull<[T]>, new_len: usize, ) -> Result<NonNull<[T]>, AllocError>
Grows a slice to a new length. Read more
Source§unsafe fn grow_raw_slice<T>(
&self,
ptr: NonNull<T>,
len: usize,
new_len: usize,
) -> Result<NonNull<[T]>, AllocError>
unsafe fn grow_raw_slice<T>( &self, ptr: NonNull<T>, len: usize, new_len: usize, ) -> Result<NonNull<[T]>, AllocError>
Grows a slice to a new length given the pointer to its first element, current length, and
requested length. Read more
Source§unsafe fn zero_and_dealloc(&self, ptr: NonNull<u8>, layout: Layout)
unsafe fn zero_and_dealloc(&self, ptr: NonNull<u8>, layout: Layout)
Zeroes and deallocates the memory at a pointer. Read more
Source§unsafe fn dealloc_typed<T: ?Sized>(&self, ptr: NonNull<T>)
unsafe fn dealloc_typed<T: ?Sized>(&self, ptr: NonNull<T>)
Deallocates a pointer’s memory. Read more
Source§unsafe fn zero_and_dealloc_typed<T: ?Sized>(&self, ptr: NonNull<T>)
unsafe fn zero_and_dealloc_typed<T: ?Sized>(&self, ptr: NonNull<T>)
Zeroes and deallocates the memory at a pointer. Read more
Source§unsafe fn dealloc_slice<T>(&self, slice_ptr: NonNull<[T]>)
unsafe fn dealloc_slice<T>(&self, slice_ptr: NonNull<[T]>)
Deallocates a previously cloned or written slice of
T
. Read moreSource§unsafe fn drop_and_dealloc_slice<T>(&self, slice_ptr: NonNull<[T]>)
unsafe fn drop_and_dealloc_slice<T>(&self, slice_ptr: NonNull<[T]>)
Drops and deallocates a previously cloned or written slice of
T
. Read moreSource§unsafe fn drop_zero_and_dealloc<T: ?Sized>(&self, ptr: NonNull<T>)
unsafe fn drop_zero_and_dealloc<T: ?Sized>(&self, ptr: NonNull<T>)
Drops the value at the given pointer, then zeroes and deallocates its memory. Read more
Source§fn alloc_copy_ref_to<T: ?Sized + UnsizedCopy>(
&self,
data: &T,
) -> Result<NonNull<T>, AllocError>
fn alloc_copy_ref_to<T: ?Sized + UnsizedCopy>( &self, data: &T, ) -> Result<NonNull<T>, AllocError>
Source§unsafe fn alloc_copy_ptr_to<T: ?Sized + UnsizedCopy>(
&self,
data: *const T,
) -> Result<NonNull<T>, AllocError>
unsafe fn alloc_copy_ptr_to<T: ?Sized + UnsizedCopy>( &self, data: *const T, ) -> Result<NonNull<T>, AllocError>
Source§unsafe fn alloc_copy_ref_to_unchecked<T: ?Sized>(
&self,
data: &T,
) -> Result<NonNull<T>, AllocError>
unsafe fn alloc_copy_ref_to_unchecked<T: ?Sized>( &self, data: &T, ) -> Result<NonNull<T>, AllocError>
Allocates and copies an unsized
T
by reference without requiring
T:
UnsizedCopy
, returning a NonNull<T>
. Read moreSource§unsafe fn alloc_copy_ptr_to_unchecked<T: ?Sized + UnsizedCopy>(
&self,
data: *const T,
) -> Result<NonNull<T>, AllocError>
unsafe fn alloc_copy_ptr_to_unchecked<T: ?Sized + UnsizedCopy>( &self, data: *const T, ) -> Result<NonNull<T>, AllocError>
Allocates and copies an unsized
T
by raw pointer without requiring
T:
UnsizedCopy
, returning a NonNull<T>
. Read moreSource§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