Allocator

Struct Allocator 

Source
pub struct Allocator { /* private fields */ }
Expand description

An Allocator for arcon.

The allocator is not meant to handle all heap allocations during the execution. However, it is intended to be used to manage memory for different sections of the runtime. This includes message buffers, network buffers, and state indexes.

Implementations§

Source§

impl Allocator

Source

pub fn new(limit: usize) -> Allocator

Creates a new Allocator with the given memory limit size

Source

pub unsafe fn alloc<T>(&mut self, capacity: usize) -> AllocResult

Allocate memory block of type T with given capacity

§Safety

It is up to the caller to ensure dealloc with the generated AllocId

Source

pub unsafe fn dealloc(&mut self, id: AllocId)

Deallocate memory through the given AllocId

§Safety

It is up to the caller to ensure that the given AllocId is active

Source

pub fn allocated_bytes(&self) -> usize

Returns amount of bytes that are currently allocated

Source

pub fn total_allocations(&self) -> u128

Returns total allocations made so far

Source

pub fn bytes_remaining(&self) -> usize

Returns how much bytes are available to allocate

Trait Implementations§

Source§

impl Debug for Allocator

Source§

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

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

impl Drop for Allocator

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for Allocator

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.