Struct polymock::Arena

source ·
pub struct Arena { /* private fields */ }
Expand description

A bump allocation arena.

Examples

let mut arena = Arena::new(1000);


let mut buffers = Vec::new();
for _ in 0..10 {
    // All 10 buffers will be allocated in the same chunk.
    let mut buf = arena.alloc(100);

    buffers.push(buf);
}

// The buffers may outlive the arena they were allocated with.
drop(arena);

buffers[0][0] = 1;

Implementations§

source§

impl Arena

source

pub fn new(chunk_size: usize) -> Self

Creates a new Arena using the given chunk_size for every allocated chunk.

Panics

Panics if chunk_size is bigger than isize::MAX.

source

pub fn alloc(&self, size: usize) -> BytesMut

Allocates a new BytesMut from the Arena.

Note that the returned BytesMut may contain previously used buffers. If you need to create a zeroed BytesMut, consider using zeroed.

source

pub fn zeroed(&self, size: usize) -> BytesMut

Allocates a new, zeroed BytesMut from the Arena.

Note that zeroed zeroes the returned BytesMut. If that’s not necessary you may want to use alloc, which does not zero the returned BytesMut.

Trait Implementations§

source§

impl Debug for Arena

source§

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

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

impl Default for Arena

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Drop for Arena

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Arena

§

impl Send for Arena

§

impl Sync for Arena

§

impl Unpin for Arena

§

impl UnwindSafe for Arena

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · 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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.