Skip to main content

DefaultAlloc

Struct DefaultAlloc 

Source
pub struct DefaultAlloc;
Expand description

Default allocator, delegating to the global allocator.

§Note

This must not be set as the global allocator (via #[global_allocator]). Doing so will lead to infinite recursion, as the allocation functions this calls (in alloc::alloc) delegate to the global allocator.

Trait Implementations§

Source§

impl Alloc for DefaultAlloc

Available on non-crate feature no_alloc only.
Source§

type Error = Error

The error type returned by this allocator.
Source§

fn alloc(&self, layout: Layout) -> Result<NonNull<u8>, Error>

Attempts to allocate a block of memory fitting the given Layout. Read more
Source§

fn zalloc(&self, layout: Layout) -> Result<NonNull<u8>, Error>

Attempts to allocate a zeroed block of memory fitting the given Layout. Read more
Source§

impl Allocator for DefaultAlloc

Source§

fn allocate(&self, layout: StdLayout) -> 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: StdLayout, ) -> 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 more
Source§

unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: StdLayout)

🔬This is a nightly-only experimental API. (allocator_api)
Deallocates the memory referenced by ptr. Read more
Source§

unsafe fn grow( &self, ptr: NonNull<u8>, old_layout: StdLayout, new_layout: StdLayout, ) -> 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: StdLayout, new_layout: StdLayout, ) -> 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 more
Source§

unsafe fn shrink( &self, ptr: NonNull<u8>, old_layout: StdLayout, new_layout: StdLayout, ) -> Result<NonNull<[u8]>, AllocError>

🔬This is a nightly-only experimental API. (allocator_api)
Attempts to shrink the memory block. Read more
Source§

fn by_ref(&self) -> &Self
where Self: Sized,

🔬This is a nightly-only experimental API. (allocator_api)
Creates a “by reference” adapter for this instance of Allocator. Read more
Source§

impl Clone for DefaultAlloc

Source§

fn clone(&self) -> DefaultAlloc

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Dealloc for DefaultAlloc

Available on non-crate feature no_alloc only.
Source§

unsafe fn dealloc(&self, ptr: NonNull<u8>, layout: Layout)

Deallocates a previously allocated block. Read more
Source§

unsafe fn try_dealloc( &self, ptr: NonNull<u8>, layout: Layout, ) -> Result<(), Error>

Attempts to deallocate a previously allocated block. If this allocator is backed by an allocation library which does not provide fallible deallocation operations, this may panic, abort, or incorrectly return Ok(()). Read more
Source§

impl Debug for DefaultAlloc

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DefaultAlloc

Source§

fn default() -> DefaultAlloc

Returns the “default value” for a type. Read more
Source§

impl GlobalAlloc for DefaultAlloc

Available on non-crate feature no_alloc only.
Source§

unsafe fn alloc(&self, layout: StdLayout) -> *mut u8

Allocates memory as described by the given layout. Read more
Source§

unsafe fn dealloc(&self, ptr: *mut u8, layout: StdLayout)

Deallocates the block of memory at the given ptr pointer with the given layout. Read more
Source§

unsafe fn alloc_zeroed(&self, layout: StdLayout) -> *mut u8

Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more
Source§

unsafe fn realloc( &self, ptr: *mut u8, layout: StdLayout, new_size: usize, ) -> *mut u8

Shrinks or grows a block of memory to the given new_size in bytes. The block is described by the given ptr pointer and layout. Read more
Source§

impl Grow for DefaultAlloc

Available on non-crate feature no_alloc only.
Source§

unsafe fn grow( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, Self::Error>

Grow the given block to a new, larger layout. Read more
Source§

unsafe fn zgrow( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, Self::Error>

Grows the given block to a new, larger layout, with extra bytes being zeroed. Read more
Source§

impl Hash for DefaultAlloc

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for DefaultAlloc

Source§

fn cmp(&self, other: &DefaultAlloc) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for DefaultAlloc

Source§

fn eq(&self, other: &DefaultAlloc) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for DefaultAlloc

Source§

fn partial_cmp(&self, other: &DefaultAlloc) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Realloc for DefaultAlloc

Available on non-crate feature no_alloc only.
Source§

unsafe fn realloc( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, Self::Error>

Reallocates a block, growing or shrinking as needed. Read more
Source§

unsafe fn rezalloc( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, Self::Error>

Reallocates a block, growing or shrinking as needed, with extra bytes being zeroed. Read more
Source§

impl Shrink for DefaultAlloc

Available on non-crate feature no_alloc only.
Source§

unsafe fn shrink( &self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, Self::Error>

Shrink the given block to a new, smaller layout. Read more
Source§

impl Copy for DefaultAlloc

Source§

impl Eq for DefaultAlloc

Source§

impl StructuralPartialEq for DefaultAlloc

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<A> AllocMut for A
where A: Alloc + ?Sized,

Source§

type Error = <A as Alloc>::Error

The error type returned by this allocator.
Source§

fn alloc_mut( &mut self, layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Attempts to allocate a block of memory fitting the given Layout. Read more
Source§

fn zalloc_mut( &mut self, layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Attempts to allocate a zeroed block of memory fitting the given Layout. Read more
Source§

impl<A> AllocTemp for A
where A: BasicAlloc,

Source§

type Error = <A as Alloc>::Error

The error type returned by this allocator.
Source§

unsafe fn alloc_temp<R, F>( &self, layout: Layout, with_mem: F, ) -> Result<R, <A as Alloc>::Error>
where F: FnOnce(NonNull<u8>) -> R,

Attempts to allocate a block of memory fitting the given Layout, and calls with_mem on the returned pointer on success. Read more
Source§

unsafe fn zalloc_temp<R, F>( &self, layout: Layout, with_mem: F, ) -> Result<R, <A as Alloc>::Error>
where F: FnOnce(NonNull<u8>) -> R,

Attempts to allocate a block of zeroed memory fitting the given Layout, and calls with_mem on the returned pointer on success. Read more
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<A> DeallocMut for A
where A: Dealloc + ?Sized,

Source§

unsafe fn dealloc_mut(&mut self, ptr: NonNull<u8>, layout: Layout)

Deallocates a previously allocated block. Read more
Source§

unsafe fn try_dealloc_mut( &mut self, ptr: NonNull<u8>, layout: Layout, ) -> Result<(), <A as AllocMut>::Error>

Attempts to deallocate a previously allocated block. If this allocator is backed by an allocation library which does not provide fallible deallocation operations, this may panic, abort, or incorrectly return Ok(()). Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A> GrowMut for A
where A: Grow + ?Sized,

Source§

unsafe fn grow_mut( &mut self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Grows the given block to a new, larger layout. Read more
Source§

unsafe fn zgrow_mut( &mut self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Grows the given block to a new, larger layout, with extra bytes being zeroed. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<A> ReallocMut for A
where A: Realloc + ?Sized,

Source§

unsafe fn realloc_mut( &mut self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Reallocates a block, growing or shrinking as needed. Read more
Source§

unsafe fn rezalloc_mut( &mut self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Reallocates a block, growing or shrinking as needed, with extra bytes being zeroed. Read more
Source§

impl<A> ShrinkMut for A
where A: Shrink + ?Sized,

Source§

unsafe fn shrink_mut( &mut self, ptr: NonNull<u8>, old_layout: Layout, new_layout: Layout, ) -> Result<NonNull<u8>, <A as AllocMut>::Error>

Shrinks the given block to a new, smaller layout. Read more
Source§

impl<T> SizedProps for T

Source§

const SZ: usize = _

The size of the type.
Source§

const ALN: usize = _

The alignment of the type.
Source§

const LAYOUT: Layout = _

The memory layout for the type.
Source§

const IS_ZST: bool = _

Whether the type is zero-sized.
Source§

const MAX_SLICE_LEN: usize = _

The largest safe length for a [Self].
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<A> BasicAlloc for A
where A: Alloc + Dealloc,

Source§

impl<A> BasicAllocMut for A
where A: AllocMut + DeallocMut,

Source§

impl<A> FullAlloc for A
where A: Realloc + Grow + Shrink + Alloc + Dealloc,

Source§

impl<A> FullAllocMut for A

Source§

impl<T> UnsizedCopy for T
where T: Copy,