Struct object_pool::Pool
source · pub struct Pool<T> { /* private fields */ }
Implementations§
source§impl<T> Pool<T>
impl<T> Pool<T>
pub fn new<F>(cap: usize, init: F) -> Pool<T>where
F: Fn() -> T,
pub fn from_vec(v: Vec<T>) -> Pool<T>
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn try_pull(&self) -> Option<Reusable<'_, T>>
pub fn pull<F: Fn() -> T>(&self, fallback: F) -> Reusable<'_, T>
sourcepub fn try_pull_owned(self: &Arc<Self>) -> Option<ReusableOwned<T>>
pub fn try_pull_owned(self: &Arc<Self>) -> Option<ReusableOwned<T>>
Like try_pull, but returns an owned reusable wrapper.
try_pull_owned()
is about 10% slower than try_pull()
, but it may be
necessary in some cases where you cannot satisfy a 'lifetime
borrow
check on the pool.
sourcepub fn pull_owned<F: Fn() -> T>(
self: &Arc<Self>,
fallback: F,
) -> ReusableOwned<T>
pub fn pull_owned<F: Fn() -> T>( self: &Arc<Self>, fallback: F, ) -> ReusableOwned<T>
Like pull, but returns an owned reusable wrapper.
pull_owned()
is about 10% slower than pull()
, but it may be necessary in
some cases where you cannot satisfy a 'lifetime
borrow check on the pool.
pub fn attach(&self, t: T)
Trait Implementations§
source§impl<T> FromIterator<T> for Pool<T>
impl<T> FromIterator<T> for Pool<T>
source§fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
Creates a value from an iterator. Read more
Auto Trait Implementations§
impl<T> !Freeze for Pool<T>
impl<T> !RefUnwindSafe for Pool<T>
impl<T> Send for Pool<T>where
T: Send,
impl<T> Sync for Pool<T>where
T: Send,
impl<T> Unpin for Pool<T>where
T: Unpin,
impl<T> UnwindSafe for Pool<T>where
T: UnwindSafe,
Blanket Implementations§
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