Enum AllocatorType

Source
pub enum AllocatorType {
    MimallocSecure,
    Mimalloc,
    EmbeddedHeap,
    System,
}
Expand description

Memory allocator type enumeration

Represents all memory allocator types supported by auto-allocator. Selection priority: mimalloc > embedded > system

§Performance Characteristics

§Automatic Selection Logic

  1. Modern Linux: mimalloc (if GCC 4.9+ and stdatomic.h available)
  2. Legacy Linux: Compilation error with upgrade guidance
  3. Windows/macOS: mimalloc (always available)
  4. Mobile/BSD: System allocators (platform compliance)
  5. Embedded (target_os = "none"): embedded-alloc (all no_std architectures)

§Example

use auto_allocator;

let info = auto_allocator::get_allocator_info();
match info.allocator_type {
    auto_allocator::AllocatorType::Mimalloc => {
        println!("Using mimalloc - optimal performance");
    }
    auto_allocator::AllocatorType::System => {
        println!("Using system allocator - platform compliance");
    }
    _ => println!("Using other allocator"),
}

Variants§

§

MimallocSecure

Security-hardened mimalloc allocator

Microsoft-developed allocator with enhanced security features. ~10% performance overhead for comprehensive heap protection. Available when secure feature is enabled on compatible platforms.

§

Mimalloc

High-performance mimalloc allocator

Microsoft-developed allocator optimized for multi-threaded workloads. Automatically selected on modern systems with GCC 4.9+ and stdatomic.h.

§

EmbeddedHeap

Embedded systems allocator

Lightweight allocator designed for resource-constrained environments. Automatically selected on embedded architectures.

§

System

System default allocator

Operating system provided allocator, maximum compatibility. Selected for debug builds, WASM, mobile, and platforms with optimized native allocators.

Trait Implementations§

Source§

impl Clone for AllocatorType

Source§

fn clone(&self) -> AllocatorType

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AllocatorType

Source§

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

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

impl PartialEq for AllocatorType

Source§

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

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

const 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 Copy for AllocatorType

Source§

impl Eq for AllocatorType

Source§

impl StructuralPartialEq for AllocatorType

Auto Trait Implementations§

Blanket Implementations§

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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.