CallbackMemory

Struct CallbackMemory 

Source
pub struct CallbackMemory<FReserve>
where FReserve: Fn(usize) -> BytesBuf + Send + Sync + 'static,
{ /* private fields */ }
Expand description

Implements MemoryShared by delegating to a closure.

This can be used to construct wrapping memory providers that add logic or configuration on top of an existing memory provider.

Implementations§

Source§

impl<FReserve> CallbackMemory<FReserve>
where FReserve: Fn(usize) -> BytesBuf + Send + Sync + 'static,

Source

pub fn new(reserve_fn: FReserve) -> Self

Creates a new instance implemented via the provided callback.

Source

pub fn reserve(&self, min_bytes: usize) -> BytesBuf

Reserves at least min_bytes bytes of memory capacity.

Returns an empty BytesBuf that can be used to fill the reserved memory with data.

The memory provider may provide more memory than requested.

The memory reservation request will always be fulfilled, obtaining more memory from the operating system if necessary.

§Zero-sized reservations

Reserving zero bytes of memory is a valid operation and will return a BytesBuf with zero or more bytes of capacity.

§Panics

May panic if the operating system runs out of memory.

Trait Implementations§

Source§

impl<FReserve> Clone for CallbackMemory<FReserve>
where FReserve: Fn(usize) -> BytesBuf + Send + Sync + 'static,

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<FReserve> Debug for CallbackMemory<FReserve>
where FReserve: Fn(usize) -> BytesBuf + Send + Sync + 'static,

Source§

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

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

impl<FReserve> Memory for CallbackMemory<FReserve>
where FReserve: Fn(usize) -> BytesBuf + Send + Sync + 'static,

Source§

fn reserve(&self, min_bytes: usize) -> BytesBuf

Reserves at least min_bytes bytes of memory capacity. Read more

Auto Trait Implementations§

§

impl<FReserve> Freeze for CallbackMemory<FReserve>

§

impl<FReserve> RefUnwindSafe for CallbackMemory<FReserve>
where FReserve: RefUnwindSafe,

§

impl<FReserve> Send for CallbackMemory<FReserve>

§

impl<FReserve> Sync for CallbackMemory<FReserve>

§

impl<FReserve> Unpin for CallbackMemory<FReserve>

§

impl<FReserve> UnwindSafe for CallbackMemory<FReserve>
where FReserve: RefUnwindSafe,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<T> MemoryShared for T
where T: Memory + Send + Sync + 'static,