Skip to main content

DefaultAlloc

Struct DefaultAlloc 

Source
pub struct DefaultAlloc;
Expand description

Default allocator, delegating to the global allocator.

Trait Implementations§

Source§

impl Alloc for DefaultAlloc

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 AllocDescriptor for DefaultAlloc

Source§

type Error = Error

The error type returned by this allocator.
Source§

const FEATURES: AllocFeatures = _

Bitflags for the allocator’s supported features.
Source§

const MIN_ALIGN: NonZeroUsize = _

The minimum alignment returned by all allocation calls made to this allocator.
Source§

fn supports(features: AllocFeatures) -> bool

Returns whether this allocator supports the featureset represented by the provided bitflags.
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§

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§

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 more
Source§

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>

🔬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: Layout, new_layout: Layout, ) -> Result<NonNull<[u8]>, AllocError>

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

impl Clone for DefaultAlloc

Source§

fn clone(&self) -> DefaultAlloc

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for DefaultAlloc

Source§

impl Dealloc for DefaultAlloc

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 Eq for DefaultAlloc

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 (const: unstable) · Source§

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

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

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

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

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

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

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl PartialEq for DefaultAlloc

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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

Source§

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

Reallocates a block, growing or shrinking as needed. The new alignment may be larger or the same, but cannot be smaller. Read more
Source§

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

Reallocates a block, growing or shrinking as needed, with extra bytes being zeroed. The new alignment may be larger or the same, but cannot be smaller. Read more
Source§

impl StructuralPartialEq for DefaultAlloc

Source§

impl ZstAlloc for DefaultAlloc

Source§

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

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

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

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

impl ZstDealloc for DefaultAlloc

Source§

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

Deallocates a previously allocated block. Read more
Source§

unsafe fn try_dealloc(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 ZstRealloc for DefaultAlloc

Source§

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

Reallocates a block, growing or shrinking as needed. The new alignment may be larger or the same, but cannot be smaller. Read more
Source§

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

Reallocates a block, growing or shrinking as needed, with extra bytes being zeroed. The new alignment may be larger or the same, but cannot be smaller. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn alloc_mut( &mut self, layout: Layout, ) -> Result<NonNull<u8>, <A as AllocDescriptor>::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 AllocDescriptor>::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§

unsafe fn alloc_temp<R, F>( &self, layout: Layout, with_mem: F, ) -> Result<R, <A as AllocDescriptor>::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 AllocDescriptor>::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<A> BasicAlloc for A
where A: Alloc + Dealloc,

Source§

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

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 AllocDescriptor>::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> FullAlloc for A
where A: Realloc + Alloc + Dealloc,

Source§

impl<A> FullAllocMut for A

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<T> KnownAlign for T

Source§

const ALN: usize = const ALN: usize = align_of::<T>();

The alignment of the type.
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 AllocDescriptor>::Error>

Reallocates a block, growing or shrinking as needed. The new alignment may be larger or the same, but cannot be smaller. Read more
Source§

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

Reallocates a block, growing or shrinking as needed, with extra bytes being zeroed. The new alignment may be larger or the same, but cannot be smaller. Read more
Source§

impl<T> SizedProps for T

Source§

const SZ: usize = _

The size 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§

const DANGLING_PTR: NonNull<Self> = _

A valid, dangling pointer for this layout’s alignment. Read more
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 = !

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<T> UnsizedCopy for T
where T: Copy,

Source§

impl<A> ZstAllocTemp for A
where A: ZstBasicAlloc,

Source§

unsafe fn alloc_temp<R, F>( layout: Layout, with_mem: F, ) -> Result<R, <A as AllocDescriptor>::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>( layout: Layout, with_mem: F, ) -> Result<R, <A as AllocDescriptor>::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<A> ZstBasicAlloc for A
where A: ZstAlloc + ZstDealloc,

Source§

impl<A> ZstFullAlloc for A