Skip to main content

BufPoolCfg

Struct BufPoolCfg 

Source
pub struct BufPoolCfg {
    pub buffer_size: BufferSize,
    pub max_memory: usize,
}
Expand description

All the available configrations for BufPool

§Example

use frozen_core::{bufpool::BufPoolCfg, utils::BufferSize};

const BUF_SIZE: BufferSize = BufferSize::S64;

let cfg = BufPoolCfg {
    buffer_size: BUF_SIZE,
    max_memory: BUF_SIZE as usize * 0x1000,
};

assert_ne!(cfg.max_memory, 0);
assert!(cfg.max_memory > cfg.buffer_size.bytes());

Fields§

§buffer_size: BufferSize

Size (in bytes) of an indivdual buffer unit allocated

§max_memory: usize

Maximum allowed memory (in bytes) to be simultaneosuly allocated by BufPool

IMPORTANT: When trying to allocate more memory then BufPoolCfg::max_memory via BufPool::allocate, a deadlock will happen due to memory budgeting in place. The caller must make sure the max_meory is high enough to avoid this scenerio.

NOTE: To avoid backpressure, set the max_memory to an arbitrary large value. This would not have any direct impact on performance or resource usage, and will avoid backpressure under heavy workload.

Trait Implementations§

Source§

impl Clone for BufPoolCfg

Source§

fn clone(&self) -> BufPoolCfg

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for BufPoolCfg

Source§

impl Debug for BufPoolCfg

Source§

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

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

impl Eq for BufPoolCfg

Source§

impl PartialEq for BufPoolCfg

Source§

fn eq(&self, other: &BufPoolCfg) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for BufPoolCfg

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> 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.