1.28.0[]Struct std::alloc::System

pub struct System;

The default memory allocator provided by the operating system.

This is based on malloc on Unix platforms and HeapAlloc on Windows, plus related functions.

This type can be used in a static item with the #[global_allocator] attribute to force the global allocator to be the system’s one. (The default is jemalloc for executables, on some platforms.)

use std::alloc::System;

#[global_allocator]
static A: System = System;

fn main() {
    let a = Box::new(4); // Allocates from the system allocator.
    println!("{}", a);
}Run

It can also be used directly to allocate memory independently of the standard library’s global allocator.

Trait Implementations

impl GlobalAlloc for System

impl Alloc for System

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Returns bounds on the guaranteed usable size of a successful allocation created with the specified layout. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Behaves like alloc, but also returns the whole size of the returned block. For some layout inputs, like arrays, this may include extra storage usable for additional data. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Behaves like realloc, but also returns the whole size of the returned block. For some layout inputs, like arrays, this may include extra storage usable for additional data. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Attempts to extend the allocation referenced by ptr to fit new_size. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Attempts to shrink the allocation referenced by ptr to fit new_size. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Allocates a block suitable for holding an instance of T. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Deallocates a block suitable for holding an instance of T. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Allocates a block suitable for holding n instances of T. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Reallocates a block previously suitable for holding n_old instances of T, returning a block suitable for holding n_new instances of T. Read more

🔬 This is a nightly-only experimental API. (allocator_api #32838)

Deallocates a block suitable for holding n instances of T. Read more

Auto Trait Implementations

impl Send for System

impl Sync for System

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from #33417)

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from #33417)

The type returned in the event of a conversion error.

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]