[][src]Enum checkers::Event

#[non_exhaustive]pub enum Event {
    Alloc(Region),
    Free(Region),
    AllocZeroed(AllocZeroed),
    Realloc(Realloc),
    AllocFailed,
    AllocZeroedFailed,
    ReallocNull,
    ReallocFailed,
}

Metadata for a single allocation or deallocation.

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Alloc(Region)

An allocation.

Free(Region)

A deallocation.

AllocZeroed(AllocZeroed)

A zerod allocation, with an optional boolean indicates if it is actually zeroed or not.

Realloc(Realloc)

A reallocation that moves and resized memory from one location to another.

AllocFailed

An allocation failed (produced null).

AllocZeroedFailed

A zero allocation that failed (produced null).

ReallocNull

Allocator was asked to reallocate unallocated memory.

ReallocFailed

A reallocation failed (produced null), and the previous region is left unchanged.

Implementations

impl Event[src]

pub fn is_alloc_with<F>(self, f: F) -> bool where
    F: FnOnce(Region) -> bool
[src]

Test if this event is an allocation which matches the specified predicate.

Examples

let event = checkers::Event::Alloc(checkers::Region::new(100.into(), 100, 4));

assert!(event.is_alloc_with(|r| r.size == 100 && r.align == 4));
assert!(!event.is_free_with(|r| r.size == 100 && r.align == 4));

pub fn is_free_with<F>(self, f: F) -> bool where
    F: FnOnce(Region) -> bool
[src]

Test if this event is a deallocation which matches the specified predicate.

Examples

let event = checkers::Event::Free(checkers::Region::new(100.into(), 100, 4));

assert!(!event.is_alloc_with(|r| r.size == 100 && r.align == 4));
assert!(event.is_free_with(|r| r.size == 100 && r.align == 4));

pub fn is_alloc_zeroed_with<F>(self, f: F) -> bool where
    F: FnOnce(AllocZeroed) -> bool
[src]

Test if this event is an allocation which matches the specified predicate.

Examples

use checkers::{Event, Region, AllocZeroed};
let event = Event::AllocZeroed(AllocZeroed::new(Some(true), Region::new(100.into(), 100, 4)));

assert!(event.is_alloc_zeroed_with(|r| r.alloc.size == 100 && r.alloc.align == 4));
assert!(!event.is_free_with(|r| r.size == 100 && r.align == 4));

pub fn is_realloc_with<F>(self, f: F) -> bool where
    F: FnOnce(Realloc) -> bool
[src]

Test if this event is an allocation which matches the specified predicate.

Examples

use checkers::{Event, Region, Realloc};

let event = Event::Realloc(Realloc::new(
    Some(true),
    Region::new(10.into(), 10, 1),
    Region::new(20.into(), 20, 1)
));

assert!(event.is_realloc_with(|r| r.free.size == 10 && r.alloc.size == 20));

pub fn is_failed(self) -> bool[src]

Test if this event is an allocation which matches the specified predicate.

Examples

use checkers::Event;

assert!(Event::AllocFailed.is_failed());
assert!(Event::AllocZeroedFailed.is_failed());
assert!(Event::ReallocFailed.is_failed());

Trait Implementations

impl Clone for Event[src]

impl Copy for Event[src]

impl Debug for Event[src]

impl Eq for Event[src]

impl Hash for Event[src]

impl Ord for Event[src]

impl PartialEq<Event> for Event[src]

impl PartialOrd<Event> for Event[src]

impl StructuralEq for Event[src]

impl StructuralPartialEq for Event[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.