pub struct BlockPool { /* private fields */ }Expand description
Fixed-capacity physical-page allocator with reference counts.
Both vectors are fully sized during cold construction. Hot operations only mutate elements or
the existing vector length; free has capacity physical_blocks, so push cannot reallocate.
Implementations§
Source§impl BlockPool
impl BlockPool
pub fn new(physical_blocks: u32) -> Self
pub fn allocate(&mut self) -> Result<u32, PoolError>
pub fn retain(&mut self, block: u32) -> Result<(), PoolError>
pub fn release(&mut self, block: u32) -> Result<(), PoolError>
pub fn ref_count(&self, block: u32) -> Option<u32>
pub fn free_count(&self) -> usize
pub fn writable(&mut self, current: u32) -> Result<CopyOnWrite, PoolError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BlockPool
impl RefUnwindSafe for BlockPool
impl Send for BlockPool
impl Sync for BlockPool
impl Unpin for BlockPool
impl UnsafeUnpin for BlockPool
impl UnwindSafe for BlockPool
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more