[][src]Trait alloc_compose::CallbackRef

pub unsafe trait CallbackRef {
    fn before_alloc(&self, layout: Layout) { ... }
fn after_alloc(
        &self,
        layout: Layout,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_alloc_zeroed(&self, layout: Layout) { ... }
fn after_alloc_zeroed(
        &self,
        layout: Layout,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_alloc_all(&self, layout: Layout) { ... }
fn after_alloc_all(
        &self,
        layout: Layout,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_alloc_all_zeroed(&self, layout: Layout) { ... }
fn after_alloc_all_zeroed(
        &self,
        layout: Layout,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_dealloc(&self, ptr: NonNull<u8>, layout: Layout) { ... }
fn after_dealloc(&self, ptr: NonNull<u8>, layout: Layout) { ... }
fn before_dealloc_all(&self) { ... }
fn after_dealloc_all(&self) { ... }
fn before_grow(&self, ptr: NonNull<u8>, layout: Layout, new_size: usize) { ... }
fn after_grow(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_grow_zeroed(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize
    ) { ... }
fn after_grow_zeroed(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_grow_in_place(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize
    ) { ... }
fn after_grow_in_place(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize,
        result: Result<usize, AllocErr>
    ) { ... }
fn before_grow_in_place_zeroed(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize
    ) { ... }
fn after_grow_in_place_zeroed(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize,
        result: Result<usize, AllocErr>
    ) { ... }
fn before_shrink(&self, ptr: NonNull<u8>, layout: Layout, new_size: usize) { ... }
fn after_shrink(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize,
        result: Result<NonNull<[u8]>, AllocErr>
    ) { ... }
fn before_shrink_in_place(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize
    ) { ... }
fn after_shrink_in_place(
        &self,
        ptr: NonNull<u8>,
        layout: Layout,
        new_size: usize,
        result: Result<usize, AllocErr>
    ) { ... }
fn before_owns(&self) { ... }
fn after_owns(&self, success: bool) { ... }
fn by_ref(&self) -> &Self { ... } }

Backend for the Proxy allocator.

As Callback is used in Proxy and AllocRef requires, that a cloned allocator must behave like the same allocator, Clone must not be implemented on types, which don't have a shared state. It's possible to use a reference by calling by_ref or to wrapping them into Rc or Arc in order to make them cloneable instead. Note, that Box, Rc, and Arc requires the "alloc"-feature to be enabled.

Safety

  • Clone must not be implemented on types, which don't have a shared state.

Provided methods

fn before_alloc(&self, layout: Layout)

Called before alloc was invoked.

fn after_alloc(&self, layout: Layout, result: Result<NonNull<[u8]>, AllocErr>)

Called after alloc was invoked.

fn before_alloc_zeroed(&self, layout: Layout)

Called before alloc_zeroed was invoked.

fn after_alloc_zeroed(
    &self,
    layout: Layout,
    result: Result<NonNull<[u8]>, AllocErr>
)

Called after alloc_zeroed was invoked.

fn before_alloc_all(&self, layout: Layout)

Called before alloc_all was invoked.

fn after_alloc_all(
    &self,
    layout: Layout,
    result: Result<NonNull<[u8]>, AllocErr>
)

Called after alloc_all was invoked.

fn before_alloc_all_zeroed(&self, layout: Layout)

Called before alloc_all_zeroed was invoked.

fn after_alloc_all_zeroed(
    &self,
    layout: Layout,
    result: Result<NonNull<[u8]>, AllocErr>
)

Called after alloc_all_zeroed was invoked.

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

Called before dealloc was invoked.

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

Called after dealloc was invoked.

fn before_dealloc_all(&self)

Called before dealloc_all was invoked.

fn after_dealloc_all(&self)

Called after dealloc_all was invoked.

fn before_grow(&self, ptr: NonNull<u8>, layout: Layout, new_size: usize)

Called before grow was invoked.

fn after_grow(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize,
    result: Result<NonNull<[u8]>, AllocErr>
)

Called after grow was invoked.

fn before_grow_zeroed(&self, ptr: NonNull<u8>, layout: Layout, new_size: usize)

Called before grow_zeroed was invoked.

fn after_grow_zeroed(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize,
    result: Result<NonNull<[u8]>, AllocErr>
)

Called after grow_zeroed was invoked.

fn before_grow_in_place(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize
)

Called before grow_in_place was invoked.

fn after_grow_in_place(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize,
    result: Result<usize, AllocErr>
)

Called after grow_in_place was invoked.

fn before_grow_in_place_zeroed(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize
)

Called before grow_in_place_zeroed was invoked.

fn after_grow_in_place_zeroed(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize,
    result: Result<usize, AllocErr>
)

Called after grow_in_place_zeroed was invoked.

fn before_shrink(&self, ptr: NonNull<u8>, layout: Layout, new_size: usize)

Called before shrink was invoked.

fn after_shrink(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize,
    result: Result<NonNull<[u8]>, AllocErr>
)

Called after shrink was invoked.

fn before_shrink_in_place(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize
)

Called before shrink_in_place was invoked.

fn after_shrink_in_place(
    &self,
    ptr: NonNull<u8>,
    layout: Layout,
    new_size: usize,
    result: Result<usize, AllocErr>
)

Called after shrink_in_place was invoked.

fn before_owns(&self)

Called before owns was invoked.

fn after_owns(&self, success: bool)

Called after owns was invoked.

fn by_ref(&self) -> &Self

Creates a "by reference" adaptor for this instance of CallbackRef.

The returned adaptor also implements CallbackRef and will simply borrow this.

Loading content...

Implementations on Foreign Types

impl<C: CallbackRef> CallbackRef for Box<C>[src]

impl<C: CallbackRef> CallbackRef for Rc<C>[src]

impl<C: CallbackRef> CallbackRef for Arc<C>[src]

Loading content...

Implementors

impl CallbackRef for AtomicCounter[src]

impl CallbackRef for Counter[src]

impl CallbackRef for FilteredAtomicCounter[src]

impl CallbackRef for FilteredCounter[src]

impl<C: CallbackRef, '_> CallbackRef for &'_ C[src]

Loading content...