Skip to main content

Alloc

Trait Alloc 

Source
pub trait Alloc {
    type Error: From<Error> + Debug + Display;

    // Required method
    fn alloc(&self, layout: Layout) -> Result<NonNull<u8>, Self::Error>;

    // Provided method
    fn zalloc(&self, layout: Layout) -> Result<NonNull<u8>, Self::Error> { ... }
}
Expand description

A memory allocation interface.

Required Associated Types§

Source

type Error: From<Error> + Debug + Display

The error type returned by this allocator.

Required Methods§

Source

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

Attempts to allocate a block of memory fitting the given Layout.

Returns a dangling pointer if layout.size() == 0.

§Errors

Errors are implementation-defined, refer to Self::Error and Error.

The standard implementations may return:

Provided Methods§

Source

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

Attempts to allocate a zeroed block of memory fitting the given Layout.

Returns a dangling pointer if layout.size() == 0.

§Errors

Errors are implementation-defined, refer to Self::Error and Error.

The standard implementations may return:

Implementations on Foreign Types§

Source§

impl Alloc for Global

Available on non-crate feature no_alloc only.
Source§

type Error = Error

Source§

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

Source§

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

Source§

impl Alloc for System

Available on crate feature std and non-crate feature no_alloc only.
Source§

type Error = Error

Source§

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

Source§

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

Source§

impl<A: Alloc + ?Sized> Alloc for &A

Source§

type Error = <A as Alloc>::Error

Source§

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

Source§

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

Source§

impl<A: Alloc + ?Sized> Alloc for &mut A

Source§

type Error = <A as Alloc>::Error

Source§

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

Source§

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

Source§

impl<A: Alloc + ?Sized> Alloc for Box<A>

Source§

type Error = <A as Alloc>::Error

Source§

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

Source§

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

Source§

impl<A: Alloc + ?Sized> Alloc for Rc<A>

Source§

type Error = <A as Alloc>::Error

Source§

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

Source§

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

Source§

impl<A: Alloc + ?Sized> Alloc for Arc<A>

Source§

type Error = <A as Alloc>::Error

Source§

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

Source§

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

Source§

impl<A: AllocMut + ?Sized> Alloc for RefCell<A>

Source§

type Error = <A as AllocMut>::Error

Source§

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

Source§

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

Source§

impl<A: AllocMut + ?Sized> Alloc for Mutex<A>

Source§

type Error = <A as AllocMut>::Error

Source§

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

Source§

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

Source§

impl<A: AllocMut + ?Sized> Alloc for RwLock<A>

Source§

type Error = <A as AllocMut>::Error

Source§

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

Source§

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

Implementors§

Source§

impl Alloc for CAlloc

Source§

impl Alloc for DefaultAlloc

Available on non-crate feature no_alloc only.